软件架构风格
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映了众多系统共有的结构和语义,并指导如何将各个模块和子系统有效的组织成一个完整的系统
架构风格定义了一个系统家族,即一个体系结构定义了一个词汇表和一组约束
【词汇表】词汇表中包含一些构件和连接件类型
【约束】约束指出系统是如何将构件和连接件组合起来的
五大架构风格
-
数据流风格【Data Flow】
把数据的处理分步骤进行,前一步的处理结果是后异步的输入内容【数据驱动】
-
批处理序列
- 大量整体数据、无需用户交互
-
管道-过滤器
- 流式数据、弱用户交互
-
-
调用/返回风格【Call/Return】
主函数调用子函数,子函数返回执行结果
-
主程序/子程序
- 面向过程
-
面向对象
- 对象的方法调用
-
分层
- 层与层之间的方法调用
-
-
独立构件风格【Independent Components】
构件之间不直接交互,松耦合
-
虚拟机风格【Virtual Machine】
子分类 优点 缺点 特点 适合领域 解释器 灵活应对自定义场景 复杂的高 需要自定义规则的场合 规则为中心 灵活应对自定义场景 复杂度高 在解释器的基础上增加了经验规则 专家系统 -
基于规则的系统构成
一般用在人工智能领域和DSS(决策支持系统)中
- 规则集
- 规则解释器
- 规则/数据选择
- 工作内存
-
-
以数据为中心【Data-centered】【仓库系统】
-
数据库系统
-
黑板系统
-
超文本系统
子分类 优点 缺点 特点 实例 数据库系统 以数据为中心 黑板系统 可更改性和可维护性;可重用的知识源;容错性和健壮性 测试困难;不能保证有好的解决方案;难以建立好的控制策略;低效;开发困难;缺少并行机制 在以数据为中心的基础上,使用中心数据触发业务逻辑部件 语音识别、模式识别、图像处理、知识推理
-