架构师第一周总结
如何做架构设计
4+1 架构视图
理念很重要 单一视图无法表达完整的架构,所以需要视图集
一个系统是由不同的角色,不同的人合理完成的,所以架构给不同的人看,展现的内容也是不同的
在对应的场景用UML表达设计意图更重要
uml 工具
draw.io
分类
模型
对现实业务关系理解越清晰
系统本身其实就存在于现实中,设计的系统越贴近现实,在开发起来遇到的问题就越少,系统见关系越清晰,开发起来也就越顺利
所以开发的时候要去理解业务
领域模型-概念模型-系统需求-解决方案
做这些软件模型的设计就是为了把头脑中的抽象表达出来,同时便于与人沟通讨论,以便改进自己的设计
uml
分类(必须记住7种)
静态
- 用例图
- 类图
- 组件图
- 部署图
动态
- 时序图
- 活动图
- 状态图
通用模型元素
类
状态
用例
节点
接口
组件
通用模型关系(类关系)
依赖*
关联
实现*
聚合
组成
继承*
用例建模- 需求分析
描述系统功能需求,宏观了解模型总体轮廓,通过典型用例分析,开发者快速了解用户需求
通常是很多用例图描述一个系统
每个图的元素维持在10-20个左右,不要包含太多关系
可以画不同层次的用例图,一层一层细分
我的系统有什么功能,供什么人使用,功能之间关系是什么
角色用例- 人或者系统
用例边界- 矩形
关系
用例
类图-详细设计
核心类的设计要画出来,而不是所有类
给工程师看
动态建模
uml中消息
简单
同步 同步方法调用 类之间调用一定是同步
异步
时序图 - 需求/概要/详细 设计
可以画不同层面、不同领域、不同系统的时序图
对象 广义上的对象,人/对象/模块/等等
生命线 对象生命周期
激活
消息
可以自动生成协作图(没有时序的图)
活动图 - 需求/概要/详细 设计
描述流程 如何完成
泳道图
- 描述跨领域流程的处理
状态图 需求分析/详细设计
描述核心对象复杂状态变迁
组件图 概要设计
描述物理组件/模块之前的依赖、交互关系,边界
架构设计中最重要的图之一
部署图 概要设计
描述服务器之前的关系
进入架构设计的第一张图就是部署图
架构图是自上而下的,纵览全貌的图,所以第一张图是部署图
评论