摘要:本文给出软件体系结构风格的定义,并介绍几种常用风格:管道过滤器、数据抽象和面向对象组织,基于事件的隐式调用,分层系统,仓库系统,过程控制环路

  1. 软件体系结构风格是什么
    描述特定系统组织方式惯用范例
    组织方式即静态表述的样例。
    惯用范例是反应众多系统共有的结构和语义,独立于实际问题。
    体系结构风格指导如何将各个模块和子系统有效地组织成一个完整的系统。
  2. 管道/过滤器风格
    该风格的构件被称为过滤器,读输入的数据流,经过内部处理,产生输出数据流。
    该风格的连接件被称为管道,将一个过滤器的输出传入到另一个过滤器的输入。
    该风格的特点:
    ①过滤器虽然可以增量式地处理数据,但是它们是独立的。
    ②管道和过滤器的正确输出不依赖其顺序。(实际可能不是这样)
    实例:
    编译器,功能程序,并行程序。
  3. 软件动态架构和静态架构_数据结构

  4. 数据抽象和面向对象组织
    该风格的构件是类或抽象数据类型的实例即对象。
    该风格的连接件是方法(有时根据有无返回值细分为函数和过程)。
  5. 软件动态架构和静态架构_软件动态架构和静态架构_02

  6. 基于事件的隐式调用(难点)
    为何叫隐式调用——构件不直接调用一个过程,而是触发或广播一个或多个事件。
    该风格的构件分为两类:事件源(也叫事件接收)和事件处理。
  7. 软件动态架构和静态架构_软件体系结构_03

  8. 这两类构件本无关。通过注册机制(也叫事件处理机制)产生联系。事件源类似GUI中的按钮,事件处理类似程序员写的事件响应函数。(一种动态绑定?)
    该风格的特点:事件的触发者并不知道哪些构件会被这些事件影响。(对应设计模式——观察者模式)
    实例:数据库管理系统,用户界面。
  9. 分层系统
    按照层次结构组织,每一层都为上一层提供了相应的服务,并且接受下一层的服务。
    宏观上表现为层与层间调用,微观上表现为一些内层之对其相邻层和某些用于输出的函数可见,对于其他外部的层隐藏。
    在分层系统的一些层次中构件实现了虚拟机。
    连接件通过协议定义,协议规定了层次之间的交互方式。
  10. 软件动态架构和静态架构_软件动态架构和静态架构_04

  11. 图片英文翻译:箭头所指-各种元素的集合,过程调用
    层从里到外-内核层,基本功能层,应用系统层,用户
    实例:分层的通信协议
  12. 仓库系统
    最大的特点:有一个中央数据结构(即数据仓库,比数据库多一些AI/BI)
    构件:中央数据结构和一些独立构建的集合。
    仓库和在系统中很重要的外部构件之间的相互作用。
    实例:需要使用一些复杂表征的信号处理系统。
  13. 软件动态架构和静态架构_软件动态架构和静态架构_05

  14. 英文翻译:箭头所指/直接存取,计算,存储器;ks为knowledge source知识源。
    黑板系统:中央仓库里的数据可共享。
  15. 过程控制环路
    源自硬件领域,可以联系机器学习的模型训练过程。
    该风格将事务处理看成输入、加工、输出、反馈、再输入的一个持续的过程模型。
    通过持续性的加工处理过程将输入数据转换成既定属性的“产品”。(产品是想要的正确的输入)
  16. 软件动态架构和静态架构_数据结构_06