システムコンテキストとは、システムの境界とその動作環境についての理解を捉え・記述し・伝達する方法です。シンプルに理解できるダイアグラムと、任意で追加情報を持つテーブルで構成されます。
使用するツール:
- ペン & 紙(大判)または
- デジタルの描画・共有ツール
ダイアグラム作成:
- 検討対象のシステムは描画領域の中央に{正方形|円|角丸正方形}として描く。
- 外部システムと人間のアクター(役割)を検討対象のシステムの周囲に配置する。それらにはデータベース(後述参照)の情報と対応させるためのユニークIDを付けることができる。
- 検討対象のシステムと外部システム/アクターの間にコネクタ(線)を引く。
- データフロー(データ項目と方向)などの追加情報をコネクタに付けることができる。
テーブル / データベース:
プロジェクトの複雑さによっては、アクターや外部システムについての追加の詳細をテーブルに記録することが望ましい場合があります。例えば:
- ユニークID(異なるダイアグラムでシステムを一意に識別できるようにする)
- システムまたはアクターの役割の説明
- システムの場合:
-
- システムオーナーの連絡先情報
- インターフェース/API説明へのリンク
- CMDBレコードへのリンク
- ライフサイクル情報(プロジェクトのライフサイクル内でシステムが廃止される予定か?)
- アクターの場合:
-
ヒントと注意点:
- このダイアグラムでは、検討対象のシステムはブラックボックスとして扱われます。フォーカスはシステムのコンテキストについての推論です。システムの内部動作を描くためには他の図のタイプを使用します。システムの内部についての詳細をこのダイアグラムに追加しないようにしましょう。
- 外部システム間のエンドツーエンドのプロセスフローや接続を描こうとしないでください。それはダイアグラムを煩雑にし、検討対象のシステムについての推論能力を低下させます。
- システムコンテキストマッピングは、システムの内部動作の高レベルの理解を描く「システムダイアグラム」(アーキテクチャ概要とも呼ばれる)プラクティスと混同しないでください。
システムコンテキストのモデリングは、システムの境界——何がシステムのスコープ内で、何が外にあるか——を理解するのに役立ちます。周囲のシステムやシステムを使用するアクターとのインターフェースについて推論し、データフローについて考え、関連情報のデータベースをまとめることができます。
システムコンテキストは、ユースケース図・コンポーネントモデル・運用モデルなど、その外部との相互作用を描く他の多くのダイアグラムに情報を提供し、それらと同期している必要があります。
システムコンテキストのモデリングは、単独またはチームで実施できます。その価値の大部分は、生成されたアーティファクトを使って他者との理解を伝達・整合することから得られます。
プロジェクトを通じて検討対象のシステムについて学ぶにつれて、システムコンテキストモデルを見直し・調整するべきです。
システムコンテキストダイアグラムを作成する/システムコンテキストモデリングセッションをファシリテートする唯一の最良のアプローチは(私たちの知る限りでは)存在しません。
テクノロジーに慣れるためのエクササイズとして、以下が私たちにとってうまく機能しました:
- プロジェクトのステークホルダーとの発見会話を聞いた/参加した後、参加者はダイアグラムの形でシステムコンテキストについての自分の理解を可視化する。
- 完成後、参加者はお互いの図を交換して、理解の共通点と相違点を議論する。
- ダイアグラムが安定して共通の理解が達成されたら、情報フローやテーブル形式で追加情報を記録できる。