傲渊山岳 发表于 2024-6-13 21:09:53

【2024软考架构师自学条记】7.体系质量属性与架构评估

7.1 软件体系质量属性

7.1.1 质量属性概念

根据GB/T 16260.1 定义,从管理角度对软件体系质量举行度量,可将影响软件质量的重要因素划分为6种维度特性:功能性、可靠性、易用性、服从、维护性与可移植性。
功能性包括:得当性、准确性、互操作性、依从性、安全性;
可靠性包括:容错性、易规复性、成熟性;
易用性包括:易学性、易理解性、易操作性;
服从包括:资源特性和时间特性;
维护性包括:可测试性、可修改性、稳定性和易分析性;
可移植性包括:顺应性、易安装性、同等性和可更换性。
软件体系的质量属性分为开发期质量属性和运行期质量属性2个部门:

[*]开发期质量属性:易理解性、可扩展性、可重用性、可测属性、可维护性、可移植性。
[*]运行期质量属性:性能、安全性、可伸缩性、可操作性、可靠性、可用性、鲁棒性(结实性或容错性)
7.1.2 面向架构评估的质量属性 *



[*]性能 (Performance)
指体系的相应能力,常用单位时间内所处理事务的数目或体系完成某个事务处理所需的时间来对性能举行定量表示。常利用基准测试程序。如相应时间、吞吐量。
提升性能设战略略:优先级队列、增加计算资源、镌汰计算开销、引入并发机制、接纳资源调度等。
[*]可靠性(Reliability)
是软件体系在应用或体系错误面前,在意外或错误利用的情况下维持软件体系的功能特性的根本能力。
可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力。可靠性通常用均匀失效等候时间 (Mean Time To Failure,MTTF) 和均匀失效间隔时间 (Mean Time Between Failure,MTBF) 来衡量。在失服从为常数和修复时间很短的情况下, MTTF 和 MTBF险些相等。
可靠性可以分为两个方面:
1)容错:错误发生时确保体系正确的行为,并举行内部“修复”。
2)结实性:错误发生时保证软件按照某种已经定义好的方式制止执行。
设战略略:心跳、Ping/Echo、冗余、推选。
[*]可用性 (Availability)
是体系能够正常运行的时间比例。常常用两次故障之间的时间长度或在出现故障时体系能够规复正常的速度来表示。仍旧障间隔时间。
设战略略:心跳、Ping/Echo、冗余、推选。
[*]安全性 (Security)
是指体系在向正当用户提供服务的同时能够制止非授权用户利用的企图或拒绝服务的能力。如保密性、完备性、不可诡辩性、可控性。
设战略略:入侵检测、用户认证、用户授权、追踪审计。
[*]可修改性 (Modifability)
是指能够快速地以较高的性价比对体系举行变动的能力。
包含以下4个方面:
1)可维护性 (Maintainability): 这重要体如今标题的修复上,在错误发生后“修复”软件体系。
2)可扩展性 (Extendibility):新特性来扩展软件体系。
3)结构重组 (Reassemble)
4)可移植性 (Portability)
设战略略:接口实现分类、抽象、信息隐藏。
[*]功能性
是体系能完成所期望的工作的能力。
[*]可变性
是指架构经扩充或变动而成为新架构的能力。
[*]互操作性
程序和用其他编程语言编写的软件体系的交互。
7.1.3 质量属性的场景描述

质量属性场景是一个具体的质量属性需求,是利益相关者与体系的交互的简短陈诉,作为描述质量属性的手段,由6部门组成:
刺激源 (Source):天生刺激的实体(人、体系或其他),即刺激的泉源。
刺激 (Stimulus):该刺激是当刺激到达体系时需要思量的条件。
环境 (Environment):刺引发生的条件。
制品 (Artifact):即被刺激的对象。
相应 (Response):即被刺激后相应。
相应度量 (Measurement):即对相应度量。
质量属性场景重要关注可用性、可修改性、性能、可测试性、易用性和安全性等6类质量属性。


[*]质量属性描述表
略,详见书274页。
7.2 体系架构评估

体系架构评估是在对架构分析、评估的根本上,对架构策略的选取举行决议。它利用数学或逻辑分析技能,针对体系的同等性、正确性、质量属性、规划效果等不同方面,提供描述性、推测性和指令性的分析效果。
体系架构评估的方法通常可以分为3类:
1)基于调查问卷或检查表的方式
2)基于场景的方式
通太过析软件架构对场景的支持程度,从而判定该架构对这一场景所代表的质量需求的满足程度。
3)基于度量的方式
它是创建在软件架构度量的根本上的,涉及3个根本活动,首先需要创建质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,末了根据映射原则分析推导出体系的质量属性。
7.2.1 体系架构评估中的重要概念



[*]敏感点 (Sensitivity Point) 和衡量点 (Tradeoff Point)
敏感点:是一个特定的质量属性。衡量点:影响多个质量属性敏感点。
例如:改变加密级别大概会对安全性和性能产生影响,加密级别越高安全性越高,但需要耗费更多处理时间,低落了性能。此中加密级别就是衡量点。
[*]风险负担者 (Stakeholders) 或者称为利益相关人
相关职员所关心的标题见书278页。
[*]场景
为得出质量目的所采取的机制称为场景,场景是从风险负担者的角度对与体系的交互的简短描述。一样平常接纳刺激 (Stimulus)、 环 境(Environment) 和相应 (Response) 三方面来对场景举行描述。
7.2.2 体系架构评估方法



[*]SAAM方法
Scenarios-based Architecture Analysis Method
(1)特定目的:是对描述应用程序属性的文档,验证根本的架构假设和原则。该分析方法有利于评估架构固有的风险。SAAM 不但能够评估架构对于特定体系需求的利用能力,也能被用来比较不同的架构。
(2)评估技能:场景技能。
(3)质量属性:重要是可修改性。
(4)风险负担者:调和不同参与者达成共识。
(5)架构描述:SAAM用于架构的末了版本,但早于具体设计。重要包括功能、结构和分配3个方面。
(6)方法活动:SAAM 的重要输入是标题描述、需求声明和架构描述。分析评估架构的过程包括5个步骤,即场景开发、架构描述、单个场景评估、场景交互和总体评估。输入和评估过程详见书280页。
(7)已有知识库的可重用性: SAAM不思量这个标题。
(8)方法验证: SAAM是一种成熟的方法。
[*]ATAM方法
架构衡量分析方法 (Architecture Tradeoff Analysis Method,ATAM) 是 在SAAM的根本上发展起来的,重要针对性能、实用性、安全性和可修改性,在体系开发之前,对这些质量属性举行评价和折中。
(1)特定目的:确定在多个质量属性之间折中的须要性。
(2)质量属性:思量的是体系的可修改性、安全性、性能和可用性。
(3)风险负担者:全部体系相关职员的参与。
(4)架构描述:4+1视图派生而来,用一组消息顺序图表示运行时的交互和场景,对架构描述加以注解。 ATAM方法被用于架构设计中,或被另一组分析职员用于检查最终版本的架构。
(5)评估技能:利用了场景技能,有3种不同范例的场景,分别是用例(包括对体系典型的利用、引出信息)、增长场景(用于涵盖那些对它的体系的修改)、探测场景(用于涵盖那些大概会对体系造成过载的极度修改)。ATAM 还利用定性的开导式分析方法 (Qualitative Analysis Heuristics), 在对一个质量属性构造了一个准确分析模子时要举行分析,定性的开导式分析方法就是这种分析的粗粒度版本。
(6)方法的活动:分别是场景和需求网络、架构视图和场景实现、属性模子构造和分析、折中。
获得属性关联的方法有两种,即利用敏感度分析来发现折中点和通过检查假设。
(7)领域知识库的可重用性:领域知识库通过基于属性的架构风格 (Attribute Based Architecture Style) 维护。
(8)方法验证:该方法已经应用到多个软件体系,但仍处在研究之中。
ATAM 方法接纳效用树 (Utility tree) 这一工具来对质量属性举行分类和优先级排序。效用树的结构包括:树根—质量属性—属性分类—质量属性场景(叶子节点)。需要留意的是,ATAM重要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。得到初始的效用树后,需要修剪这棵树,保存重要场景(通常不超过50个),再对场景按重要性给定优先级(用 H/M/L 的情势),再按场景实现的难易度来确定优先级(用 H/M/L的情势),这样对所选定的每个场景就有一个优先级对(重要度、难易度),如 (H、L) 表示该场景重要且易实现。
[*]CBAM方法
本钱效益分析法 (the Cost Benefit Analysis Method,CBAM) 是在ATAM上构建,用来对架构设计决议的本钱和收益举行建模,是优化此类决议的一种手段。
CBAM 方法分为以下8个步骤:
(1)整理场景。整理 ATAM 中获取的场景,根据商业目的确定这些场景的优先级,并选取优先级最高的1/3的场景举行分析。
(2)对场景举行求精。为每个场景获取最坏情况、当前情况、期望情况和最好情况的质量属性相应级别。
(3)确定场景的优先级。项目关系人对场景举行投票,其投票是基于每个场景“所期望的”相应值,根据投票效果和票的权值,天生一个分值(场景的权值)。
(4)分配效用。对场景的相应级别(最坏情况、当前情况、期望情况和最好情况)确定效用表。
(5)架构策略涉及哪些质量属性及相应级别,形成相关的“策略一场景一相应级别”的对应关系。
(6)利用内插法确定“期望的”质量属性相应级别的效用。即根据第4步的效用表以及第5步的对应关系,确定架构策略及其对应场景的效用表。
(7)计算各架构策略的总收益。根据第3步的场景的权值及第6步的架构策略效用表,计算出架构策略的总收益得分。
(8)根据受本钱限定影响的 ROI选择架构策略。根据开发履历估算架构策略的本钱,联合第7步的收益,计算出架构策略的ROI, 按 ROI排序,从而确定选取策略的优先级。
[*]其他方法
1)SAEM 方法
SAEM方法将软件架构看作一个最终产品以及设计过程中的一个中间产品,从外部质量属性和内部质量属性两个角度来阐述它的评估模子,旨在为软件架构的质量评估创建一个根本框架。
2)SAABNet 方法
软件架构定性的评估技能依赖于专家知识,这些定性的知识比较含糊且难以文档化。 SAABNet是一种用来表达和利用定性知识以辅助架构的定性评估。该方法泉源于人工智能 (AI), 允许不确定、不完备知识的推理。该方法利用 BBN(Bayesian Belief Networks) 来表示和利用开发过程中的知识。
SAABNet度量的对象包括架构属性、质量准则和质量因素3部门。详见书284页表格。
3)SACMM 方法
SACMM 方法是一种软件架构修改的度量方法,首先基于图内核定义差异度量准则来计算两个软件架构之间的距离。图内核的根本思想是将结构化的对象描述为它的子结构的聚集,通过子结构的配对比较来分析对象之间的相似性。假设可以提取到软件架构实际值的属性向量,表示为φ(4)={I(4),φ2(4),…}, 两个架构A ,和A,相似度(即内核)可以通过其内含子结构的相似度总和来计算。
4)SASAM 方法
SASAM 方法通过对预期架构(架构设计阶段的相关描述材料)和实际架构(源代码中执行的架构)举行映射和比较来静态地评估软件架构,并将静态评估与架构开发方法PuLSEDSSA联合,识别出10种不同的目的和需求来引导静态的架构评估。
5)ALRRA 方法
可靠性风险重要包含两个因素:故障发生的大概性以及故障所致后果的严重性。 ALRRA是一种软件架构可靠性风险评估方法。
6)AHP方法
条理分析法 (Analytical Hierarchy Process,AHP) 是多种架构评估度量方法的根本理论。
7)COSMIC+UML方法
基于面向对象体系源代码的可维护性度量准则。
7.3 ATAM方法架构评估实践

ATAM工作分为四个阶段:即演示、调查和分析、测试和陈诉。
7.3.1阶段1——演示 (Presentation)

第1步:先容ATAM
第2步:先容业务驱动因素
第3步:先容要评估的体系结构
1)胡佛 (Hoover) 事件架构
2)“银行” (Banking) 事件架构
7.3.2阶段2——调查和分析

第4步:确定架构方法
第5步:天生质量属性效用树
第6步:分析体系结构方法
找出风险、非风险、敏感点和衡量点
7.3.3阶段3——测试

第7步:头脑风暴和优先场景
第8步:分析架构方法
7.3.4阶段4——陈诉ATAM

备注:此章重点理解、应用、案例题,内容较水,以后有时间再补充。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【2024软考架构师自学条记】7.体系质量属性与架构评估