笔记 | 软件工程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 软件体系结构设计的输出

相关推荐
Dola_Zou20 小时前
工商业储能系统核心策略
算法·自动化·软件工程
llilian_162 天前
脉冲时间间隔及计数如何精准测试?
功能测试·嵌入式硬件·51单片机·软件工程
gscsded2 天前
MFC 入门:从空窗口到一个能交互的小程序
mfc·软件工程
嘟哩DuliDuli3 天前
剧本节点输入归一化:文本来源、版本与下游引用
android·人工智能·安全·ai·软件工程
qiyongwork3 天前
泛金融IT 研发管理平台设计
金融·项目管理·软件工程·研发管理
我命由我123454 天前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
信可维4 天前
AI 读 Word 表格总读错?先查合并单元格和表头这 3 处
开发语言·人工智能·c#·word·软件工程
Teable任意门互动6 天前
项目管理数字化落地案例|任意门互动科技(Teable 官方合作伙伴)以多维表格搭建项目管理平台
人工智能·开源·软件工程·飞书·开源软件·数据库开发
Allen-Steven6 天前
P/V操作详解与相关考点(软考知识点)
软件工程
嘟哩DuliDuli6 天前
AI创作工作区的项目上下文与多模态任务边界
android·人工智能·安全·ai·软件工程