京东云开发者|软件架构可视化及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、线框图等组合方式对架构设计进行可视化表达,一定程度上能够提升团队对架构设计认知的一致性以及建模效率 。
作者:倪新明

推荐阅读