写点什么

架构师训练营第一周总结

用户头像
Cloud.
关注
发布于: 2020 年 06 月 08 日

软件架构

软件架构是软件整体结构与组件的抽象描述,用于指导大型软件系统的各方面设计。

4+1 架构视图

软件架构是元素、形式、关系约束的集合。

单一的架构视图无法完整表达架构,需要多种视图集来描述

  • 逻辑视图

  • 相关方:客户、用户、开发组织管理者

  • 视角:系统功能元素

  • 元素:系统、子系统、功能模块、子功能模块、接口

  • 用途:开发组织划分、成本进度评估

  • 过程视图

  • 相关方:性能优化、开发相关人员

  • 视角:系统运行时线程、进程的情况

  • 主要元素:系统进程、线程和处理队列

  • 物理视图

  • 相关方:系统集成商、系统运维人员

  • 物理部署和物理网络配置

  • 主要元素:物理节点和节点的通信

  • 开发视图

  • 相关方:开发人员、测试人员

  • 系统如何开发实施

  • 主要元素:描述系统的层、分区、包、框架、系统通用服务、业务通用服务、类和接口、系统平台和基础框架

  • 场景视图

  • 相关方:用户、设计和开发人员

  • 视角:概括架构上最重要或者最具风险的场景及非功能需求


使用 4+1 视图的最重要的原因,是因为不同的视图需要给不同的相关方看,不同的相关方关注的内容也是不同,而架构就是做给这些相关方的,需要用相关方可以理解的方式来为他们解释架构。


软件建模

建造软件模型的目的

  • 为了与他人沟通

  • 为了保存软件设计的最终成果


UML 可以用来描述

  • 某个问题领域

  • 构思中的软件设计

  • 描述已经完成的软件设计


UML 分为静态图和动态图

比较常用的静态图

  • 用例图

用例图用简要的方式描述出系统具备的功能,元素主要包含参与者和功能

  • 类图

描述程序中的类和类的关系,以及类具备的属性和行为(方法)

  • 关联 描述元素和元素之间存在关联,例如一个元素是另一个元素的成员变量

  • 依赖 描述一种元素以某种方式依赖另一种元素

  • 泛化 描述一般元素和特殊元素的关系,一般元素是特殊元素的泛化

  • 聚合 表示整体和部分的关系

  • 组件图

  • 组件是系统遵从一组接口且提供实现的物理图、可替换的部分。对系统物理方面建模时,它是一个重要的构造块。

  • 组件和组件之间利用抽象接口来进行通信,组件之间的实现对互相是透明的,组件之间不是强耦合的,组件内部是高内聚的。

  • 部署图

  • 系统的物理部署图,部署几台服务器,怎么规划,部署几个节点,需要哪些物理服务器

比较常用的动态图

  • 序列图

  • 序列图描述某个场景下系统和系统之间交互、或者组件和组件之间的交互、或者方法和方法之间的交互,具体需要画哪种交互取决于画的图是给谁看

  • 活动图

  • 活动图描述系统中各种活动的执行顺序、分支,一个活动结束后立刻进入下一个活动,通常可以用来描述系统的重要或者最具风险的场景的工作流程

  • 状态图

  • 状态图用来描述一个特定对象的所有可能的状态及其引起状态转移的事件,状态图包括一系列转改和状态之间转移。

  • 当对象的状态流转非常复杂的时候,使用状态图可以比用文字更清晰的方式来描述状态转换的需求


发布于: 2020 年 06 月 08 日阅读数: 56
用户头像

Cloud.

关注

还未添加个人签名 2020.05.14 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第一周总结