C4モデル
C4モデルは、システムをコンテナやコンポーネントに分解し、それらの要素やユーザー間の関係を説明する様々な視点を示すことで、抽象度の異なるレベルでソフトウェアアーキテクチャを記述する。
これらの視点は次の階層構造になっている。
システムコンテキスト図(レベル1):ソフトウェアシステムが、それを使用する人や関連する他システムとの相互作用の観点からどのような位置づけにあるのかを図示する。
コンテナ図 (レベル2):ソフトウェアシステムを構成するコンテナ(アプリケーション、データストア、マイクロサービスなど)を図示する。
コンポーネント図(レベル3):個々のコンテナの内部コンポーネントおよび内部コンポーネント間や他システムとの関係を図示する。
コード図(レベル4):コードに対応する設計要素の詳細情報を図示する。このレベルでは統一モデリング言語(UML)、 実体関連図(ER図)およびIDEが生成する他の図を用いてよい。
レベル1〜3では5つの基本要素("Person"、"Software System"、"Container"、"Component"、およびそれらの関連)を用いる。レイアウト、形、色、各要素のスタイルについて規定はない。その代わり、 インタラクティブに協同で作図するのを可能にするために入れ子の箱型をもとにしたシンプルな図が推奨されている。また、すべての図に表題と凡例をつけることや、対象読者が理解できるように簡潔で明確なラベル付けが推奨されている。