目录
- 软件架构风格分类
- (一)、管道与过滤器(数据流风格)
- (二)、层次结构(调用/返回风格)
- (三)、仓库/黑板系统(数据中心风格)
- (四)、正交软件结构(调用/返回风格)
- (五)、客户机/服务器结构(Client/Server,C/S)(调用/返回风格)
- (六)、浏览器/服务器结构(调用/返回风格)
- (七)、MVC结构(独立构件风格)
软件架构风格分类
主要分为:
软件架构风格 | 架构模型(列举部分) |
---|---|
数据流风格 | 批处理序列、管道与过滤器等 |
调用/返回风格 | 层次结构、正交软件结构、客户机/服务器结构、浏览器/服务器结构等 |
独立构件风格 | 进程通信、事件系统、MVC结构等 |
虚拟机风格 | 解释器、基于规则的系统等 |
数据中心分割 | 数据库系统、超文本系统、仓库/黑板系统等 |
(一)、管道与过滤器(数据流风格)
特性:
1、每个构件都有一组输入和输出,构件读取输入的数据流,经过
内部处理,然后产生输出数据流。
2、构件被称为过滤器,这种风格的连接件就是数据流传输的管道
,将一个过滤器的输出传到另一过滤器的输入
3、过滤器是独立的实体,不能与其他的过滤器共享数据,而且一
个过滤器不知道它上游和下游的标识
4、适合批处理和非交互处理的系统,使软件具有良好的信息隐藏
性和模块独立性,从而产生高内聚、低耦合的特点
(二)、层次结构(调用/返回风格)
特点:
1、层次系统中,每一层为上层提供服务,并作为其下层客户。
2、连接件通过决定层间如何交互的协议来定义,拓扑约束包括对
相邻层间交互的约束。
3、这种风格支持基于可增加抽象层的设计,允许将一个复杂问题
分解成一个增量步骤序列的实现
(三)、仓库/黑板系统(数据中心风格)
特点:
1、中央数据结构说明当前状态,独立构件在中央数据存储上执行
,仓库与外构件间的相互作用在系统中会有较大的变化。
2、控制原则的选取将产生两个主要的子类:
– 若输入流中某类事件触发进程执行选择,仓库是传统型数据库;
– 若中央数据结构的当前状态触发进程执行选择,仓库是黑板系统。
3、黑板系统的传统应用是信号处理领域,如语音和模式识别,另
外的应用包括松耦合代理数据共享存取等
(四)、正交软件结构(调用/返回风格)
特点:
1、由组织层和线索的构件构成: 层是由一组具有相同抽象级别的构件构成; 线索是子系统的特例,它由完成不同层次功能的构件组成,通过相互调用来关联,每一条线索完成整个系统中相对独立的一部分功能。
2、 正交软件架构的线索是相互独立,即不同线索中的构件之间没有相互调用,是一种以垂直线索构件族为基础的层次化结构。
3、在软件演化过程中,系统需求会不断发生变化。在正交软件架构中,因线索的正交性,每个需求变动仅影响某一条线索。
(五)、客户机/服务器结构(Client/Server,C/S)(调用/返回风格)
组成部分 | 作用 |
---|---|
服务器 | 负责管理系统资源 |
客户应用程序 | 提供交互界面、提交用户请求、接收来自服务器的信息等 |
网络 | 完成服务器和客户应用程序之间的数据传输 |
特点:
1、服务器为多个客户应用程序管理数据
2、对于硬件和软件的变化具有极大的适应性和灵活性
3、易于对系统进行扩充和缩小
4、系统中的功能构件充分隔离
(六)、浏览器/服务器结构(调用/返回风格)
特点:
1、B/S是C/S的扩展。
2、应用(程序)在一定程度上具有集中特征。
3、减轻安装、配置和升级等维护工作。
4、层与层之间相互独立,任何一层的改变都不影响其他层原有的功能,所以可用不同厂家的产品组成性能更佳的系统。(平台透明性)
(七)、MVC结构(独立构件风格)
模型(Model)-视图(View)-控制器(Controller)
模块 | 功能 |
---|---|
视图(view) | 用户看到并与之交互的界面 |
模型(Model) | 表示企业数据和业务规则 |
控制器(Controller) | 接收用户的输入并调用模型和视图完成用户的需求,控制器本身不输出任何结果也不做任何处理 |
特性:
MVC是一种软件设计典范,用业务逻辑、数据、界面显示分离的方
法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制
界面及用户交互的同时,不需要重新编写业务逻辑。