アーキテクチャ設計図

多くの場合、アーキテクトは図を通じて通信します。 図は、実装者と利害関係者が広範なビジョンを確認したり、システムの機密性や微妙な領域を深く掘り下したりするのに役立つ強力なコミュニケーション ツールです。 意図を伝えるために、アーキテクトは各状況で役立つ図を選択する必要があります。

この記事の図の一覧は完全ではありません。 図は、多くの場合、複数の型の複合です。

最終的に、アーキテクチャ図の選択は、伝えようとしている内容と対象ユーザープロファイルによって異なります。 アーキテクトは、設計、要件の絞り込み、コミュニケーションのために、アクティビティ全体で複数の種類の図を使用します。

図作成のプラクティス

図は、テキストによる説明を必要とせずに、実質的な情報を示しています。 図のあいまいさを避けます。 以下に、推奨事項をいくつか示します。

標準表記を使用します。 図を読みやすく解釈するには、広く認識されているシンボル、アイコン、およびプレゼンテーション規則を使用します。

あいまいな行は避けてください。 図は、多くの場合、線として表されるエンティティ間のリレーションシップを示しています。 行の使用方法に一貫性を持たしてください。

矢印のない線は避けてください。 方向のない関係を知るのは難しいので、矢印を使用します。 リレーションシップを示すために、矢印なしですべての行にラベルを付けます。

二重矢印を持つ線は避けてください。 二重矢印は双方向の依存関係を意味します。 単一終了矢印を使用して、クライアントからサーバーへのフローを表す方が好きです。

すべてにラベルを付けます。 各アイコンに明確で正確でわかりやすいラベルを指定します。 リレーションシップが明確でない場合は、行にラベルを付けます。

一貫性を維持します。 標準化された色、大文字と小文字、アイコン、アイコン のサイズ、線の種類、矢印の頭、その他の表現は、図全体および関連する図全体で同様の要素に使用します。 既存のデータまたは分類から描画します。

正確であること。 図は抽象化ですが、プロセスの精度を犠牲にしないでください。 たとえば、その仮想ネットワークに存在しない場合は、仮想ネットワーク内のサービスを表さないでください。 図はコミュニケーション ツールであるため、誤ったコミュニケーションを避ける必要があります。

メタデータを含めます。 図に、図の目的に関する重要な情報を提供するメタデータが含まれていることを確認します。 メタデータは、図の範囲と重要性を視聴者が理解するのに役立つコンテキストも提供します。 タイトル、説明、最終更新日、作成者、外部参照などの項目を含めます。

公式のアイコンとサービス名を使用します。 特定のテクノロジを表す場合は、テクノロジ プロバイダーの最新の公式アイコンを使用します。 テクノロジを識別することが重要な場合は、サービスの公式名を使用します。

たとえば、Microsoft サービスのアイコンを次に示します。

設計図の種類

ワークロード アーキテクチャは複雑で多次元です。 各ディメンションの種類は、そのディメンションに固有の詳細レベルを提供することで、システムの特定の側面に焦点を当てています。 たとえば、フローチャートはプロセス フローを示しています。 エンティティリレーションシップ図は、システム コンポーネント間のリレーションシップを示しています。

さまざまな種類のダイアグラムを使用すると、ディメンションを包括的に理解できます。 これは、利害関係者間の効果的なコミュニケーション、問題解決、意思決定を促進するのに役立ちます。

システムの概要図

高レベルのシステム図は、ワークロード全体またはワークロード内のサブセクションの広範な概要として機能します。 これには、メイン コンポーネント、相互のリレーションシップ、およびデータがシステムを流れる大まかな順序が含まれます。 矢印は相互作用の方向を示します。

これらの図は、より深いディスカッションを開始したり、利害関係者のコミュニケーションを開始したりできるように、共通の理解に達するために適しています。

ブロック図

ブロック図は、ワークロードを主要な機能ブロックに分割します。 ブロックは通常、テクノロジに依存しません。 これらは、特定のコンポーネントではなく実行されている機能を参照します。

たとえば、ブロック図は、特定のメッセージ バス テクノロジではなく、"メッセージング バス" を参照する場合があります。 この種類の図は、詳細で対象ユーザーを気にすることなく、システムの構造、データ フロー、および処理フローを説明するのに役立ちます。

コンポーネント図

コンポーネント図はブロック図のように機能しますが、汎用機能ブロックを特定のテクノロジに置き換えます。 これは、システムの個々のテクノロジ コンポーネントとその関係 (クライアント/サーバーなど) を通信することを目的とした詳細なビューを示します。 これらの図は、図の範囲に関する一種の視覚的な部品表です。

配置ダイアグラム

デプロイ図では、インフラストラクチャ、商用の既製 (COTS) ソフトウェア、およびワークロード全体のカスタム コードのデプロイに焦点を当てています。 これは、ホスティング インフラストラクチャ全体でソフトウェアとコードがどのように分散されるかを示しています。

データ フロー図

データ フロー図 (DFD) は、データがシステム内でどのように移動するかを示しています。これは、データ中心のシステムをモデル化する場合に役立ちます。 このような図では、データがバッチで移動されるか、リアルタイムで移動されるかに注意してあいまいさを取り除くことをお勧めします。

シーケンス図

シーケンス図は、時間の経過に伴うワークロード コンポーネント間の通信交換を示しています。 これは、クライアント/サーバーの関係とその同期または非同期の性質を示しています。 また、これらの交換の依存関係を強調表示し、それらの中の障害シナリオを評価します。

ユーザー フロー図

ユーザー フロー図は、ワークロード、ユーザー、またはアクターとワークロード間のスコープ付き相互作用に焦点を当てています。 ユーザーとユーザーのデータがシステムと対話するさまざまな方法で機能要件を明確にし、視覚化するのに役立ちます。

エンティティリレーションシップ図

エンティティ関係図 (ERD) は、データベースまたは別のストレージ システムの構造を表すモデリング図です。 業界標準の属性と関連付けシンボルを使用したエンティティ (テーブルなど) 間のリレーションシップを示します。

ネットワーク図

ネットワーク図は、実行または対話するネットワークの観点からソリューションを示しています。 これらの図は、ワークロードのネットワーク セグメント化、障害のネットワーク ポイント、インターネットエグレスやイングレス ポイントなどの主要なネットワーク遷移を視覚化するのに役立ちます。

通常、ネットワーク ダイアグラムには、実装が終わるまで存続します。 監査やインシデント対応でよく使用されます。

状態ダイアグラム

状態図は、特殊化された視覚化です。 フロー (または個々のコンポーネント) が存在する状態を示します。 また、条件またはイベントに応答して、フローが状態間でどのように遷移するかを示します。

フローチャート

具体的にはアーキテクチャ図ではありませんが、フローチャートは設計を明確にするもう 1 つの方法です。 フローチャートは、複雑なワークフローやロジックを表す場合に便利です。 これらを使用して、要件を絞り込み、実装の選択を促進することができます。

次の手順