2. 软件架构设计方法
软件架构设计方法
目录
1 面向对象
2 信息隐藏
3 继承和泛化
4 并发处理
5 设计模式
6 软件架构和构件
7 软件质量属性
8 基于用例的软件生命周期
9 需求、分析和设计建模活动
1 面向对象
这一部分请参考面线对象的课程笔记。
1.1 关键概念
对象
类
属性
操作
接口
对象的接口是他提供的操作的集合。
2 信息隐蔽
2.1 信息隐蔽基础
接口是对象可见的部分,其他对象通过接口来调用操作
- 对象的数据结构发生变化时,不会对其他对象产生影响,只对拥有这个数据结构的对象(同一个类)有影响,并且,由于借口不变,对这个对象的操作调用不变。
- 基本模块是对象,信息隐藏的内容有栈对象。必须通过栈对象来访问操作。
2.2 信息隐蔽的实现
数组实现的信息隐蔽策略
链表实现的信息隐蔽策略
2.3 信息隐藏对象的设计
- 首先设计信息隐蔽对象的外部接口
- 其次设计信息隐蔽对象的内部实现细节
3 继承和泛化
3.1 作用
- 实现了代码的复用,是一种扩展机制
4 并发处理
4.1 主动对象
- 主动对象=并发对象=并发过程=并发任务
- 拥有自己的空值线程,并且独立于其他对象进行执行
- 每个主动对象处理一个顺序执行的线程
- 通过多个主动对象实现并发,不能通过主动对象内部实现并发过程。
- 相互之间可以异步执行、通信,也可以同步执行、通信。
4.2 被动对象
- 没有控制线程,被主动对象调用。
- 可以调用其他被动对象。
- 一旦被调用就会占据主动对象的线程进行执行。
4.3 主动对象间的协作
这一部分请参考操作系统部分的笔记
互斥问题
同步问题
- 事件同步。源任务执行信号操作,目标任务执行等待操作。
- 主动对象之间通过信号通信实现了线程任务的同步。
生产者消费者问题
- 生产者主动对象产生信息
- 消费者主动对象消费信息
- 由于每个主动对象拥有他自己的控制线程,独立执行。所以每个对象操作时必须进行同步。
5 设计模式
反复使用、多人知晓、经过分类编目的设计经验总结。避免重复发明轮子。
设计模式涉及多个类和对象之间的关系,提供了一种比类的力度更大的方式。
- 软件架构:描述的是各个阶段各个力度各个等级的模型和视图。
- 设计模式:表示类的组织方式。
- 类:属性和操作的集合。
6 软件架构和构件
定义构件以及构件之间的连接关系。
- 定义构件需要描述其接口。
- 定义构件连接的连接器(多个构件之间的互联协议)
7 软件质量属性
- 性能
- 安全性
- 可用性
- 可伸缩性
- 可复用性
- 可维护性
- 可修改性
- 可测试性
- 可追踪性
8 基于用例的软件生存周期
9 需求、分析、建模过程
9.1 需求建模
- 系统的功能需求采用用例和参与者来描述。
- 用例定义了一个或多个参与者与系统之间的交互序列。
- 用例描述是一个行为视图。用例关系是一个结构视图。
9.2 分析建模
- 考虑对问题域的理解。
- 静态建模:提供信息的结构视图。
- 对象组织:确定参与每个用例的对象。包括实体对象、边界对象、控制对象、应用逻辑对象。
- 动态交互建模:参与用例的对象之间的交互。使用用例图和通信图,来表示用例执行过程。
- 状态机建模:对状态相关的对象进行建模——状态图。
9.3 设计建模
- 考虑问题的解决方案。
- 考虑很多细节:接口设计、架构模式和设计模式决策、类接口决策、应用分布决策、对象特性决策、消息特性决策。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!




