如何画好架构图
(2022-08-14 15:43:18)
标签:
架构图 |
分类: iPan_J2EE |
如何画好架构图
重新定义架构:4R架构
软件架构指软件系统的顶层结构(Rank),它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
- 顶层结构(Rank),架构的分层;系统一般使用自动向下,逐步细化的过程,可以分L0架构(顶层)、L1架构(1层)、L2架构(2层);
- 角色(Role),系统包含哪些角色;
- 角色关系(Relation),角色之间的关系;
- 运作规则(Rule),角色如何协作完成系统功能;
总结 Rank+Role+Relation = 静态架构图(客户端架构、系统架构、应用架构、部署架构) Rule = 动态架构图(系统序列图)
4+1视图介绍
1995年,Philippe Kruchten在《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引起了业界的极大关注,并最终被RUP采纳; 逻辑视图:系统提供给用户的功能,对应UML的class和state diagrams; 处理视图:系统的处理过程,对应UML的sequence和activity diagrams; 开发视图:程序员角度看系统的逻辑组成,对应UML的package diagrams; 物理视图:系统工程师角度看系统的物理组成,对应UML的deployment diagrams; 场景视图:用户角度看系统需要实现的需求,对应UML的use case diagrams;
国内企业较少用4+1视图描述架构,为什么? 1)架构复杂度增加,1995年的系统大部分是单体系统,现在是分布式系统; 2)绑定UML图,UML图画架构存在问题; 3)理解困难,4+1视图的逻辑视图、开发视图、处理视图比较容易混淆;
个人总结
- 业务架构图(功能示意图),描述系统对用户提供的整体业务功能,类似于4+1视图的场景视图;
- 业务交互示意图,业务架构中的功能之间的依赖关系;业务架构图、交互示意图主要跟领导能讲清楚业务以及关系;
- 系统序列图(时序图)、状态图、流程图,表达功能模块内的业务流程,跟开发人员讲清楚开发流程;
- 部署图,当系统由多个子系统组成的时候,部署图是给维护人员讲清楚服务器部署情况以及配置;