软件架构风格

目录

  • 软件架构风格分类
    • (一)、管道与过滤器(数据流风格)
    • (二)、层次结构(调用/返回风格)
    • (三)、仓库/黑板系统(数据中心风格)
    • (四)、正交软件结构(调用/返回风格)
    • (五)、客户机/服务器结构(Client/Server,C/S)(调用/返回风格)
    • (六)、浏览器/服务器结构(调用/返回风格)
    • (七)、MVC结构(独立构件风格)

软件架构风格分类

主要分为:

软件架构风格 架构模型(列举部分)
数据流风格 批处理序列、管道与过滤器等
调用/返回风格 层次结构、正交软件结构、客户机/服务器结构、浏览器/服务器结构等
独立构件风格 进程通信、事件系统、MVC结构等
虚拟机风格 解释器、基于规则的系统等
数据中心分割 数据库系统、超文本系统、仓库/黑板系统等

(一)、管道与过滤器(数据流风格)

软件架构风格_第1张图片
特性
1、每个构件都有一组输入和输出,构件读取输入的数据流,经过
内部处理,然后产生输出数据流。
2、构件被称为过滤器,这种风格的连接件就是数据流传输的管道
,将一个过滤器的输出传到另一过滤器的输入
3、过滤器是独立的实体,不能与其他的过滤器共享数据,而且一
个过滤器不知道它上游和下游的标识
4、适合批处理非交互处理的系统,使软件具有良好的信息隐藏
模块独立性,从而产生高内聚低耦合的特点

(二)、层次结构(调用/返回风格)

软件架构风格_第2张图片
特点:
1、层次系统中,每一层为上层提供服务,并作为其下层客户。
2、连接件通过决定层间如何交互的协议来定义,拓扑约束包括对
相邻层间交互的约束。
3、这种风格支持基于可增加抽象层的设计,允许将一个复杂问题
分解成一个增量步骤序列的实现

(三)、仓库/黑板系统(数据中心风格)

软件架构风格_第3张图片
特点
1、中央数据结构说明当前状态,独立构件在中央数据存储上执行
,仓库与外构件间的相互作用在系统中会有较大的变化。
2、控制原则的选取将产生两个主要的子类:
– 若输入流中某类事件触发进程执行选择,仓库是传统型数据库
– 若中央数据结构的当前状态触发进程执行选择,仓库是黑板系统
3、黑板系统的传统应用是信号处理领域,如语音和模式识别,另
外的应用包括松耦合代理数据共享存取等

(四)、正交软件结构(调用/返回风格)

软件架构风格_第4张图片
特点:
1、由组织层和线索的构件构成: 是由一组具有相同抽象级别的构件构成; 线索是子系统的特例,它由完成不同层次功能的构件组成,通过相互调用来关联,每一条线索完成整个系统中相对独立的一部分功能
2、 正交软件架构的线索是相互独立,即不同线索中的构件之间没有相互调用,是一种以垂直线索构件族为基础的层次化结构。
3、在软件演化过程中,系统需求会不断发生变化。在正交软件架构中,因线索的正交性,每个需求变动仅影响某一条线索。

(五)、客户机/服务器结构(Client/Server,C/S)(调用/返回风格)

软件架构风格_第5张图片

组成部分 作用
服务器 负责管理系统资源
客户应用程序 提供交互界面、提交用户请求、接收来自服务器的信息等
网络 完成服务器和客户应用程序之间的数据传输

特点:
1、服务器为多个客户应用程序管理数据
2、对于硬件和软件的变化具有极大的适应性和灵活性
3、易于对系统进行扩充和缩小
4、系统中的功能构件充分隔离

(六)、浏览器/服务器结构(调用/返回风格)

软件架构风格_第6张图片
特点:
1、B/S是C/S的扩展。
2、应用(程序)在一定程度上具有集中特征。
3、减轻安装、配置和升级等维护工作。
4、层与层之间相互独立,任何一层的改变都不影响其他层原有的功能,所以可用不同厂家的产品组成性能更佳的系统。(平台透明性)

(七)、MVC结构(独立构件风格)

软件架构风格_第7张图片
模型(Model)-视图(View)-控制器(Controller)

模块 功能
视图(view) 用户看到并与之交互的界面
模型(Model) 表示企业数据和业务规则
控制器(Controller) 接收用户的输入并调用模型和视图完成用户的需求,控制器本身不输出任何结果也不做任何处理

特性:
MVC是一种软件设计典范,用业务逻辑、数据、界面显示分离的方
法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制
界面及用户交互的同时,不需要重新编写业务逻辑。

你可能感兴趣的