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

news2024/11/17 0:56:06

文章目录

  • 1. DSSA的定义
    • 1.1 概述
    • 1.2 DSSA 的必备特征如下
  • 2. DSSA的基本活动
    • 2.1 领域分析
    • 2.2 领域设计
    • 2.3 领域实现
  • 3. 参与DSSA的人员
    • 3.1 领域专家
    • 3.2 领域分析人员
    • 3.3 领域设计人员
    • 3.4 领域实现人员
  • 4. DSSA的建立过程
    • 4.1 定义领域范围
    • 4.2 定义领域特定的元素
    • 4.3 定义领域特定的设计和实现需求约束
    • 4.4 定义领域模型和体系结构
    • 4.5 产生、搜集可重用的产品单元

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增加构件,使它可以被用来产生问题域中的新应用。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中,数据是通过很多计算机或者通信设备相互转发,才能够到达目的地,所以在这个转发的过程中,如果通信包…

安静:内向性格的竞争力 - 三余书屋 3ysw.net

精读文稿 这期我们介绍的这本书叫做《安静》,副标题是《内向性格的竞争力》。本书共有267页,我会用大约25分钟的时间为你讲述书中的精髓。内向性格具备什么样的竞争力?内向性格的人在人际交往和日常生活中似乎总是吃亏,因为他们不…

c语言知识点整理------基础c语言框架,数据类型,变量常量,注释

前言 本文不涉及讲解原理,用简洁明了的风格,去整理方便查阅的知识点。 (适合有编程基础,或者需要作为笔记的人群使用) 程序基本框架 结果会输出hello world。 程序的执行 c语言属于编译型语言。 代码执行分为五个…

python学习13:python中的字符串格式化

python中的字符串格式化另外一种方式 我们前面是使用的%d,%f,%s占位符来实现字符串的格式化的;这次我们通过f"{}"来快速实现格式化,代码示例如下:

计算机网络(二)物理层

物理层 一、通信基础1.奈氏准则、香农定理2.编码与调制3.电路交换、报文交换、分组交换 二、 传输介质、设备1.导向性传输介质:1.1双绞线1.2 同轴电缆1.3光纤 2.非导向性传输介质: 一、通信基础 信道带宽:信道能通过的最高频率和最低频率之差…

管理阿里云服务器ECS -- 网站选型和搭建

小云:我已经学会了如何登录云服务器ECS了,但是要如何搭建网站呢? 老王:目前有很多的个人网站系统软件,其中 WordPress 是使用非常广泛的一款,而且也可以把 WordPress 当作一个内容管理系统(CMS…

739.每日温度

class Solution:def dailyTemperatures(self, temperatures: List[int]) -> List[int]:n len(temperatures)#从小到达&#xff0c;存放下标 把-1当作栈顶&#xff0c;0当作栈底index_stack [0]res [0] * nfor i in range(1,n):if temperatures[i] < temperatures[ind…

MSTP-3 8K/4K多业务综合光传输平台

MSTP-3作为全新的多业务综合光传输平台&#xff0c;是目前市场上少有的非插卡式、集中式最大32路4K多业务综合光传输产品&#xff0c;不但实现了自主知识产权和国产化替代&#xff0c;还填补了国内多通道8K/16K远距离光传输产品空白。 ⚫ 单套设备即可实现集中式多业务远距离光…

深入解析《企业级数据架构》:HDFS、Yarn、Hive、HBase与Spark的核心应用

写在前面 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向OLAP场景&#xff0c;即数据仓库、BI应用等。 大数据技术的发展并不是偶然的&#xff0c;它的背后是对于成本的考量。集中式数据库或者基于MPP架构的分布数据库往往采用的都是性能稳定但价格较为昂贵的小…

2024年3月28日蚂蚁新村今日答案:人间能得几回闻和冰蚕吐凤雾绡空哪句诗描写的云锦之美?

蚂蚁新村是一个虚拟社区。在这个虚拟社区中&#xff0c;用户可以参与各种活动&#xff0c;比如生产能量豆、做慈善捐赠等。同时&#xff0c;蚂蚁新村也提供了一些知识问答环节&#xff0c;用户在参与的过程中可以增进知识。这些问答内容往往涉及广泛的主题&#xff0c;如文化、…

Java:反射 reflection ( 概念+相关类+使用方法)

文章目录 一、反射(reflection)1.概念优点&#xff1a;缺点 2.反射的相关类1.Class类1.**反射机制的起源**2.获得类相关的方法3.获得类中属性的相关方法4.获得类中注解相关的方法5.获得类中构造器相关的方法6.获得类中方法相关的方法 2.获取Class对象的三种方法&#xff1a;1.使…

基于springboot实现校园管理系统项目【项目源码+论文说明】

基于springboot实现校园管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;校园管理系统当然也不能排除在外。校园管理系统是以实际运用为开发背景&#xff0c…

SQL107 将两个 SELECT 语句结合起来(二)(不用union,在where里用or)

select prod_id,quantity from OrderItems where quantity 100 or prod_id like BNBG% order by prod_id;在where子句里使用or

ABC346 A-G 题解

ABC346 A-G题解 A题目AC Code&#xff1a;时间复杂度 B题目时间复杂度AC Code&#xff1a; C题目时间复杂度AC Code&#xff1a; D题目时间复杂度AC Code&#xff1a; E题目时间复杂度AC Code&#xff1a; F题目时间复杂度AC Code&#xff1a; G题目时间复杂度AC Code&#xff…

Leo赠书活动-21期 《一篇讲明白 Hadoop 生态的三大部件》

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

国产数据库中统计信息自动更新机制

数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况&#xff0c;统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制&#xff0c;以加深了解。 1、数据库统计信息介绍 优化器是数据库…

文生图大模型Stable Diffusion的前世今生!

1、引言 跨模态大模型是指能够在不同感官模态(如视觉、语言、音频等)之间进行信息转换的大规模语言模型。当前图文跨模态大模型主要有&#xff1a; 文生图大模型&#xff1a;如 Stable Diffusion系列、DALL-E系列、Imagen等 图文匹配大模型&#xff1a;如CLIP、Chinese CLIP、…

Chrome 插件 tabs API 解析

Chrome.tabs API 解析 使用 chrome.tabs API 与浏览器的标签页系统进行交互&#xff0c;可以使用此 API 在浏览器中创建、修改和重新排列标签页 Tabs API 不仅提供操作和管理标签页的功能&#xff0c;还可以检测标签页的语言、截取屏幕截图&#xff0c;以及与标签页的内容脚本…

Linux基础命令大全

1、pwd&#xff1a;显示当前路径 cd &#xff1a;切换目录 用法&#xff1a;cd cd ../ 切换到上级目录 cd / 切换到根目录 cd ~ &#xff08;或只有cd &#xff09;切换到当前用户主目录(home底下以用户名命名的文件夹) /root目录mkdir 创建目录 mkdir 目录名 -p 递归创建目录…

短视频账号矩阵系统/开发 -- -- -- 路径积ai算法上线

短视频账号矩阵系统&#xff0c;短视频矩阵系统开发3年技术之路&#xff0c;目前已经在技术竞品出沉淀出来&#xff0c;近期技术迭代的新的功能同步喽&#xff1a; php7.4版本&#xff0c;自研框架&#xff0c;有开发文档&#xff0c;类laravel框架 近期剪辑迭代的技术算法&am…