C4 model
C4 モデル はソフトウェアアーキテクチャのモデル化技法の一つである。 C4 はコンテキスト、コンテナ、コンポーネント、コードの略であり、一連の階層的なソフトウェアアーキテクチャ図で構成されている。
レベル 1:System Context(システムコンテキスト)図
Section titled “レベル 1:System Context(システムコンテキスト)図”- システムの境界と、ユーザー(人)や外部システムとの関係を示す最上位の俯瞰図です。
- 「このシステムは何で、誰が使い、何と連携するのか」を短時間で共有する用途に向きます。
レベル 2:Container(コンテナ)図
Section titled “レベル 2:Container(コンテナ)図”- 1 つのソフトウェアシステムを、主要な“実行/配備単位”(アプリやデータストア)へ分解して示します。
- C4 でいう“コンテナ”は Docker コンテナの意味ではなく、Web アプリ、API、DB などの「動く単位」を指します。
レベル 3:Component(コンポーネント)図
Section titled “レベル 3:Component(コンポーネント)図”- 1 つのコンテナの内部を、責務単位のコンポーネントに分解し、それらの関係や他要素との接続を示します。
レベル 4:Code(コード)図
Section titled “レベル 4:Code(コード)図”- コンポーネントの実装を、クラス/インターフェース/関数などコード要素で表す最詳細レベルです。
- このレベルでは、UML クラス図や ERD、IDE 生成図など 既存の詳細表記を使うことが前提として語られています。