【架构&设计】如何画产品架构图 - hippowc/hippowc.github.io GitHub Wiki
C4模型
概念
用于分层展示软件架构图
定义了如何为软件结构分层、定义了抽象级别
Context/System:上下文/系统
高层次抽象:一个门户系统
Container:容器
组件执行或者驻留的地方:web容器,数据库,描述独立功能
Component:组件
一个类或多个类组成的逻辑组
Class:代码
类,最小单位
Person:使用者
使用系统的人,或者依赖的其他系统
4+1视角
概念
从使用者的不同视角出发,描述软件系统架构
不同视角的图,针对不同的使用者
每个视图上均独立地使用的元素集合(组件、容器、连接符),捕获工作形式和模式,并且捕获关系及约束
场景视图
描述系统参与者与功能用例的关系,反应系统的需求和交互设计
逻辑视图
描述系统功能拆解后组件的关系,组件的约束和边界
物理视图
系统软件到物理硬件的映射关系,用于知道软件的部署过程
处理流程视图
描述系统组件之间的通信时序,反应系统的功能流程和数据流程,类似时序图和流程图
开发视图
描述系统的模块划分和组成,细化到内部包的组成,反应系统的开发过程
受众视角
概念
个人的理解
4+1视角中,有些视图在受众不同时,含义仍然不同,譬如逻辑视图
业务组件
分解不同的独立的业务功能,譬如账号管理,应用创建
代码组件
分解不同的代码功能组件,譬如:权限校验,异常处理
概括
画一个架构图,首先要明确受众,第二要明确传达什么信息
根据受众选择一个视角,根据视角选择抽象层次
譬如
非技术人员:老板、产品
Context + Container
描述功能点,业务流程
多个协作技术人员
Component
描述模块依赖关系
单个技术人员
Class
描述类的依赖关系,方法执行流程