《系统架构设计师教程(第2版)》第7章-系统架构设计基础知识-05-特定领域软件体系结构(DSSA)

1. DSSA的定义

1.1 概述

  • 概念:
    • Domain Specific Software Architecture
    • 在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构
  • 从功能覆盖的范围的角度定义:
    • 垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统
      • 结果:得到一个通用软件体系结构,作为在该领域中系统的可行解决方案
      • 应用:只能应用于一个成熟的、稳定的领域
        • 缺点:条件难以满足
        • 解决:将领域分隔成较小的范围,容易得到一个一致性解决方案
    • 水平域:定义了在多个系统和多个系统族中功能区城的共有部分

1.2 DSSA 的必备特征如下

  • 一个严格定义的问题域和问题解域
  • 具有普遍性,使其可以用于领域中某个特定应用的开发
  • 对整个领域的构件组织模型的恰当抽象
  • 具备该领域固定的、典型的在开发过程中可重用元素

2. DSSA的基本活动

2.1 领域分析

  • 目标:获得领域模型
  • 领域模型:描述领域中系统之间的共同需求
  • 准备性的活动:
    • 定义领域的边界,从而明确分析的对象
    • 识别信息源
      • 可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等。
    • 分析领域中系统的需求
      • 确定哪些需求是领域中的系统广泛共享的
      • 从而建立领域模型
      • 当领域中存在大量系统时
        • 需要选择它们的一个子集作为样本系统
        • 对样本系统的需求地考察:
          • 哪些系统被所有系统所共享
          • 哪些需求是单个系统所独有的
          • 哪些需求被部分系统共享。

2.2 领域设计

  • 目标:获得DSSA
  • DSSA 的变化性
    • 解决:其解决方案是多选一的 (Alternative)或可选的(Optional)
    • 意义:形成了重用基础设施的规约

2.3 领域实现

  • 目标:依据领域模型和DSSA 开发和组织可重用信息
  • 可重用信息可来源:
    • 现有系统中提取
    • 通过新的开发得到

以上过程是一个反复的、逐渐求精的过程。每个阶段中,都可能返回到以前的步骤

3. 参与DSSA的人员

3.1 领域专家

  • 要求:熟悉该领域中系统的软件设计和实现、硬件限制、未来的用户需求及技术走向等
  • 包括
    • 该领域中系统的有经验的用户
    • 从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师
  • 主要任务:
    • 提供关于领域中系统的需求规约和实现的知识
    • 帮助组织规范的、一致的领域字典
    • 帮助选择样本系统作为领域工程的依据
    • 复审领域模型、 DSSA等领域工程产品

3.2 领域分析人员

  • 要求:由具有知识工程背景的有经验的系统分析员来担任
    • 应熟悉软件重用和领域分析方法
    • 熟悉进行知识获取和知识表示所需的技术、语言和工具
    • 应具有一定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互
    • 应具有较高的进行抽象、关联和类比的能力
    • 应具有较高的与他人交互和合作的能力
  • 主要任务:
    • 控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中
    • 根据现有系统、标准规范等验证领域模型的准确性和一致性,维护领域模型。

3.3 领域设计人员

  • 要求:有经验的软件设计人员来担任
    • 应熟悉软件重用和领域设计方法
    • 熟悉软件设计方法
    • 应有一定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互
  • 主要任务:
    • 控制整个软件设计过程
    • 根据领域模型和现有的系统开发出 DSSA
    • 对 DSSA 的准确性和一致性进行验证
    • 建立领域模型和 DSSA 之间的联系

3.4 领域实现人员

  • 要求:由有经验的程序设计人员来担任
    • 应熟悉软件重用、领域实现及软件再工程技术
    • 熟悉程序设计
    • 具有一定的该领域的经验
  • 主要任务:
    • 开发或重用可重用构件
    • 对可重用构件进行验证
    • 建立 DSSA与可重用构件间的联系

4. DSSA的建立过程

  • 概述:
    • DSSA的建立过程分为5个阶段
    • 每个阶段包括:
      • 一组需要回答的问题
      • 一组需要的输入
      • 一组将产生的输出和验证标准
  • 本过程是:并发的 (Concurrent)、 递归的 (Recursive)、 反复的 (Iterative)
  • DSSA 的一个三层次系统模型:
    在这里插入图片描述

4.1 定义领域范围

  • 重点:确定什么在感兴趣的领域中,以及本过程到何时结束。
  • 主要输出:领域中的应用需要满足一系列用户的需求

4.2 定义领域特定的元素

  • 目标:编译领域字典、领域术语的同义词词典
  • 行为:
    • 对之前产生的高层圈块细化

      吐槽:“圈块”是什么鬼,没听说过,在下浅薄了。盲猜可能是指高层的模块、组件或领域概念

    • 识别领域中应用间的共性和差异性

4.3 定义领域特定的设计和实现需求约束

  • 目标:描述解空间中有差别的特性
  • 行为:
    • 识别出约束
    • 记录约束对设计和实现决定造成的后果
    • 记录对处理这些问题时产生的所有问题的讨论

4.4 定义领域模型和体系结构

  • 目标:产生一般的体系结构,并说明构成它们的模块或构件的语法和语义

4.5 产生、搜集可重用的产品单元

  • 目标:为 DSSA增加构件,使它可以被用来产生问题域中的新应用。

在这里插入图片描述

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值