【架构师训练营】第一个周课程总结
推荐2个画图工具
本地:https://www.edrawsoft.cn/edrawmax/
软件架构概述
软件架构,是有关软件整体与组件抽象的描述。
系统有一个架构,架构是有多个架构元素(服务器,服务,类等)组成的,元素之间的关系又分为了静态关系(继承,实现,组合,聚合,依赖,关联等),动态关系(比如服务之间的调用,同步/异步)
架构视图一定要给利益相关方看的,好比给老板看的架构视图和开发人员以及运维人员看的架构视图是不一样的。所以做架构视图一定要明确是给谁看。因为相关方关注的东西是不同的。开发人员可能关注的是系统之间的功能是怎么实现,运维人员关注的可能是各个系统怎么部署等。
UML
统一建模语言。
UML图分类
静态图
描述类、对象和数据结构以及他们之间存在的关系,描述软件要素中不变的逻辑结构
用例图 描述系统的功能需求
类图
组件图
部署图
动态图
描述执行流程或者实体状态变化的方式,展示软件实体在执行过程中的变化图
序列图 对象之间的动态合作关系以及合作过程中的行为次序。
活动图
状态图 描述对象、子系统、系统的的生命周期
架构文档的输出过程有需求分析,概要设计,详细设计,再不同阶段输出的架构视图是不一样的。
需求分析时,可能需要用例图、时序图、活动图、状态图;一般由产品经理来做。
概要设计时,可能需要部署图、子系统时序图、子系统活动图、组件级时序图;
详细设计时,可能需要类的时序图、状态图、方法的活动图。
架构图的详细程度要根据现实情况来定,好比是在一个新的开发团队,软件开发人员可能都是新入职没有经验的大学生,你的架构设计文档中可能就是需要把接口名称,接口方法,类的属性,方法等都要设计出来。
评论