软件架构风格

软件架构风格是描述特定软件系统组织方式惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映了众多系统共有的结构和语义,并指导如何将各个模块和子系统有效的组织成一个完整的系统
架构风格定义了一个系统家族,即一个体系结构定义了一个词汇表一组约束
【词汇表】词汇表中包含一些构件和连接件类型
【约束】约束指出系统是如何将构件和连接件组合起来的
五大架构风格
  • 数据流风格【Data Flow】

    把数据的处理分步骤进行,前一步的处理结果是后异步的输入内容【数据驱动

    • 批处理序列
      • 大量整体数据、无需用户交互
    • 管道-过滤器
      • 流式数据、弱用户交互
  • 调用/返回风格【Call/Return】

    主函数调用子函数,子函数返回执行结果

    • 主程序/子程序
      • 面向过程
    • 面向对象
      • 对象的方法调用
    • 分层
      • 层与层之间的方法调用
  • 独立构件风格【Independent Components】

    构件之间不直接交互,松耦合

    image-20241007161325693

  • 虚拟机风格【Virtual Machine】
    子分类 优点 缺点 特点 适合领域
    解释器 灵活应对自定义场景 复杂的高 需要自定义规则的场合
    规则为中心 灵活应对自定义场景 复杂度高 在解释器的基础上增加了经验规则 专家系统
    • 基于规则的系统构成

      一般用在人工智能领域和DSS(决策支持系统)中

      • 规则集
      • 规则解释器
      • 规则/数据选择
      • 工作内存
  • 以数据为中心【Data-centered】【仓库系统】
    • 数据库系统
    • 黑板系统
    • 超文本系统
      子分类 优点 缺点 特点 实例
      数据库系统 以数据为中心
      黑板系统 可更改性和可维护性;可重用的知识源;容错性和健壮性 测试困难;不能保证有好的解决方案;难以建立好的控制策略;低效;开发困难;缺少并行机制 在以数据为中心的基础上,使用中心数据触发业务逻辑部件 语音识别、模式识别、图像处理、知识推理