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

1 软件体系结构的概念

image.png

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

image.png

1.2 不同的抽象层次

image.png

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

image.png

1.3.1 软件体系结构的逻辑视图:包图

image.png

1.3.2 软件体系结构的逻辑视图:构件图

image.png

1.3.3 软件体系结构的开发视图

image.png

1.3.4 软件体系结构的部署视图

image.png

1.3.4.1 描述性部署图

image.png

1.3.5 软件体系结构的运行视图

image.png

1.3.6 描述软件体系结构的三类UML图
1.3.6.1 包图

image.png

包的定义

image.png
包的作用

image.png

1.3.6.2 构件图

image.png

构件及接口

image.png

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

构件和接口的表示

image.png

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

1.3.6.3 部署图

image.png

描述性部署图

描述性部署图的节点:

image.png
描述性部署图的边:
image.png

实例性部署图

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

部署图的建模原则

image.png

1.4 软件设计模式

image.png

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

image.png

常用软件体系结构风格:

image.png|425

1.4.1.1.1 分层体系结构模式

image.png

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

image.png

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

分层体系结构模式的约束

image.png

分层体系结构模式的特点

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

1.4.1.1.2 管道与过滤器风格

image.png
image.png

管道与过滤器风格的约束

image.png

示例:编译器

image.png

管道与过滤器风格的特点

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

image.png

应用实例:现代编译器

image.png

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

image.png

知识库风格的特点

image.png

1.4.1.1.4 黑板风格

image.png
image.png
image.png
黑板风格的约束

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

黑板风格的特点

image.png
image.png

1.4.1.1.5 MVC风格

image.png
MVC风格的约束

image.png

1.4.1.1.6 SOA风格

image.png
image.png
SOA风格的特点

image.png

1.4.1.1.7 消息总线风格

image.png
image.png

2 软件体系结构设计

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

image.png

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

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

image.png

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

image.png

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

image.png

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

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

image.png

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

image.png
image.png

2.6.2 辨识关键软件需求

image.png

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

2.6.3 不同体系结构风格适合的应用

image.png

2.6.4 重用开源软件及已有软件资产

image.png

2.6.5 将软件资产集成到体系结构设计中

image.png

2.6.6 精化软件体系结构

image.png

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

image.png

设计其所需的基础服务:

image.png

确立设计元素

image.png
1. 确定子系统及其接口
1. image.png
2. 评估和改进所确立的子系统
image.png
3. 确定子系统的接口
image.png
2. 确定构件及其接口
1. image.png
3. 确定关键设计类及其接口
1. image.png

2.6.7 设计部署模型

image.png

2.7 整合体系结构设计

image.png
image.png

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

2.8 优化体系结构设计

image.png

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

image.png

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

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

image.png

3.2 评审软件体系结构设计

image.png

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

image.png

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
上篇:软件设计模式例子代码  【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  【例3.2】组合模式-五子棋代码  【例3.3】组合模式-空军指挥系统  【例3.4】组合模式-世界问候语  【例3.7】类适配器模式-客户信息验证  【例3.8】对象适配器模式-字符串排序  【例3.10】外观模式-安全系统  【例3.11】外观模式-椭圆功能  【例3.13】桥接模式-茶水机系统  【例3.14】桥接模式-几何立体体积  【例4.1】迭代器模式-矩阵搜索  【例4.2】迭代器模式-产品搜索  【例4.4】访问者模式-名牌鞋销售软件  【例4.5】访问者模式-计算机部件销售软件  【例4.6】命令模式-室内温度控制  【例4.7】命令模式-室内温度控制-2个GUI  【例4.8】命令模式-室内温度控制-3个GUI  【例4.10】中介者模式-旅游信息共享  【例4.11】中介者模式-海岛机场  【例4.13】策略模式-整数排序  【例4.14】策略模式-中国属相  【例4.16】状态模式-交通信号灯-设计1  【例4.16】状态模式-交通灯信号灯-设计2  【例4.16】状态模式-交通灯信号灯-设计3 下篇:软件体系结构例子代码  【例6.4】结构化设计-文件更新-C源代码  【例6.5】面向对象设计架构-文件更新  【例6.7】顺序批处理架构-文件更新  【例6.8】顺序批处理架构-图像处理  【例6.9】管道过滤器架构-主动过滤器  【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例6.17】事件体系结构-观察者模式-大草原1  【例6.18】事件体系结构-观察者模式-大草原2  【例6.19】事件体系结构-观察者模式-温度显示  【例6.21】层次架构-软件测试  【例6.22】层次架构-银行- Access数据库  【例6.23】MVC架构-二手车拍卖-无观察者  【例6.24】MVC架构-二手车拍卖-观察者-3个图形界面  【例6.25】MVC架构-二手车拍卖-观察者-1个图形界面
软件设计师教程笔记整理——XMind文件是一种方便而有效的方法,用于帮助软件设计师整理和管理他们的学习笔记。XMind是一个强大的思维导图工具,可以辅助软件设计师将复杂的概念和信息整理成可视化的思维导图。以下是一些关于如何使用XMind整理软件设计师教程笔记的方法。 首先,在创建XMind文件之前,确定整理笔记的主题和目标。软件设计师教程可能涉及到多个主题,如需求分析、系统设计、编码技术等。根据教程的内容,创建适当的主题和子主题,以帮助分类和组织信息。 其次,使用XMind的多样化功能来补充思维导图。通过添加文本、图片、链接和附件等元素,增强思维导图的可读性和信息密度。例如,可以在节点中添加关键概念的定义、示意图、参考链接或相关文档,以便将来复习、研究或进一步学习。 第三,合理使用颜色和样式来区分不同类型的信息。XMind提供了丰富的颜色和样式选项,可以用来标记重要的内容、不同类型的问题或者需要进一步研究的部分。使用颜色和样式可以帮助软件设计师更快地浏览和理解思维导图。 最后,定期更新和完善XMind文件。软件设计师教程是一个不断更新和发展的领域,因此笔记的更新也是非常重要的。软件设计师应该根据自己的学习进度和新增知识,及时更新XMind文件中的内容,以保持其有效性和准确性。 总的来说,软件设计师教程笔记整理-XMind文件是一个有用的工具,可以帮助软件设计师更好地组织和管理他们的学习笔记。通过合理使用XMind的功能和特点,软件设计师可以轻松地将教程中的关键信息整理成可视化的思维导图,并随时更新和完善。这将有助于软件设计师提高学习效率和工作效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eternal_U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值