构件:程序、类、或者中间件
软件体系结构设计核心目标:重复的体系结构模式(软件复用/重用)
软件体系结构(架构)风格:描述某一特定应用领域中系统组织方式的惯用模式。
数据流体系风格
批处理体系风格: 每个处理步骤都是独立的程序,每一步必须在前一步结束后才能开始,且数据必须是完整,以整体方式传递
管道过滤器: 把系统分成几个序列的处理步骤,每个步骤之间通过数据流连接,一个步骤的输出是另外一个步骤的输入,每个步骤都有输入和输出。
调用/返回体系结构风格
一种分而治之的策略,主要思想是将一个复杂的大系统分解为若干个子系统,降低复杂度,增加可修改性。
主程序/子程序风格: 采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。
面向对象体系结构风格: 构件是对象,即抽象数据类型的示例
层次型体系结构风格: 每一层为上层服务,并作为下层的接口,仅相邻层间有接口。
客户端/服务器体系结构风格
二层C/S模式: 数据库服务器(后台:负责数据管理)、客户应用程序(前台:完成与用户交互任务)和网络
三层C/S模式: 瘦客户端模式。应用功能分为表示层、功能层和数据层
表示层:用户接口与应用逻辑层的交互,使用图形用户界面
功能层:实现具体的业务逻辑处理
数据层:数据库管理系统
浏览器/服务器风格(B/S)
B/S风格: 三层应用结构的实现方式,浏览器,web服务器,数据库服务器
以数据为中心的体系结构风格
仓库体系结构风格:存储和维护数据的中心场所,由中央数据结构(说明当前数据状态)和一组独立构件(对中央数据进行操作)组成。
黑板体系结构风格: 是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架。可通过各种黑板、知识源和控制模块的构件来设计。应用于信号处理领域、如语音识别和模式识别
虚拟机体系结构风格
虚拟机体系结构风格基本思想是认为构建一个运行环境,可以解析与运行自定义的一些语言,增加架构的灵活性
解释器体系结构风格: 通常被用来建立一种虚拟机以弥合程序语义与硬件语义之间的差异,缺点是执行效率较低,典型例子是专家系统
规则系统体系结构风格: 包括知识库、规则解释器、规则/数据选择器及工作内存(程序运行存储区)
独立构件体系结构风格
强调系统中的每个构件都是相对独立的个体,他们之间不直接通信,以降低耦合度,提升灵活度
进程通信体系结构风格: 构件是独立的过程,连接件是消息传递
事件系统体系结构风格;构件不直接调用一个过程,而是触发或广播一个或多个事件
C2风格
C2风格通过连接件连接构件或某个构件组,构件与构件之间无连接。