软件体系架构

软件体系结构

- 管道过滤器风格:

每个模块都有一组输入和输出。功能模块从输入集合读取数据流,在输出集合产生数据流。其中,功能模块称为过滤器,功能模块之间的连接可以看作输入,输出数据流之间的通路。过滤器独立完成自己的功能,相互之间无需进行状态交互。 
案例:C源代码->预处理->编译->汇编->链接->可执行文件。中间的四步骤即可以看作是四个模块。

- 面向对象风格:

以一种更接近人类一般思维的方式去看待世界,把世界上的任何一个个体都看作是一个对象。一组具有相同属性和方法的对象构成一个类。不同对象之间存在着通信和交互,以此构成系统的运转。(特点就是抽象,继承,封装,多态)

- 事件驱动风格(预定发布风格):

对外部环境的系统行为可以实现为对事件的处理方法。对系统输入一个事件,观察其输出,以达到分析系统的目的。可以方便的执行并发进程和多任务的操作,且具有良好的可扩展性(设计者只需给一个对象注册一个事件接口并使这个系统纳入系统即可)。缺点这个风格弱化了计算机系统对其的控制能力(系统发出一个事件,难以保证系统内的对象可以响应,或连续响应);并使系统内的逻辑关系复杂(结果依赖上下环境)。 
案例:JavaBean系统在事件驱动机制里会把一些构建作为事件源,这些构件产生接收事件,通过事件传递消息。 (事件监听器)

- 分层风格:

一个分层系统采用多个层次组织。每一层都有两个作用,首先为它的上层提供服务,其次,可以调用下层的功能。最高层不需要提供任何服务,最底层不会使用任何服务。分层是在实践中逐渐分离(分解整个系统的功能)出来的且易于复用(只要接口一致)。
简单模型:核心层(最底层)->功能层(中间层)->应用层(最高层) 
三层架构:表示层(用户界面包)<->业务逻辑层(业务逻辑包)<->数据访问层(数据访问包)<->数据库 
案例:计算机网络ISO七层架构

- 数据共享风格(库风格):

中央数据单元和外部构件的交互,中央数据单元代表当前系统的每个状态,外部构件相互依赖,且可以操作中央数据单元。这种体系风格分为两类: 
1. 基于传统的数据库式风格的应用系统:由输入数据流的信息服务驱动。 
2. 基于黑板式风格的应用系统(对无解性问题进行架构):由风格库的当前状态驱动。主要包含三个构件:

  • 知识源:(条件:系统基于库风格,完全依赖于库中状态的变化。)知识源是库中主要的信息来源。
  • 中央数据单元:整个系统的核心组成部分,通过程序处理所需要的状态。
  • 控制单元:知识源不断向库中输入信息,由于知识的状态改变,必须由控制单元触发相应的操作。

- 解释器风格:

解释器风格为客户端和服务端构件:当一些规则或者触发器被激活时,解释器被激活,控制系统状态。 
案例:虚拟机。解释器由四部分组成: 

  • 1. 负责解释的解释器引擎;

 

  • 2. 包含伪代码的数据存储空间;
  • 3. 记录解释器引擎当前状态的数据结构;
  • 4. 记录解释器资源编码进程的数据结构。
posted @ 2019-06-04 16:09  lijiahaoAA  阅读(410)  评论(0编辑  收藏  举报