系统架构设计师教程(八)系统质量属性与架构评估

news2024/12/23 13:35:06

系统质量属性与架构评估

  • 8.1 软件系统质量属性
    • 8.1.1 质量属性概念
      • 开发期质量属性
      • 运行期质量属性
    • 8.1.2 面向架构评估的质量属性
    • 8.1.3 质量属性场景描述
  • 8.2 系统架构评估
    • 8.2.1 系统架构评估中的重要概念
    • 8.2.2 系统架构评估方法
      • SAAM 方法
      • ATAM方法
      • CBAM 方法
      • 其他方法
  • 8.3 ATAM方法架构评估实践
    • 8.3.1 阶段1——演示 (Presentation)
    • 8.3.2 阶段2——调查和分析
    • 8.3.3 阶段3——测试
    • 8.3.4 阶段4——报告ATAM

8.1 软件系统质量属性

8.1.1 质量属性概念

软件系统质量是软件满足需求和标准的能力。根据GB/T 16260.1定义,软件质量影响因素可划分为六个维度特性:功能性、可靠性、易用性、效率、维护性和可移植性。软件质量属性是描述系统满足利益相关者需求的可测量或可测试的属性,分为开发期和运行期质量属性。

开发期质量属性

开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含6个方面。

  1. 易理解性:指设计被开发人员理解的难易程度。
  2. 可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。
  3. 可重用性:指重用软件系统或某一部分的难易程度。
  4. 可测试性:对软件测试以证明其满足需求规范的难易程度。
  5. 可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的
    难易程度。
  6. 可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。

运行期质量属性

运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含7个方面。

  1. 性能:性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
  2. 安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
  3. 可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通过增加服务器来提高能力。
  4. 互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。
  5. 可靠性:软件系统在一定的时间内持续无故障运行的能力。
  6. 可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误,恶意攻击,高负载等问题的影响。
  7. 鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发生了故障等)下仍能够正常运行的能力,也称健壮性或容错性。

8.1.2 面向架构评估的质量属性

软件系统架构评估主要关注质量属性。主要包括以下几种:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。

  • 性能关注系统的响应能力;
  • 可靠性关注系统在错误面前的维持功能能力;
  • 可用性关注系统能够正常运行的时间比例;
  • 安全性关注系统阻止非授权用户使用的能力;
  • 可修改性关注系统能够快速进行变更的能力;
  • 功能性关注系统能完成期望工作的能力;
  • 可变性关注架构的变更能力;
  • 互操作性关注软件与其他系统或环境的相互作用能力。

8.1.3 质量属性场景描述

为了精确描述软件系统的质量属性,通常采用质量属性场景,它是利益相关者与系统交互的简短陈述,由刺激源、刺激、环境、制品、响应和响应度量六部分组成。质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性等六类质量属性。

  1. 可用性
    在这里插入图片描述
    在这里插入图片描述
  2. 可修改性

在这里插入图片描述
3. 性能
在这里插入图片描述

  1. 可测试性
    在这里插入图片描述

  2. 易用性
    在这里插入图片描述

  3. 安全性
    在这里插入图片描述

8.2 系统架构评估

系统架构评估是在分析、评估架构的基础上,对架构策略进行决策。它利用数学或逻辑分析技术,提供关于系统一致性、正确性、质量属性、规划结果等方面的描述性、预测性和指令性分析结果。

系统架构评估方法通常分为三类:

  • 基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。基于调查问卷或检查表的方式依赖于系统相关人员的经验和知识,但主观性较强;
  • 基于场景的方式通过分析架构对场景的支持程度来评估质量需求的满足程度;
  • 基于度量的方式则建立在软件架构度量的基础上,通过映射原则分析推导出系统的质量属性。

8.2.1 系统架构评估中的重要概念

  • 敏感点和权衡点是关键的架构决策,敏感点是一个或多个构件的特性,而权衡点是影响多个质量属性的特性。研究这些点可以帮助设计人员或分析员明确在实现质量目标时应注意什么。
  • 系统的架构涉及多个利益相关者,他们对架构施加影响以保证自己的目标能够实现。
  • 在进行架构评估时,需要通过场景来精确地得出具体的质量目标,场景是从风险承担者的角度对与系统的交互的简短描述,一般包括刺激、环境和响应三方面。

8.2.2 系统架构评估方法

SAAM 方法

SAAM是卡耐基梅隆大学软件工程研究所提出的一种基于场景的架构分析方法,用于评估架构的质量属性和风险。它主要通过场景技术,将质量属性具体化为场景进行分析。SAAM的目标是验证架构假设和原则,协调参与者共识,用于架构的最后版本但早于详细设计。其主要输入为问题描述、需求声明和架构描述。SAAM分析评估架构的过程包括场景开发、架构描述、单个场景评估、场景交互和总体评估五个步骤。它已被应用到众多系统中,这些系统包括空中交通管制、嵌入式音频系统等。
在这里插入图片描述

ATAM方法

在这里插入图片描述

CBAM 方法

  1. 整理场景:整理ATAM中获取的场景,并根据商业目标确定场景的优先级,选取优先级最高的1/3场景进行分析。
  2. 对场景进行求精:为每个场景获取最坏情况、当前情况、期望情况和最好情况下的质量属性响应级别。
  3. 确定场景的优先级:项目干系人对场景进行投票,根据每个场景的“所期望的”响应值进行投票,生成一个分值(场景的权值)。
  4. 分配效用:确定场景响应级别(最坏情况、当前情况、期望情况和最好情况)的效用表。
  5. 确定架构策略涉及的质量属性及响应级别,并形成“策略一场景一响应级别”的对应关系。
  6. 使用内插法确定“期望的”质量属性响应级别的效用。根据效用表和对应关系,确定架构策略及其对应场景的效用表。
  7. 计算各架构策略的总收益。根据场景的权值和架构策略的效用表,计算出架构策略的总收益得分。
  8. 根据成本限制下的ROI选择架构策略。根据开发经验估算架构策略的成本,结合收益计算出架构策略的ROI,按照ROI排序来确定优先级。

其他方法

  • SAEM方法是一种基于外部和内部质量属性的软件架构评估模型,包括对质量属性进行规约建模、为属性创建度量准则和评估质量属性等流程。它旨在为软件架构的质量评估创建一个基础框架,并已在相关系统领域得到应用。
  • SAABNet方法是一种基于人工智能技术的软件架构定性评估方法。它使用贝叶斯信念网络(BBN)来表示和使用开发过程中的定性知识,并允许不确定和不完整的推理。该方法可以帮助诊断软件架构问题、分析修改对质量属性的影响、预测架构的质量属性,并辅助架构设计决策。SAABNet将架构中的相关变量进行概率依赖建模,并通过测试验证其输出的正确性。该方法主要用于定性评估,而定量规约不是必要的。
  • SACMM(Software Architecture Change and Cost Measurement)方法是用于度量软件架构修改的一种结构化描述方式。当软件进行修改时,通常需要考虑软件架构是否也需要相应的修改。架构修改涉及到多个组件之间连接件的修改,而度量架构的修改可以提供有关软件修改的描述和预测修改的成本信息。
  • SASAM方法是一种静态评估软件架构的方法,通过映射和比较预期架构和实际架构来评估其一致性和完备性。它可以帮助分析产品线可能性、重用性、组件质量等10个评估目的,指导架构开发和演化过程。
  • ALRRA方法是一种软件架构可靠性风险评估方法,通过动态复杂度准则和动态耦合度准则来评估组件和连接件的复杂性。该方法结合失效模式和影响分析(FMEA)来定义故障引起的严重性因素,然后将复杂性和严重性因素组合起来定义组件和连接件的启发式风险因素。最后,利用风险分析模型和算法对架构层次的风险因素进行评估和分析。 ALRRA方法的步骤包括使用架构描述语言(ADL)建模软件架构、进行复杂性分析、使用FMEA和失效严重性分析、为组件和连接件定义可靠性风险因素、构造架构的CDG,并执行架构的风险评估和分析。
  • AHP方法是软件架构评估中的一种量化方式,它是一种简便、灵活且实用的多准则决策方法。AHP方法通过将复杂问题划分为有序层次,并进行两两对比来定量描述各元素的重要性。该方法可以结合定性分析和定量计算,处理各种决策因素,并对设计方案进行整体排名。
  • COSMIC+UML方法是一种用于评估软件架构可维护性的方法,它基于面向对象系统源代码的可维护性度量准则。该方法将软件架构描述方式与统一的软件度量COSMIC方法相结合,针对使用UML组件图描述的软件架构进行度量和评估。

8.3 ATAM方法架构评估实践

在这里插入图片描述

8.3.1 阶段1——演示 (Presentation)

ATAM(Architecture Tradeoff Analysis Method)是一种用于评估软件体系结构的方法,具有以下三个主要步骤:

  1. 标识体系结构步骤:
    在这一步骤中,评估负责人向相关参与者介绍ATAM评估过程,并说明使用的分析技术和预期结果。领导者解决小组成员的疑虑和问题。

  2. 介绍业务驱动因素:
    这一步骤着重于系统的业务视角,包括系统功能、利益相关方、业务目标和其他限制。通过定义系统的主要功能和涉及的利益相关方来划分阶段。

  3. 介绍要评估的体系结构:
    架构团队描述要评估的体系结构,包括体系结构、时间可用性和质量要求。关键问题包括技术约束、与其他系统的交互以及实施的架构方法。

通过ATAM方法,可以对软件体系结构进行综合评估,帮助决策者了解体系结构的优势和劣势,并做出相应的权衡。

8.3.2 阶段2——调查和分析

  1. 确定架构方法
    涉及了两种体系结构方法的讨论:胡佛的架构和“银行”活动架构。胡佛的架构具有高度的可修改性,组件独立且可重用;而“银行”活动架构存在一些缺陷,如可修改性较差和组件的相互依赖性较高。

  2. 生成质量属性效用树
    介绍了生成质量属性效用树的重要性,该步骤将所有利益相关方和评估人员的注意力集中在关系到体系结构成功的不同方面,以便确定系统最重要的质量属性目标,并建立情景优先列表,从而缩小风险和架构选择范围。

  3. 分析体系结构方法
    评估阶段的最后一步,称为"分析体系结构方法"。在这一步中,人们对前一步生成的效用树进行详细调查和分析,找出处理相应质量属性的架构方法,并确定每种架构方法的风险、非风险、敏感点和权衡点。首先,从效用树中提取高优先级场景,例如性能和可靠性。然后,根据这些场景的优先级来确定选择哪个质量属性更重要。例如,在一个场景中,处理用户错误的可靠性可能比操作速度的性能更重要。然后,将问题分为四个主要阶段:调查架构方法、创建分析问题、分析问题的答案以及找出风险、非风险、敏感点和权衡点。通过这一步的分析,可以更好地理解不同的架构方法,找到适合处理特定质量属性的方法,并识别潜在的风险和权衡点。

8.3.3 阶段3——测试

  1. 分析架构方法
    利益相关者通过头脑风暴活动提出各种用例、增长和探索性场景,并进行投票选出最重要的场景。这些场景与之前步骤中得出的优先方案进行比较,并加以整合。这一过程有助于更全面地考虑各种利益相关者的需求和优先级,为架构评估提供准确的参考。

8.3.4 阶段4——报告ATAM

ATAM评估的最后阶段是将评估期间收集到的所有信息呈现给利益相关者。主要发现包括效用树、场景、问题分析、风险和非风险、以及确定的架构方法。这些内容在前八个步骤中已经逐一介绍,通过整个ATAM评估过程,可以全面考虑各种利益相关者的需求和优先级,对架构进行深入的评估和改进。

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

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

相关文章

C++继承与派生——(2)派生类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 缺乏明确的目标,一生将庸庸…

内网渗透:拿下一台内网主机后如何继续攻击拿下域控主机

目录 #### 域的定义:将网络中的多台计算机在逻辑上组织到一起,进行集中管理。 域控攻击目标 1. 判断当前主机是否在域中 windows系统的三种登录方式 NTLM协议 从上篇文章拿下10.0.1.4这台服务器后,发展对内网进行攻击,打穿这…

[SWPUCTF 2021 新生赛]easy_md5

打开环境 这儿考弱比较,之前的WP里写过绕过方法,这儿我们直接数组绕过 构造GET传参name[]123 , POST传参password[]456得到flag

在区块链中看CHAT的独特见解

问CHAT:谈谈对区块链以及区块链金融的理解 CHAT回复:区块链是一种去中心化的分布式数据库技术,这种技术通过加密算法,使数据在网络中传输和存储的过程变得更加安全可靠。区块链的出现引领了存储、交易等形式的革命,改变…

SSH无密登陆配置

1 SSH介绍 ssh命令用于远程登录到其他计算机,实现安全的远程管理。 基本语法: ssh 域名/IP地址 示例: (1)从hadoop100服务器上远程连接hadoop101服务器 [hadoophadoop100 ~]$ ssh hadoop101 如果出现如下内容 Ar…

【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来

换热站作为供热系统不可或缺的一部分,其能源消耗对城市环保至关重要。在双碳目标下,供热企业可通过搭建智慧供热系统,实现供热方式的低碳、高效、智能化,从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术,…

Mac如何搭建本地服务器

苹果电脑Mac OS X系统自带了Apache服务器 打开终端 //开启apache:sudo apachectl start //重启apache:sudo apachectl restart //关闭apache:sudo apachectl stop在浏览器输入127.0.10.1 , 如果页面出现 it works,则…

数据可视化分析大屏,大数据统计UI页面源文件(信息分析平台免费PS资料)

数据可视化可以帮助数据分析者更好地理解数据,发现数据中的规律和趋势。通过图表和图形等可视化工具,数据分析者可以更快速地发现数据中的关系,比如相关性、趋势、异常值等。对于普通用户来说,理解复杂的数据可能会很困难。通过数…

11 Vue3中v-bind绑定动态样式和动态样式类

概述 v-bind指令可以说是Vue3中最常用的指令之一,使用v-bind,我们几乎能够给任何实现动态的绑定比值。 这里,我们主要演示以下,通过v-bind动态绑定CSS样式。 基本用法 我们创建src/components/Demo11.vue,在这个组…

Android App程序应用未校验签名证书——————《风险等级高》

目录 应用签名未校验风险1、检测目的2、风险等级3、检测依据4、风险描述5、检测步骤6、结果描述7、解决方案7.1、Android 检验 APK 是否签名的代码7.2、检验APK签名 8、结尾 应用签名未校验风险 1、检测目的 检测App程序启动时是否校验签名证书。 防止App的盗版率。未进行签…

vscode打开多个标签页配置

前言 如果其中一个标签的文件没有修改,再打开一个文件时之前的打开的标签页就会被替换掉。 在工作中使用很不方便。 解决办法 文件-首选项--设置 下图取消勾选 取消之后如下 再去打开标签就会一致显示了

14:00面试,14:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

C++ Qt开发:StringListModel字符串列表映射组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStringListModel字符串映射组件的常用方法及…

【QT Visual Studio环境配置】error MSB8020: 无法找到 v141/v142 的生成工具(完整版)

首先要了解V**平台工具集根据你安装的Visual Studio版本不同而有所区别,知道这个就容易解决问题了,确定你安装的那个版本,需要使用哪个工具集。 v143–>VS2022v142–>VS2019v141–>VS2017v140–>VS2015v120–>VS2013 一、解决…

【网络编程】poll和epoll服务器的设计

文章目录 前言一、poll二、epoll 1.epoll初识2.epoll服务器的设计3.epoll的工作原理4.epoll的优点5.epoll的工作模式总结 前言 poll和select一样,也是一种linux中的多路转接的方案。而poll解决了select的两个问题: 1.select的文件描述符有上限的问题。…

05鸿蒙APP开发之加载网络列表

目录 1、概述2、http请求封装2.1、为什么要封装Http请求?2.2、封装后的网络请求 3、发起请求并渲染列表数据第一步:准备一个目前能用的,测试API地址,如下:第二步:创建对应的实体对象第三步:调用…

10 Vue3中v-html指令的用法

概述 v-html主要是用来渲染富文本内容,比如评论信息,新闻信息,文章信息等。 v-html是一个特别不安全的指令,因为它会将文本以HTML的显示进行渲染,一旦文本里面包含一些恶意的js代码,可能会导致整个网页发…

对大学生创新创业某赛事目前存在的烂尾楼现象的一些研究的分享(1)

经过对”某某网”大学生创新创业大赛国赛第五届-第八届部分金奖项目的研究,进行较为充分的信息溯源、穿透调查,我发现不少项目存在赛事材料画大饼,严重不切合实际,参赛人员并非真正创新创业,赛后迅速销声匿迹、烂尾切割…

2023年全球架构师峰会(ArchSummit北京站2023)-核心PPT资料下载

一、峰会简介 ArchSummit聚焦业界强大的技术成果,秉承“实践第一、案例为主”的原则,展示先进技术在行业中的典型实践,以及技术在企业转型、发展中的推动作用。旨在帮助技术管理者、CTO、架构师做好技术选型、技术团队组建与管理&#xff0c…

机器学习——分类评价指标

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、评价指标 对于模型的评价往往会使用损失函数和评价指标,两者的本质是一致的。一般情况下,损失函数应用于训练过程,而评价指标应用于测试过…