C4模型

C4模型是軟體系統建模的圖形表示技巧。C4模型會用到一些現有的建模技巧，例如统一建模语言（UML）及ER模型（ERD），會將系統結構化分解，分解為容器（container）和組件（component）。  

歷史
C4模型是由Simon Brown在2006年至2011年之間創建，以统一建模语言和4+1視景模型的基礎上建立。在2018年在官網上以知识共享许可协议發佈，並且也提出相關的文章。

 簡介 
C4模型用以下的幾個視角來敘述軟體系統的架構，會說明系統分解為容器和組件的方式、各元素之間的關係，若是適用的話，也可以說明和使用者之間的關係。

C4模型會依其階層關係來分類：

 系統上下文圖（Context diagrams），第一層的圖，說明系統、和其使用者以及其他系統的關係。
 容器圖（Container diagrams），第二層的圖，將系統分解為彼此相關的容器（container）。容器可以是應用程序或是資料存儲。
 組件圖（Component diagrams），第三層的圖，將容器分別為彼此相關的組件，也說明組件和其他組件（或是其他系統）的關係。
 程式碼圖（Code diagrams），第四層的圖，提供架構元素的設計細節，可以對應到程式碼。在此層級的C4模型會用到目前已有的標示方式，例如统一建模语言、ER模型或是集成开发环境產生的示意圖。

C4模型的第一層到第三層，用到五種基礎的圖示元素：人、軟體系統、容器、組件和關係。此技術沒有規定元素的佈局、形狀、顏色或是風格。C4模型建議以嵌套框為基礎的簡單圖表，方便互動式的協作繪圖。C4模型也鼓勵良好的建模實務，例如在每一個圖都加上標題以及圖例，以及清楚的標示，以方便目標讀者的理解。

在敏捷開發社群中，不太希望有制式化的文件方式，以及前期的架構設計，C4模型可以將架構可視化，因此在敏捷社群很受歡迎。

 相關條目 

 软件架构

 參考資料 

 外部連結 

 Official site 

Category:软件架构
Category:图表
Category:标记法
Category:知识表示
Category:建模语言