写点什么

第 01 周 编写架构设计文档 学习总结

用户头像
Jaye
关注
发布于: 2020 年 06 月 09 日

什么是软件架构?



  1. 有关软件整体结构与组件的抽象描述.

  2. 用于知道软件开发和设计.



什么是架构师?



架构师是一个角色,不是一个职位.



架构师主要职责?



编写架构设计文档(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)实例。

依赖:表示一个元素以某种方式依赖于另一种元素

泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化

聚合:表示整体与部分的关系。



静态图-常用



用例图
对象图
类图
包图
部署图



动态图-常用



序列图
活动图
状态图



什么阶段画图?

需求分析

  • 用例图

  • 活动图

  • 状态图

  • 时序图



概要设计

  • 部署图

  • 部署时序图

  • 活动图

  • 组件图

  • 组件时序图



详细设计

  • 类图

  • 类图时序图

  • 状态图

  • 方法活动图



用户头像

Jaye

关注

还未添加个人签名 2018.01.23 加入

还未添加个人简介

评论

发布
暂无评论
第01周 编写架构设计文档 学习总结