システム外部環境
この視点はシステムを取り巻く環境を明らかにする視点です。そのために以下の質問に答えられるようにします。
- システムはどのような環境(状況)で使われるのか?
- そこで使われる概念にはどのようなものがあるか?
環境を表す方法が2種類あります。業務の流れを捉える方法とシステムを利用する場面を捉える方法です。
業務の流れは業務フローモデルを使って表現し、一連の作業の流れとして無理なく効率的な作業の流れを組み立てます。UMLのアクティビティ図を使いレーンにアクターを割り当てることで、作業とアクターの関係を整理することができます。
ポイント:一連の業務の結果として提供する価値は何か?
ツールやユーティリティのような場合は業務の流れが存在しないので、利用シーンモデルでシステムを利用するメリットをシナリオとして表現します。利用シーンも同じくアクターに結びつけて洗い出します。アクターの責務や課題をシステムがどのように解決するかを伝えられます。
ポイント:誰がどの場面でシステムを使うと何がうれしいのか?
システムを取り巻く環境には必ず何かしらの概念があります。ビジネス上のルールや対象を表す言葉など、それぞれ固有の意味を持ちます。その意味を明らかにするために概念モデルを定義します。概念モデルが難しい場合は用語集として定義します。
システム境界
システム境界はシステムとの接点を表し、人と外部システムの2つの側面を扱います。この視点では以下の質問に答えます。
- 人がシステムとどのように関わるのか?
- 外部のシステムとこのシステムはどのように関わるのか?
システムとの関わりは人とシステム同士の2種類に分かれます。そして関わり方を表現するために、タイミングと受け渡される入出力情報の2つで表現します。
人に関わる部分はユースケースモデルと画面・帳票モデルで表し、外部システムに関わる部分はイベントモデルとプロトコルモデルで表現します。
人がシステムに関わるタイミングは業務フロー、ユースケースのつながりから理解することができ(注1)、入出力情報は画面・帳票モデルで表します。業務フローから画面までをつなげることで人がシステムに接する様子を表現します。
より厳密に定義する場合はUMLのステートマシンを使い状態の変化として人の接点を整理します。
ポイント:人はどのような状況で関わりその時の入出力情報は何か?
外部システムとの接点はイベントモデルとプロトコルモデルで表現します。システム同士の接続になるので厳密なルール化が必要になります。プロトコルモデルはUMLのステートマシンを使って表現することで厳密なタイミングを表現できます。システムとの接点をイベントとして表現し、タイミングは外部システムと当該システムとの状態の変化として扱います。イベントが状態の遷移を引き起こすと考えることでタイミングが表現できます。
ポイント:外部システムはどのようなタイミングで関わりその時の入出力情報は何か?
システム
システムはシステム境界を実現するための機能モデルとデータモデルで表現します。この視点では以下の質問に答えられるようにします。
- システムが提供する機能は何か?
- そのために必要なデータは何か?
機能はユースケースとイベントを実現するために必要な機能を表し、データは機能に必要なデータを表します。しかし、機能からデータを導き出すのではなく通常のデータ分析と同じくデータは機能とは独立してシステムに必要な情報として洗い出します。
機能は直接プログラムとつながるものではなく「このシステムの機能はXXX、XXX、XXXです」と説明して意味が分かる概念的な存在です。
データモデルはER図で言うところの論理設計にあたるもので、システム上必要な情報は何かということを明らかにするものです。プログラムの仕組みとして必要な情報(フラグなど)を含めてはいけません。同様にテーブル設計をしてはいけません。
ポイント:アクターと外部システムから機能、データまですべてつなげる



