笔记 | 软件工程06-2:软件设计-软件体系结构设计

1 软件体系结构的概念

1.1 软件体系结构的设计元素

1.2 不同的抽象层次

1.3 软件体系结构的不同视图

1.3.1 软件体系结构的逻辑视图:包图
1.3.2 软件体系结构的逻辑视图:构件图
1.3.3 软件体系结构的开发视图
1.3.4 软件体系结构的部署视图
1.3.4.1 描述性部署图
1.3.5 软件体系结构的运行视图
1.3.6 描述软件体系结构的三类UML图
1.3.6.1 包图

包的定义


包的作用

1.3.6.2 构件图

构件及接口

从上述描述来看:一个端口包括了多个接口

构件和接口的表示

一个圆圈"○"表示的是供给接口,一个半括号"("表示的是需求接口

1.3.6.3 部署图

描述性部署图

描述性部署图的节点:

描述性部署图的边:

实例性部署图

实例性部署图与描述性部署图之间的关系可类比为对象图与类图之间的关系。实例性部署图中节点的命名方式为"节点名: 类型名",其中类型名为描述性部署图中的节点名

部署图的建模原则

1.4 软件设计模式

1.4.1 不同抽象层次的设计模式
1.4.1.1 体系结构风格 - 面向整个软件系统

常用软件体系结构风格:

1.4.1.1.1 分层体系结构模式

应用实例:TCP/IP分层通信协议

合理地设计抽象层次和组织软构件是关键

分层体系结构模式的约束

分层体系结构模式的特点

松耦合,可替换,可复用,标准化

1.4.1.1.2 管道与过滤器风格


管道与过滤器风格的约束

示例:编译器

管道与过滤器风格的特点

  1. 自然地解决具有数据流特征的软件需求
  2. 可独立地更新、升级过滤器来实现软件系统的扩展和进化
1.4.1.1.3 知识库风格

应用实例:现代编译器

基于仓库风格的软件研发环境Eclipse

知识库风格的特点

1.4.1.1.4 黑板风格




黑板风格的约束

典型应用实例:AI如NLP、语音处理、模式识别、图像处理等

黑板风格的特点


1.4.1.1.5 MVC风格


MVC风格的约束

1.4.1.1.6 SOA风格



SOA风格的特点

1.4.1.1.7 消息总线风格


2 软件体系结构设计

2.1 软件体系结构设计的任务

软件体系结构设计示意图:

2.2 软件体系结构设计的目标

2.3 软件体系结构设计 vs 软件需求

2.4 软件体系结构设计 vs 详细设计

2.5 软件体系结构设计的重要性和关键性

2.6 软件体系结构设计的过程

2.6.1 设计初步的软件体系结构


2.6.2 辨识关键软件需求

根据关键需求选择合适体系结构风格

2.6.3 不同体系结构风格适合的应用
2.6.4 重用开源软件及已有软件资产
2.6.5 将软件资产集成到体系结构设计中
2.6.6 精化软件体系结构

确定公共基础设施及服务:

设计其所需的基础服务:

确立设计元素

  1. 确定子系统及其接口

  2. 评估和改进所确立的子系统

  3. 确定子系统的接口

  4. 确定构件及其接口

  5. 确定关键设计类及其接口

2.6.7 设计部署模型

2.7 整合体系结构设计


2.7.1 整合体系结构设计的结果
  1. 设计元素的职责划分更为明确
  2. 系统与外部接口、相关设计元素间的接口和协作更为清晰
  3. 整体体系结构设计方案更为优化

2.8 优化体系结构设计

2.9 软件体系结构设计的原则

3 文档化和评审软件体系结构设计

3.1 撰写软件体系结构设计文档

3.2 评审软件体系结构设计

3.3 软件体系结构设计的输出

相关推荐
rolt1 天前
长得像用例图的类图-《软件方法》8.2.3.4
软件工程·uml·面向对象
阿萨姆.3571 天前
结对编程 --- 软件工程
java·软件工程·结对编程
写代码的橘子n1 天前
软件工程笔记一
笔记·软件工程
思茂信息2 天前
CST汽车天线仿真(双向混合求解)
javascript·人工智能·5g·汽车·ar·软件工程
幸运超级加倍~2 天前
软件设计师-上午题-12、13 软件工程(11分)
笔记·软件工程
晓北斗NorSnow2 天前
在软件工程开发中,瀑布式开发和螺旋式开发的优缺点比较
软件工程
zk计科小牛马3 天前
软件工程(软考高频)
软件工程
蜗牛学苑_武汉3 天前
浏览器中的事件循环
前端·javascript·chrome·ajax·软件工程·html5
诗和远方ya5 天前
c# 值类型
开发语言·c#·软件工程·visual studio
张瑞东6 天前
系统架构设计师-未来信息综合技术(2)
系统架构·软件工程