概要
C4モデルは、ソフトウェアシステムのアーキテクチャを文書化し、システムのコンテナとコンポーネントへの分解、これらの要素間の関係、および必要に応じてユーザーとの関係を説明する複数の視点[ 5 ]を示します。[ 3 ]
視点は階層レベルに従って整理されています: [ 2 ] [ 3 ]
- コンテキスト図(レベル1):システムの範囲と、ユーザーおよび他のシステムとの関係を示します。
- コンテナ図(レベル2):システムを相互に関連するコンテナに分解します。コンテナはアプリケーションまたはデータストアを表します。
- コンポーネント図(レベル3):コンテナを相互に関連するコンポーネントに分解し、コンポーネントを他のコンテナまたは他のシステムと関連付けます。
- コード図(レベル4):コードにマッピングできるアーキテクチャ要素の設計に関する詳細情報を提供します。C4モデルはこのレベルで、統一モデリング言語(UML)、エンティティ関係図(ERD) 、統合開発環境(IDE)によって生成された図などの既存の表記法に依存しています。
レベル1~3では、C4モデルは人物、ソフトウェアシステム、コンテナ、コンポーネント、関係という5つの基本的な図要素を使用します。この手法は、これらの要素のレイアウト、形状、色、スタイルを規定するものではありません。代わりに、C4モデルは、インタラクティブな共同描画を容易にするために、入れ子構造のボックスに基づいたシンプルな図を使用することを推奨しています。また、この手法は、すべての図にタイトルと凡例を付けること、明確で曖昧さのないラベル付けを行うことなど、適切なモデリング手法を推進し、対象となる読者の理解を促進します。
C4モデルは、より形式的なドキュメント作成方法や事前のアーキテクチャ設計が望まれないアジャイルチームのコンテキストにおいて、協調的なビジュアルアーキテクチャと進化的なアーキテクチャを促進します。 [ 6 ]
- IcePanel:ドラッグ&ドロップUIを備えた、共同作業型の図作成およびモデリングツール。
- Structurizr:Structurizrは「コードとしての図」を基盤としており、単一のモデルから複数のソフトウェアアーキテクチャ図を作成できます。
- PlantUML : C4-PlantUMLは、PlantUMLとC4モデルの利点を組み合わせることで、ソフトウェアアーキテクチャを簡潔に記述し、伝達する方法を提供します。
- C4InterFlow:アーキテクチャをコードとして一度モデル化(YAML、JSONなど)することで、任意のスコープ、詳細レベル(コンテキスト、コンテナ、コンポーネントなど)、およびタイプ(C4、C4 Static(依存関係)、シーケンスなど)の図を生成できるアーキテクチャ・アズ・コード(AaC)フレームワークです。
参考文献
- 1 2 Richards, Mark; Ford, Neal (2019).ソフトウェアアーキテクチャの基礎:エンジニアリングアプローチ. O'REILLY MEDIA. p. 293. ISBN 978-1-4920-4342-3OCLC 1138515057 .
ソフトウェアアーキテクチャの図解に関するいくつかの標準規格が登場している(ソフトウェアアーキテクトのサイモン・ブラウンのC4モデルや、オープングループのArchimate標準など)
。 - 1 2エンリケス、レネ (2018)。Spring 5.0 を使用したソフトウェアアーキテクチャ:高度にスケーラブルで堅牢かつ高性能な Java アプリケーションの設計と構築。サラザール、アルベルト。Packt Publishing Ltd. pp. 41–44。ISBN 978-1-78899-673-0OCLC 1053798657。
- 1 2 3 Brown, Simon. "ソフトウェアアーキテクチャを視覚化するためのC4モデル" . c4model.com (モデリング手法の公式サイト)。2010年2月25日のオリジナルからアーカイブ済み。 2020年8月22日取得。
- ↑ Brown, Simon (2018-06-25). "ソフトウェアアーキテクチャのためのC4モデル" . InfoQ . 2018-12-12のオリジナルからアーカイブ済み。2020-08-22に取得。
- ↑キーリング、マイケル。 『デザインしよう!:プログラマーからソフトウェアアーキテクトへ』ノースカロライナ州ローリー。ISBN 978-1-68050-345-6OCLC 1024312521。
- ↑ 「アジャイルとアーキテクチャの対立:神話か現実か?」 . resources.sei.cmu.edu . SATURN 2013 カンファレンス。カーネギーメロン大学ソフトウェアエンジニアリング研究所。2013 年 5 月 10 日。2021年 4 月 19 日にオリジナルからアーカイブ。2020年 8 月 22 日に取得。