C4モデル はソフトウェアアーキテクチャのモデル化技法の一つである。C4はコンテキスト(context)、コンテナ(containers)、コンポーネント(components)、コード(code)の略であり、一連の階層的なソフトウェアアーキテクチャ図で構成されている。構成単位の詳細な図を表すために統一モデリング言語(UML)や 実体関連図(ER図)のような既存のモデル化技法を用いる。
概要 C4モデルは、システムをコンテナやコンポーネントに分解し、それらの要素やユーザー間の関係を説明する様々な視点を示すことで、抽象度の異なるレベルでソフトウェアアーキテクチャを記述する。
これらの視点は次の階層構造になっている。
システムコンテキスト図(レベル1):ソフトウェアシステムが、それを使用する人や関連する他システムとの相互作用の観点からどのような位置づけにあるのかを図示する。 コンテナ図 (レベル2):ソフトウェアシステムを構成するコンテナ(アプリケーション、データストア、マイクロサービスなど)を図示する。 コンポーネント図(レベル3):個々のコンテナの内部コンポーネントおよび内部コンポーネント間や他システムとの関係を図示する。 コード図(レベル4):コードに対応する設計要素の詳細情報を図示する。このレベルでは統一モデリング言語(UML)、 実体関連図(ER図)およびIDEが生成する他の図を用いてよい。
レベル1〜3では5つの基本要素("Person"、"Software System"、"Container"、"Component"、およびそれらの関連)を用いる。レイアウト、形、色、各要素のスタイルについて規定はない。その代わり、 インタラクティブに協同で作図するのを可能にするために入れ子の箱型をもとにしたシンプルな図が推奨されている。また、すべての図に表題と凡例をつけることや、対象読者が理解できるように簡潔で明確なラベル付けが推奨されている。
歴史 C4モデルは2006年から2011年の間にソフトウェアアーキテクトのサイモン・ブラウンによって、統一モデリング言語(UML)や4+1 architectural view model(英語版)をもとにして考案された。公式サイトはクリエイティブ・コモンズ・ライセンスになっており、2018年に公開された。
クリエイティブ・コモンズ・ライセンスと2018年に公開された記事下での公式ウェブサイトの立ち上げは、新しい技術を普及させた。
脚注
関連項目 モデリング言語 ソフトウェアアーキテクチャ
外部リンク 公式サイト