软件体系风格

体系风格

如武林门派各有异长之处,其所长即是风格体现。
对于软件体系来说"每一套体系风格里装载着独特的结构、语义特性"

体系构成

组成体系的几大要素

  • 数据流风格: API接口规范、管道、过滤器
  • 调用/返回风格: 主次程序关系、面向对象模式、层次结构
  • 独立性的构建风格: 进程间通信方式、事件处理系统
  • 虚拟机风格: 解析器、约定的规则系统
  • 厂库数据风格: 数据库系统、超文本系统、黑板系统

但凡软件领域里的系统及架构都离不开这些由这些要素来构建。
而且,对应软件层次结构画分可以按以上要素进行分层。

经典风格

管道与过滤器

可以粗略的将管道与过滤器看成一个黑盒子,一端往里丢数据,然后再从另一端取出已处理的数据。

管道
Unix 进程通信之管道详解

过滤器: 比较官方的解释"输入被消费前,输出已产生",实际上也是内部加上特定的处理后输出数据。不同的是其需要为独立的实体,每一个过滤器的数据为独立,不与其他过滤器共享。

优点:

  • 软件结构有良好的隐蔽性和高内聚、低耦合
  • 方便开发人员(设计师)处理输入\输出数据流
  • 支持软件重用
  • 便于系统维护,易于扩展系统性能
  • 支持并发处理 (过滤器为独立任务,每一个任务可以并行处理)

缺点:

  • 对交互式的应用,"黑盒子处理方式显得不太友好"
  • 过滤器处理数据的成本随着其数量增加而增加

数据抽象和面对对象系统

构件作为对象,负责保证资源的完整性,通过函数和过程调用来实现交互。

优点:

  • 根据对象的属性,可以做到高内聚、低耦合(通过隐藏来实现)。(即改变某个对象的表示,不会影响到其他对象)

缺点

  • 在过程调用及交互中,对象标志被改变了,那么调用该该标志的函数都需要进行改变(不太利于后续维护)

基于事件系统

其思想是系统构件不直接通过调用对象或者过程,而是通过触发器或者广播一个及多个事件来激活对应的进程调用。(为隐式调用)

优点:

  • 易于重构
  • 易于扩展系统(当用一个构件替代另外一个构件时,不会影响到其他构件接口)

缺点:

  • 数据通信问题。(消息广播后,不能确定有构件对其进行响应)

分层系统

所谓层次秉承上启下,对上层提供调用接口,对下层封装调用的接口。

仓库系统及知识库

主要由两种构件组成,中央数据结构+独立构件。
通常情况下,黑板系统作为仓库
其黑板由以下构成:
a. 知识源 。 (知识源之间互为独立,其通信通过黑板来完成(数据共享))
b. 黑板数据结构
c. 控制 (黑板的状态驱动为控制主导者)

C2风格

通过连接件绑定在一起的按照一组规则运作的并行构件网络。
其特点如下:

  • 系统中的构件可以通过不同的网络组成来构造复杂的应用需求
  • 构件的通信可以通过异步消息交换机制来实现
  • 构件之间互为独立,关联性比较小
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第九章 软件架构设计 9.1 软件架构概述 9.1.1 软件架构的定义 定义1:软件或计算机系统的软件架构是该系统...
    步积阅读 4,997评论 0 17
  • 1. 管道和过滤器风格 【数据流风格,因为管道里都是数据流】 (1)构件:过滤器。它对输入流进行处理、转换。处理后...
    Mikito_k阅读 7,709评论 0 4
  • 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。 软件工程的三个要素:方法、工具...
    SnorlaxSE阅读 5,765评论 0 3
  • 体系结构 = 组件 + 连接件 + 约束 软件体系结构的核心概念: 构/组件 软件重用 构件: 语义完整、语法正确...
    pianosecret阅读 3,040评论 0 0
  • 1、什么是软件架构风格 软件架构风格就是描述某一特定应用领域中系统组织方式的惯用模式。架构风格反映了应用领域中众多...
    枫_7654阅读 1,094评论 0 1

友情链接更多精彩内容