【系统架构设计师】十二、系统质量属性与架构评估(开发期质量属性|运行期质量属性|面向架构评估的质量属性|质量属性效用树|质量属性场景)

目录

一、软件系统质量属性

1.1 开发期质量属性

1.2 运行期质量属性

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

1.4 质量属性效用树

1.5 质量属性场景

1.5.1 可用性质量属性场景描述       

1.5.2 可修改性质量属性场景描述

1.5.3 性能质量属性场景描述

相关推荐

历年真题练习


        历年真题考情:本章节每年单项选择考8分左右,下午案例、论文也会有涉及,在系统架构设计师中本章节绝对是重点中的重点

        主要学习软件系统质量属性、系统架构评估以及 ATAM 方法评估实践等内容。很少涉及超纲题

一、软件系统质量属性

        软件系统质量属性 (Quality Attribute)是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者 (Stakeholders)需求的程度。基于软件系统的生命周期,可以将软件系统的质量属性分为开发期质量属性和运行期质量属性2个部分。

1.1 开发期质量属性

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

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

1.2 运行期质量属性

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

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

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

        为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,
评估人员所关注的是系统的质量属性

        (1)性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量
        设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。

        (2)可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。如MTTF、MTBF、MTTR
        设计策略:心跳、Ping/Echo、冗余、选举

        (3)可用性:是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间
        设计策略:心跳、Ping/Echo、冗余、选举

        (4)安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性
        设计策略:入侵检测、用户认证、用户授权、追踪审计

        (5)可修改性:指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。包含以下4个方面:
                a.可维护性,局部修复使故障对架构的负面影响最小化;
                b.可扩展性,因松散耦合更易实现新特性/功能,不影响架构;
                c.结构重组,不影响主体进行的灵活配置;
                d.可移植性,适用于多样的环境(硬件平台、语言、操作系统等)。
        设计策略:接口-实现分类、抽象、信息隐藏

         (6)功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。

        (7)可变性:指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。

        (8)互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。

1.4 质量属性效用树

        质量属性效用树Utility Tree是一种树状结构,其根节点代表系统的整体质量,而子节点则代表不同的质量属性(如性能、可修改性、可用性、安全性等)。这些质量属性进一步被分解为更具体的场景,每个场景都描述了系统在使用过程中可能遇到的情况或需求。

1.5 质量属性场景

        质量属性场景 (Quality Attribute Scenario) 作为描述质量属性的手段。质量属性场景是一个具体的质量属性需求,是利益相关者与系统的交互的简短陈述。
        质量属性场景是一种面向特定质量属性的需求。它由6部分组成:
        (1)刺激源 (Source):这是某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
        (2)刺 激 (Stimulus):该刺激是当刺激到达系统时需要考虑的条件
        (3)环 境 (Environment):该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或者其他情况。
        (4)制品 (Artifact):某个制品被激励。这可能是整个系统,也可能是系统的一部分。
        (5)响应 (Response):该响应是在激励到达后所采取的行动
        (6)响应度量 (Measurement):当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试。

        质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性等6类质量属性。质量属性描述场景在2024年5月份的时候考到了哦

1.5.1 可用性质量属性场景描述       

可用性质量属性场景描述
场景要素可能的情况
刺激源系统内部、系统外部
刺激疏忽、错误、崩溃、时间
环境正常操作、降级模式
制品系统处理器、通信信道、持久存储器、进程
响应系统应该检测事件、并进行如下一个或多个活动:
将其记录下来通知适当的各方,包括用户和其他系统;根据已定义的规则禁止导致错误或故障的事件源。
在一段预先指定的时间间隔内不可用,其中,时间间隔取决于系统的关键程度在正常或降级模式下运行。
响应度量系统必须可用的时间间隔
可用时间
系统可以在降级模式下运行的时间间隔
故障修复时间

1.5.2 可修改性质量属性场景描述

可修改性质量属性场景描述
场景要素可能的情况
刺激源最终用户、开发人员、系统管理员
刺激希望增加、删除、修改、改变功能、质量属性、容量等
环境系统设计时、编译时、构建时、运行时
制品系统用户界面、平台、环境或与目标系统交互的系统
响应查找架构中需要修改的位置,进行修改且不会影响其他功能,对所做的修改进行测试,部
署所做的修改
响应度量根据所影响元素的数量度量的成本、努力、资金;该修改对其他功能或质量属性所造成影
响的程度

1.5.3 性能质量属性场景描述

性能质量属性场景描述
场景要素可能的情况
刺激源用户请求,其他系统触发等
刺激定期事件到达、随机事件到达、偶然事件到达
环境正常模式、超载 (Overload)模式
制品系统
响应处理刺激、改变服务级别
响应度量等待时间、期限、吞吐量、抖动、缺失率、数据丢失率

还有可测试性、易用性和安全性质量属性场景描述没有提供,可以自己参考着写一下。

相关推荐

【系统架构设计师】十一、系统架构设计(层次架构风格|MVC|面向服务的架构风格|ESB)-CSDN博客文章浏览阅读829次,点赞16次,收藏15次。三层C/S架构:将处理功能独立出来,表示层和数据层都变得简单。表示层在客户机上,功能层在应用服务器上,数据层在数据库服务器上。既然将两层C/S架构中的数据从服务器中独立出来了。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。企业服务总线ESB:简单来说是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB 做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通。https://shuaici.blog.csdn.net/article/details/140383777

【系统架构设计师】十一、系统架构设计(基于体系结构的软件设计|特定应用领域软件架构)-CSDN博客文章浏览阅读525次,点赞9次,收藏7次。基于体系结构(架构)的软件设计(ABSD)方法是体系结构驱动的,即指构成体系结构的商业、质量和功能需求的组合驱动的。在基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。DSSA 就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。DSSA 就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。https://shuaici.blog.csdn.net/article/details/140434104

历年真题练习

        1.某公司欲开发一个网上商城系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景。其中"系统主站断电后,能够在2分钟内自动切换到备用站点,并恢复正常运行"主要与(1)质量属性相关通常可采用(2)架构策略实现该属性;"在并发用户数不超过1000人时,用户的交易请求应该在0.5s内完成'主要与(3)质量属性相关,通常可采用(4)架构策略实现该属性;"系统应该能够抵挡恶意用户的入侵行为,并进行报警和记录"主要与(5)质量属性相关,通常可采用(6)架构策略实现该属性

        (1):A.性能               B.可用性         C.易用性        D.可修改性
        (2):A.主动冗余        B.信息隐藏     C.抽象接口     D.记录/回放
        (3):A.性能               B.可用性         C.易用性        D.可修改性
        (4):A.操作串行化     B.资源调度     C.心跳            D.内置监控器
        (5):A.可用性            B.安全性         C.可测试性    D.可修改性
        (6):A.内置监控器     B.记录/回放    C.追踪审计     D.维护现有接口

 

人工分割线-答案

            1.B、A
                A、B
                B、C
        
 

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

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

相关文章

【vue】输入框和文本域切换

输入框的样子 文本域的样子 当输入框出现滚动条的时候&#xff0c;就自动切换成文本域&#xff1b;当文本域到1行并且宽度小于输入框宽度时切换成输入框 <div class"left_box_inpt"><divclass"right_box_inpt":class"{notclickable: inputd…

OpenResty使用Lua笔记

文章目录 一、基础1、常用2、使用局部变量3、模块化 二、性能提升1、使用fft调用shell2、不要在循环中拼接字符串3、不要频繁修改table4、不要在table中用nil5、做好异常处理6、ngx.var 的性能提升 三、拓展1、加载字符串为动态方法 一、基础 1、常用 OpenResty 中文官网&…

Open3D 最小二乘法拟合点云平面

目录 一、概述 1.1最小二乘法原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2matplotlib可视化 3.3平面拟合方程 前期试读&#xff0c;后续会将博客加入该专栏&#xff0c;欢迎订阅 Open3D点云算法与点云深度学习…

【学术会议征稿】第四届人工智能、虚拟现实与可视化国际学术会议(AIVRV 2024)

第四届人工智能、虚拟现实与可视化国际学术会议&#xff08;AIVRV 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Virtual Reality and Visualization 第四届人工智能、虚拟现实与可视化国际学术会议&#xff08;AIVRV 2024&#xff09;将…

用python写一个爬虫,爬取google中关于蛇的照片

为了爬取Google中关于蛇的照片&#xff0c;我们可以利用Python中的第三方库进行网页解析和HTTP请求。请注意&#xff0c;这种爬取行为可能违反Google的使用条款&#xff0c;因此建议在合法和允许的情况下使用。以下是一个基本的Python爬虫示例&#xff0c;使用Requests库发送HT…

git 指令速查

1. 创建命令 Create Git 指令命令说明git clone 克隆远程仓库git init初始化本地 git 仓库(即创建新的本地仓库)2. 本地更改 Local Changes Git 指令命令说明git status查看当前分支状态git diff查看已跟踪文件的变更git add 将指定的文件添加到暂存区git add .将所有有变更的…

简约唯美的404HTML源码

源码介绍 简约唯美的404HTML源码,很适合做网站错误页,将下面的源码放到一个空白的html里面,然后上传到服务器里面即可使用 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8"><title>404 Error Example<…

第二证券:市场估值依然处于较低区域 适合中长期布局

A股中报成绩预告显示相比2024Q1&#xff0c;2024Q2企业产品销量或订单已有回暖&#xff0c;但价格反转暂未大面积到来&#xff0c;“量增价平、部分板块以价换量”是2024H1 A股成绩预告较显着的量价特征&#xff0c;这与微观库存周期有待回暖相匹配。此外中游部分环节出现不同程…

Vue 3中使用 Lottie 动画

一、Lottie动画简介 Lottie是由Airbnb开源的面向Android、iOS、Web和Windows的动画库,开发者可以使用它在Web、iOS、Android等平台上实现高性能的体验丰富的矢量动画。 在早期的前端开发中,Flash是网页动画之王,不过它的规范约束随意,造成很多时设计出来的产品都无法符合…

新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff1b;支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#xff0…

富格林:直面暗箱减少出金亏损

富格林悉知&#xff0c;在交易的过程中&#xff0c;投资者就算做好了十足的把握&#xff0c;也难免会出现出金亏损的情况。在这里建议新手投资者&#xff0c;在准备投资交易的时候&#xff0c;一定要做好充分的准备工作&#xff0c;了解黄金投资哪些暗箱陷阱&#xff0c;同时学…

【Linux】进程信号 --- 信号产生

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

【转型Web3开发第二课】Dapp开发入门基础 | 02 | MetaMask配置网络

本文首发于公众号&#xff1a;Keegan小钢 前言 完成了《转型 Web3 开发第一课》之后&#xff0c;得到了不少读者的认可&#xff0c;很多都在问什么时候开始下一课&#xff0c;近期终于抽出了时间开始搞起这第二课。 这第二课的主题为「Dapp开发入门基础」&#xff0c;即想要转…

浅谈Visual Studio 2022

Visual Studio 2022&#xff08;VS2022&#xff09;提供了众多强大的功能和改进&#xff0c;旨在提高开发者的效率和体验。以下是一些关键功能的概述&#xff1a;12 64位支持&#xff1a;VS2022的64位版本不再受内存限制困扰&#xff0c;主devenv.exe进程不再局限于4GB&#xf…

【ffmpeg命令入门】重新编码媒体流、设置码率、设置帧速率

文章目录 前言ffmpeg的描述重新编码媒体流重新编码媒体流的命令ffmpeg支持的媒体流 设置视频码率视频码率是什么设置视频的码率 设置文件帧数率帧数率是什么ffmpeg设置帧数率 总结 前言 在数字媒体处理领域&#xff0c;ffmpeg是一款非常强大的工具&#xff0c;它可以用来进行媒…

在线生成privacy-policy和 service-agreement

生成ppsa 网站 下面两个是要收费的 局部功能可用 #1 Privacy Policy Generator - Privacy Policieshttps://termify.io/ 下面这个网站 创建一个是免费的 如果想要privacy-policy和 service-agreement 需要创建两个账户 Termly

Java学习|JSON 处理库:Gson、FastJson、Jackson的比较与使用指南

文章目录 一、Gson简介与使用注意事项1.1 简介1.2 使用注意事项1.3 代码示例序列化反序列化 二、FastJson简介与使用注意事项2.1 简介2.2 使用注意事项2.3 代码示例序列化反序列化 三、Jackson简介与使用注意事项3.1 简介3.2 使用注意事项3.3 代码示例序列化反序列化 四、关联和…

svn不能记住密码,反复弹出GNOME,自动重置svn.simple文件

1. 修改文件 打开 ~/.subversion/auth/svn.simple/xxx 更新前 K 15 svn:realmstring V 32 xxxxx //svn 地址&#xff0c;库的地址 K 8 username V 4 xxx //用户名 END在顶部插入下面内容&#xff0c; 注意&#xff0c;如果密码不对&#xff0c;则文件文法正常生效 更新后…

37、PHP 实现一个链表中包含环,请找出该链表的环的入口结点

题目&#xff1a; 题目描述 PHP 实现一个链表中包含环&#xff0c;请找出该链表的环的入口结点。 描述&#xff1a; 一个链表中包含环&#xff0c;请找出该链表的环的入口结点。 <?php /*class ListNode{var $val;var $next NULL;function __construct($x){$this->v…

自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection

文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…