7. 软件子系统架构设计
软件子系统架构设计
目录
- 相关问题
- 集成通信图
- 关注点分离
- 组织原则
- 消息通信决策
1相关问题
1.1 子系统设计建模概述
- 分析建模是基于需求建模(用例建模)的结果
- 设计建模定义了软件的结构和行为属性的软件架构
- 将系统分解为子系统,对子系统进行独立设计。
1.2 如何子系统设计建模
- 子系统是一个与其他子系统功能相对独立。
- 定义子系统的接口,然后就可以具体设计了。
- 子系统和模块的定义是等价的。
1.3 子系统化分方面考虑的问题
- 地理位置上的分布情况
- 服务器职责区分
- 将功能相关、耦合度高的对象划分为同一子系统。
2集成通信图
2.1 通信图作用
- 生成初始的软件设计
- 通信图比序列图更能形象地描述对象之间的联结以及传递的信息。
- 集成通信图是泛化的UML图,描述了对象之间所有可能的交互。通信图上用不编号的简单消息表示。
- 可以通过高层的子系统通信图进行简化。
2.2 通信图的开发方法
- 合成顺序与用例执行顺序一致。
- 各个用例的通信图进行一次叠加。从后向前添加
3关注点分离
3.1 分离关注点的方法
- 复合对象:复合对象属于同一个子系统。
- 地理位置:地理位置不同应该属于不同的子系统
- 客户端和服务
- 用户交互:用户交互对象可能位于不同的独立操作系统当中。
- 外部对象接口:用一个子系统处理用例模型的一部分参与者。和上下文图中的一部分真实对象。
- 控制范围:一个控制对象控制的所有实体和IO对象都应该位于同一个子系统当中。
4组织原则
4.1 子系统组织原则
- 客户端子系统:一个或多个服务的请求者,可以包括用户交互子系统、控制子系统和IO子系统。
- 用户子系统:提供用户访问系统服务。软件系统中的用户交互系统可能有多个,对应不同类型的用户。支持多种用户界面、多窗口多线程控制。
- 服务子系统:对来自客户端的请求进行响应。通常有两个或者多个对象组成的复合对象,包括实体对象、协调者对象、业务逻辑对象。
- 控制子系统:接受外部环境的输入,产生面向外部环境的输出,这里的外部环境可以使其他子系统。
- 协调者子系统:协调其他子系统的执行。监管和协调各个控制子系统。用来决定多个服务子系统的执行顺序。
- 输入输出子系统:可能包含多个设备接口对象,和存储数据的数据对象。
5消息通信的决策
5.1 分析模型和设计模型通信决策对比
- 分析模型中不关心消息通信的类型和消息本身的内容。设计建模,子系统结构被确定后,需要明白消息的准确语义(同步还是异步、单向还是双向)
- 具体表示:分析模型用箭头表示方向。设计模型中,确定消息的通信模式和消息细节,
- 并发的生产者和消费者之间,异步的消息通信(并发代表独立执行,通信,实现独立运行的线程之间的交流,异步,代表互不影响)
- 并发的客户端和并发的服务端,同步的消息通信(客户端一般会等待服务器端进行响应)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!




