第 01 周 编写架构设计文档 学习总结
什么是软件架构?
有关软件整体结构与组件的抽象描述.
用于知道软件开发和设计.
什么是架构师?
架构师是一个角色,不是一个职位.
架构师主要职责?
编写架构设计文档(week1)
开发编程框架(Week2)
重构软件代码(week3)
设计系统架构(week4)
进行技术选型,解决技术应用中的问题(week5-6)
优化系统性能(Week7-9)
模块分解与微服务架构重构(week10)
保障系统安全与高可用(Week11)
大数据应用(Week12-13)
技术创新(week14)
沟通管理(week15)
架构师主要能力?
编程能力
基础技术掌握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力
快速学习能力
沟通与领导能力
如何成为架构师?
参加架构训练营,把学到的知识应用到实际的项目中.
工作中主动承担一些架构工作
4 +1 架构视图
软件架构={元素,形式,关系/约束}
单一的视图无法完整的表达架构,因此需要具备完整的视图集
逻辑视图( Logical View),设计的对象模型
过程视图( Process View),捕捉设计的并发和同步特征。
物理视图( Physical View),描述了软件到硬件的映射,反映了部署特性
开发视图( Development view),描述了在开发环境中软件的静态组织结构
场景视图( scenarIos),描述用例场景。
逻辑视图
相关方:客户,用户,开发组织管理者
视角:系统的功能元素,以及它们接口,职责,交互。
主要元素:系统,子系统,功能模块,子功能模块,接口
用途:开发组织划分,成本/进度的评估。
开发视图
相关者:开发相关人员,测试人员。
视角:系统如何开发实现。
主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,
系统平台和相关基础框架。
用途:指导开发组织设计和开发实现
物理视图
相关者:系统集成商,系统运维人员。
视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置
主要元素:物理节点以及节点的通信。
过程视图
相关者:性能优化,开发相关人员。
视角:系统运行时线程,进程的情况。
主要元素:系统进程,线程以及处理队列等。
场景视图
相关者:用户,设计和开发人员
视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素运行的方式
模型
什么是模型?
模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。
通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射
为什么要建模?
建造传统模型的目的
为了证明某件事物能否工作
前提:建造模型的成本远远低于建造实物的成本
- 造飞机
- 造高楼
建造软件模型的目的
为了与它人沟通
为了保存软件设计的最终成果
前提:除非模型比代码更说问题
UML 简介
什么是UML?
Unified Modeling Language,或统一建模语言
以图形方式描述软件的概念
UML可用来描述什么?
某个问题领域
构思中的软件设计
描述已经完成的软件实现
UML图的分类
静态图
静态图-通过描述类、对象和数据结构以及它们之间存在的关系,来描述软件要素中不变的逻辑结构.
用例图( Use Case Diagrams)
对象图( Object Diagrams)(不常用)
类图( Class Diagrams)
组件图( Component Diagrams)
包图( Package Diagrams)(不常用)
部署图( Deployment Diagrams)
动态图
动态图-通过描绘执行流程或者实体状态变化的方式,来展示软件实体在执行过程中的变化过程。
协作图( Collaboration Diagrams)(不常用)
序列图( Sequence Diagrams)
活动图( Activity Diagrams)
状态图( State Diagrams)
通用的模型元素
可以在图中使用的概念统称为模型元素。模型元素在图中用其相应的视图元素(符号)表示
下图给出了常用的元素符号:类、对象、结点、包和组件等
通用的模型元素之间的关系
模型元素与模型元素之间的连接关系也是模型元素,常见的关系有关联( associatioη)、泛化( generalization)、依赖( dependency)和聚合( aggregation)。这些关系的图示符号如图:
关联:连接( connect)模型元素及链接(ink)实例。
依赖:表示一个元素以某种方式依赖于另一种元素
泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化
聚合:表示整体与部分的关系。
静态图-常用
用例图
对象图
类图
包图
部署图
动态图-常用
序列图
活动图
状态图
什么阶段画图?
需求分析
用例图
活动图
状态图
时序图
概要设计
部署图
部署时序图
活动图
组件图
组件时序图
详细设计
类图
类图时序图
状态图
方法活动图
评论