京東云開發者|軟件架構可視化及C4模型:架構設計不僅僅是UML( 三 )


C4模型本身也是一種文檔化機制,同樣也存在過期問題 。只不過C4模型通過對系統在不同的層級進行抽象,每個抽象層級的過期頻率不同,由上到下逐漸增大,上下文圖的變化頻率最小,而代碼級則變化最大 。
為什么C4不涉及業務流、狀態機、數據模型等建模
C4模型僅對系統的靜態結構進行建模 , 并不試圖囊括或替代其它建模方式,C4模型并不適合所有維度的可視化表達 。對于業務流可以基于BPML、UML活動圖進行表達 , 狀態機可以基于UML狀態機圖進行表達,而數據模型可以通過E-R圖表達,不同建模語言相互補充 。
4 系統架構設計關注不同維度作為架構師或系統設計人員,在進行系統架構設計時一般會關注不同維度,一般情況下,對于業務系統建設而言,會關注以下維度 。在架構設計(架構和設計)過程中,基于C4模型、UML及BPML等多種建模方式相互補充,不同表現維度下可以采用不同的建模方式
?業務流程:泳道圖或UML活動圖,表達核心的業務流?業務用例、系統用例:UML用例圖?領域模型:UML類圖?系統邊界:C1,系統上下文圖?高層技術選型:C2,容器圖?系統職責分配:用線框圖表示功能架構?關鍵部分的實現:C3,組件圖?系統關鍵的交互邏輯:UML時序圖?數據模型:E-R圖?關鍵實體的狀態機:UML狀態機圖?不同的高優先級架構屬性的設計:比如 , 緩存方案、冪等性設計方案、定時任務補償策略、降級限流策略等等,這些都與具體的需求所關注的高優先級的架構屬性相關 。?部署架構:UML部署圖5 總結軟件架構設計的終極目標不在于設計本身,而在于架構設計意圖的傳達 。圖形化有助于在團隊間進行高效的信息同步,但不同的圖形化方式在語義一致性和效率間存在平衡 。C4模型通過不同的抽象層級來表達系統的靜態結構,并提供了最小及的抽象建模元素,為設計人員提供了一種低認知負載、易于學習和使用的高效的建模方式 。在實際項目落地過程中 , 結合C4模型以及UML、線框圖等組合方式對架構設計進行可視化表達,一定程度上能夠提升團隊對架構設計認知的一致性以及建模效率 。
作者:倪新明

推薦閱讀