Week1- 架构是什么 & 如何做架构
1、What:架构是什么
1)架构=架构元素+元素间的关系
2)架构是对一个系统进行建模,是一个系统的完整抽象
引申:如何进行抽象和建模? DDD or ......
2、Why:为什么需要做架构,架构解决了什么问题
1)帮助相关方从不同的角度了解系统
2)不同的角度对应于架构的4+1视图
3、Who:架构是给谁做的,用户是谁
1)架构是先给人做的,再给系统做的,第一优先级是人。记住不能因为系统需要而去做架构,首先应该关注需要被解决问题的人
2)做架构前要先明确相关方有哪些、明确重点对象(老板 or 工程师 or 其他),不同角色的 关注点或问题点是不同的
4、When:什么时候做架构
1)软件设计的的三个阶段(需求分析、概要设计、详细设计)均涉及到架构设计,其中架构师主要负责概要设计+详细设计,有时可能会部分涉及需求分析的工作
5、Where:哪些地方需要做架构
1)物理结构 VS 逻辑结构
2)系统结构 VS 模块结构 VS 类结构
6、How:怎么做架构设计
1)明确相关方&问题场景,基于人和具体的场景进行分析
2)基于相关方和问题,进行需求分析阶段的用例设计,确定系统功能,输出用例图、活动图、状态图、时序图
3)对系统进行概要设计,输出 部署图、子系统时序图、子系统活动图、组件图、组件时序图、组件活动图
4)对系统进行详细设计,输出 类图、类的状态图、类的时序图、类方法的活动图
引申:基于金字塔结构(自顶向下、总分)进行架构设计,即 整体部署图->子系统&子系统关系->组件&组件关系->类&类关系
7、How much:做到什么程度
1)没有最优的架构,只有最合适的架构
8、怎么成为架构师
1)架构师是一个角色、一个Title,而不是一个职位
2)架构师不在于你是不是,而在于你有没有做架构的工作。你去做架构你就是架构师,不要等着被任命为架构师后再去做架构工作
评论