C4モデル
C4モデル はソフトウェアアーキテクチャのモデル化技法の一つである[1][2]。C4はコンテキスト(context)、コンテナ(containers)、コンポーネント(components)、コード(code)の略であり、一連の階層的なソフトウェアアーキテクチャ図で構成されている。構成単位の詳細な図を表すために統一モデリング言語(UML)や 実体関連図(ER図)のような既存のモデル化技法を用いる。
概要
[編集]C4モデルは、システムをコンテナやコンポーネントに分解し、それらの要素やユーザー間の関係を説明する様々な視点を示すことで[3]、抽象度の異なるレベルでソフトウェアアーキテクチャを記述する[4]。
- システムコンテキスト図(レベル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年に公開された[5][6]。
クリエイティブ・コモンズ・ライセンス[4]と2018年に公開された記事下での[7]公式ウェブサイトの立ち上げは、新しい技術を普及させた[1]。
脚注
[編集]- ^ a b Richards,Mark; Ford, Neal (2019). Fundamentals of software architecture: an engineering approach. O'REILLY MEDIA. pp. 293. ISBN 978-1-4920-4342-3. OCLC 1138515057 . ""some standard are emerging for diagramming software architecture (such as software architect simon Brown's C4 model or The Open Group Archimate standard)""
- ^ a b Enríquez, René (2018). Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications.. Salazar, Alberto.. Packt Publishing Ltd.. pp. 41–44. ISBN 978-1-78899-673-0. OCLC 1053798657
- ^ Keeling, Michael. Design it! : from programmer to software architect. Raleigh, North Carolina. ISBN 978-1-68050-345-6. OCLC 1024312521
- ^ a b c Brown. “The C4 model for visualising software architecture”. c4model.com. 2020年8月22日閲覧。
- ^ Brown, Simon. “The C4 model for visualising software architecture”. c4model.com. 2021年5月23日閲覧。
- ^ Brown, Simon (2018年7月25日). “ソフトウェアアーキテクチャのためのC4モデル” (jp). InfoQ. 2021年5月23日閲覧。
- ^ Brown (2018年6月25日). “The C4 Model for Software Architecture” (英語). InfoQ. 2020年8月22日閲覧。