软考架构-架构风格

一、概念:

        风格就是架构的模式,比如C/S、B/S架构,比如现实生活中的中式风格、欧式风格

        描述某一特定应用领域中系统组织的方式

软件架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。

架构设计的核心问题是能否达到架构级的软件复用

架构风格定义了用于描述系统的术语表和一组指导构架系统的规则

二、风格分类

架构风格 考点 说明

数据流-批处理

传统编译器,每个阶段的结果作为下一个阶段的输入,区别在于整体 一个接一个,以整体为单位
数据流-管道-过滤器 一个接一个,前一个输出是后一个输入
调用/返回-主程序/子程序 显示调用,主程序直接调用子程序
调用/返回-面向对象 对象是构件,通过对象调用封装的方法和属性
调用返回/-层次结构 分层,每层最多影响上下两层,有调用关系
独立构件-进程通信 进程间独立的消息传递,同步异步
独立构件-事件驱动(隐式调用) 时间触发推动动作,如程序语言的语法高亮、语法错误提示 不直接调用,通过事件驱动
虚拟机-解释器 自定义流程,按流程执行,规则随时改变,灵活定义,业务灵活组合。机器人 解释自定义的规则、解释引擎、存储区、数据结构(灵活业务规则)
虚拟机-规则系统 规则集、规则解释器、选择器和工作内存,用于DSS和人工智能、专家系统
仓库-数据库

现代编译器的集成开发环境IDE,以数据为中心

又称为数据共享风格

中央共享数据源,独立处理单元
仓库-黑板 语音识别、只是推理等问题复杂、解空间大、求解过程不确定的这一类软件系统,黑板,知识源、控制
仓库-超文本 网状链接,多用于互联网
闭环-过程控制 汽车定速巡航、空调温度调节、设定参数,并不断调整 发出控制命令并接受反馈,循环反复达到平衡
C2风格 构件和连接件、顶部和底部 通过连接件绑定在一起按照一组规则运作的并行构件网络

1、数据流风格

面向数据流,按一定的顺序从前向后执行程序,代表的风格有批处理序列、管道-过滤器

批处理序列:(有固定顺序)构件为一系列固定顺序的计算单元,构件之间通过数据传递交互,每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体方式传递。

管道-过滤器:(有顺序,有数据流)每个构件有一组输入和输出,构件读取输入的数据流,经过内部处理,产生输出数据流。前一个构件的输出作为后一个构件的输入,前后数据流关联。过滤器就是构件,连接件就是管道。

二者区别:批处理前后构件不一定有关联,作为整体传递,前边整个构件运行完,才能运行后边构件。管道-过滤器,是前一个输出作为后一个输入,前面执行到部分可以开始执行后面,比如:视频播放。

2、调用/返回风格

构件之间存在互相调用的关系,显示的调用。代表风格有主程序/子程序、面向对象、层次结构

主程序/子程序:单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序。过程调用充当连接件。柱/子程序互相调用

面向对象:构件是对象,对象是通过函数或过程的调用交互的。

层次结构:构件组成是一个层次结构,连接件通过协议来定义,每层为上一层提供服务,使用下一层的服务,只能见到自己邻接的层,修改某一层,最多影响其相邻的两层(通常只能影响上层)。

Bean--Mapper--Service

3、独立架构风格

构件之间是相互独立的,通过某个事件触发、异步的方式执行,代表风格有进程通信、事件驱动系统(隐式调用)

进程通信:构件是进程,连接件是消息传递。构件是独立的占有独立的内存与存储空间。消息传递的方式是点对点、异步或同步方式,以及远程过程(方法)调用。

事件驱动系统(隐式调用):构件的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。

4、虚拟机风格

自定义了一套规则供使用者使用,使用者基于这个规则开发构件,能够跨平台适配,代表风格有解释器、基于规则的系统,JVM

解释器:具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,缺点是执行效率低。

基于规则的系统:包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS(决策支持)中。

5、仓库风格

以数据为中心,所有的操作都是围绕建立的数据中心进行,代表的风格有数据库系统、超文本系统、黑板系统。

数据库系统:常规数据库。

黑板系统:当成一个黑板,在黑板上展示数据信息

超文本系统:以网状链接方式相互连接。

6、闭环控制

软件和硬件之间表示为一个反馈循环,比如空调,会根据房间温度的反馈去自动调节温度

7、C2风格

按照规则通过连接件绑定在一起。

构件和连接件都有一个顶部和底部,构件的顶部连接到连接件的底部,构件的底部连接到连接件的顶部,构件与构件之间不允许直接连接

你可能感兴趣的:(架构)