
C4モデルは、ソフトウェアシステムのアーキテクチャをモデル化するための無駄のないグラフィカル表記法です。 [1] [2] これは、システムをコンテナとコンポーネントに構造的に分解(階層的なツリー構造)することに基づいており、アーキテクチャの構成要素をより詳細に分解するために、統一モデリング言語(UML)やエンティティ・リレーションシップ・ダイアグラム(ERD)などの既存のモデリング手法に依存しています。
歴史
C4モデルは、ソフトウェアアーキテクトのサイモン・ブラウンによって、統一モデリング言語(UML)と4+1アーキテクチャビューモデルをルーツとして2006年から2011年の間に作成されました。クリエイティブコモンズライセンス[3]に基づく公式ウェブサイトの立ち上げと2018年の論文[4]により、この新しい手法が普及しました。[1]
概要
C4モデルは、システムをコンテナとコンポーネントに分解し、これらの要素間の関係、必要に応じてユーザーとの関係を説明する複数の視点[5]を示して、ソフトウェアシステムのアーキテクチャを文書化します。 [3]
視点は階層レベルに従って整理されている: [2] [3]
- コンテキスト図 (レベル 1): 対象範囲内のシステムと、そのシステムとユーザーおよび他のシステムとの関係を示します。
- コンテナ図 (レベル 2): システムを相互に関連するコンテナに分解します。コンテナはアプリケーションまたはデータ ストアを表します。
- コンポーネント図 (レベル 3): コンテナーを相互に関連するコンポーネントに分解し、コンポーネントを他のコンテナーまたは他のシステムに関連付けます。
- コード図 (レベル 4): コードにマッピングできるアーキテクチャ要素の設計に関する追加の詳細を提供します。このレベルの C4 モデルは、統一モデリング言語 (UML)、エンティティ リレーション ダイアグラム (ERD) 、または統合開発環境 (IDE)によって生成されたダイアグラムなどの既存の表記法に依存します。
レベル 1 から 3 では、C4 モデルは、人物、ソフトウェア システム、コンテナー、コンポーネント、関係という 5 つの基本的な図表要素を使用します。この手法では、これらの要素のレイアウト、形状、色、スタイルは規定されていません。代わりに、C4 モデルでは、インタラクティブな共同描画を容易にするために、ネストされたボックスに基づくシンプルな図表を使用することを推奨しています。また、この手法では、対象読者の理解を容易にするために、すべての図表にタイトルと凡例を付けたり、明確で曖昧でないラベルを付けたりするなど、優れたモデリング手法が推奨されています。
C4モデルは、より正式なドキュメント化方法や事前のアーキテクチャ設計が望まれないアジャイルチームのコンテキストにおいて、共同のビジュアルアーキテクチャと進化型アーキテクチャを促進します。 [6]
参照
参考文献
- ^ ab リチャーズ、マーク、フォード、ニール (2019)。ソフトウェアアーキテクチャの基礎:エンジニアリングアプローチ。O'REILLY MEDIA。p. 293。ISBN 978-1-4920-4342-3OCLC 1138515057。ソフトウェアアーキテクチャを図示するための標準がいくつか登場しています(ソフトウェアアーキテクトのSimon BrownのC4モデルやThe Open Group
Archimate標準など)。
- ^ ab Enríquez, René (2018). Spring 5.0 によるソフトウェア アーキテクチャ: スケーラビリティ、堅牢性、およびパフォーマンスに優れた Java アプリケーションの設計と構築。Salazar, Alberto。Packt Publishing Ltd. pp. 41–44。ISBN 978-1-78899-673-0. OCLC 1053798657.
- ^ abc 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-6. OCLC 1024312521.
- ^ 「アジャイルとアーキテクチャの対立:神話か現実か?」resources.sei.cmu.edu。 SATURN 2013 カンファレンス。カーネギーメロン大学ソフトウェアエンジニアリング研究所。 2013 年 5 月 10 日。 2021 年 4 月 19 日時点のオリジナルよりアーカイブ。 2020 年 8 月 22 日閲覧。
外部リンク
- 公式サイト
