第5章 構成要素 図
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、単一のコンテナ内に存在する構成要素を拡大表示する方法を提供する、C4コンポーネント図について解説する。
構成要素図の主な特徴
構成要素図の使用目的や使用方法を理解するには、その意図、範囲、コンテンツ、ユースケース、および対象読者を把握しておくと役立つ。
意図
構成要素図は、特にデータストアではなくアプリケーションコンテナについて、以下の質問に答えるのに役立つ。
-
コンテナはどのように構成要素の集合に分解されたか?
-
それらの構成要素の責任は何か?
-
構成要素は互いにどのようにコラボレーションし、コミュニケーションするのか?
-
構成要素を実装するために使用される主な技術選択(例:フレームワークやライブラリ)は何か?
-
ソフトウェアエンジニアリングとして、機能を追加するためにどこにコードを書く必要があるか?
事前の設計作業中に構成要素図を作成する場合、構成要素の実装に使用するフレームワークやライブラリといった技術的な詳細が不明なこともあるだろう。繰り返しになるが、心配する必要はない。分かっていることを書き込めばよい。一方、既存のシステムを文書化するために図を作成する場合は、そうした詳細な情報はすでに手元にあるはずだ。
範囲
コンポーネント図のスコープは、単一のコンテナである。3つのアプリケーションから成るソフトウェアシステムを構築する場合、これら3つのコンテナ内の構成要素をすべて同時に示す単一のコンポーネント図を作成したくなるかもしれない。 私はこの誘惑に負けず、代わりに3つの別々の構成要素図を描くことを勧める。コンテナごとに1つの構成要素図だ。こうすることで、3つのより小さくシンプルな構成要素図ができ上がり、図を見るユーザに3つのアプリケーションの内部構造を同時に理解させようとする認知的負荷を強いることもなくなる。
コンテンツ
コンポーネント図には通常、6種類の要素が含まれる。すなわち、人、ソフトウェアシステム、コンテナ(これらはすべて前述のコンテナ図から引き継がれる)に加え、構成要素、コンテナ境界、およびソフトウェアシステム境界である。
人、ソフトウェアシステム、そしてコンテナ
コンポーネント図は、コンテナ図から単一のコンテナにズームインしたものであり、そのコンテナ図自体も多数の人々、ソフトウェアシステム、および他のコンテナに囲まれている。一貫性を保つため、それらの要素はコンポーネント図上でも繰り返されるべきだ。繰り返しになるが、これは同じストーリーをより詳細に描いたものなのである。
構成要素
構成要素図は、コンテナの境界内に存在する構成要素のセットを示す。各構成要素について、以下の情報を記載する。
-
名前:構成要素の名前
-
技術:主要な実装技術
-
説明:構成要素の役割に関する簡単な概要
アプリケーションのコンテキストにおいて、構成要素とは関連するコードのグループである。したがって、構成要素図は、コンテナ内に存在する構成要素(コードのグループ)と、使用されているアーキテクチャスタイルを反映すべきだ。アプリケーションがアーキテクチャ層ごとに整理された構成要素で構成されていると考えるなら、構成要素図も層ごとに整理された構成要素を示す必要がある。 これについては、基本を超えた内容を取り上げる第11章で例を見ていく。同様に、コンテナが「ポートとアダプタ」や「六角形」スタイルで構成された構成要素を利用している場合、図はこれを反映すべきだ。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access