安派尔

软考系统架构设计师(7)-系统质量属性与架构评估

2025/07/28
0
0

软考系统架构设计师(7)-系统质量属性与架构评估

软件系统质量属性

概念:软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。
开发期质量属性

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

运行期质量属性

  • 性能:性能是指软件系统及时提供相应服务的能力
  • 安全性:指软件系统同时兼顾向合法用户提供服务,以及组织非授权使用的能力
  • 可伸缩性:当用户数和数量增加时,软件系统维持高服务质量的能力
  • 互操作性:指软件系统与其他系统交换数据和相互调用服务的难易程度
  • 可靠性:软件系统在一定时间内持续无故障运行的能力
  • 可用性:系统在一定时间内正常工作的时间所占的比例
  • 鲁棒性:软件系统在非正常情况下仍能正常运行的能力,也称健壮性或容错性

1.面向架构评估的质量属性
架构评估方法所关注的质量属性

  • 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或在某段时间内系统所能处理的事件个数

  • 可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力,

    平均失效等待时间(Mean time to failure,MTTF)

    平均失效间隔时间(Mean Time Between Failure,MTBF)

    平均修复时间(Mean time to Repair,MTTR)

    在失效率为常数和修复时间很短的情况下,MTTF和MTBF几乎相等

    可靠性分两个方面

    • 容错:目的是在错误发生时确保系统正确的行为,并进行内部“修复”。
    • 健壮性:保护应用程序不受错误使用和错误输入的影响,在发生意外错误事件时确保应用系统处于预先定义好的状态。
  • 可用性:系统能正常运行的时间比例

  • 安全性:系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。

  • 可修改性:指能够快速地以较高性价比对系统进行变更的能力。

    • 可维护性:主要体现在问题的修复上,在错误发生后“修复”软件系统对其他构件的影响
    • 可扩张性:使用新特性来扩展软件系统,以及使用改进版本方式替换构件并删除不需要或不必要的特性和构件。
    • 结构重组:重新组织软件系统的构件及构件间的关系
    • 可移植性:使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。
  • 功能性:是系统能完成所期望的工作的能力

  • 可变性:指架构经扩充或变更成为新架构的能力

  • 互操作性:通过可视化或接口方式提供更好的交互操作体验

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

系统架构评估

系统架构评估方法分3类

  • 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表,充分利用系统相关人员的经验和知识,获得对架构的评估。缺点是很大程度依赖评估人员的主观推断
  • 基于场景的评估方法:通过分析软件架构对场景的支持程序,从而判断该架构对这一场景所代表的质量需求的满足程度
  • 基于度量的评估方法:建立在软件架构度量的基础上,涉及3个活动,首先是需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性

系统架构评估中的重要概念
敏感点和权衡点:敏感点是一个或多个构件的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点
风险承担者或利益相关人:影响体系结构或被体系结构影响的群体
场景:确定架构质量评估目标的交互机制,一般采用触发机制、环境和影响三方面来描述。

软件架构分析方法(SoftWare Architecture Analysis Method,SAAM)

SAAM主要的输入是问题描述、需求声明、架构描述,分析评估的过程包括5个步骤:场景开发、架构描述、单个场景评估、场景交互、总体评估;可修改性事SAAM分析的主要质量属性
img

架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)

在SAAM基础上发展来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中;用一组消息顺序图表示运行时的交互和场景;有3种不同类型的场景,分别是用例、增长场景、探测场景。
分4个主要的活动领域,分别是场景和需求收集、架构视图和场景实现、属性模型构造和分析、折中。
img

效用树的结构:树根——质量属性——质量分类——质量属性场景(叶子结点),主要关注4类质量属性:性能、安全性、可修改性、可用性。

成本效益分析法(the Cost Benefit Analysis Method,CBAM)

CBAM在ATAM上构建,用来对架构涉及决策的成本和收益进行建模,思想就是架构策略影响系统的质量属性,反过来这些质量属性又会为系统的项目干系人带来一些收益

ATAM方法架构评估实践

分4个基本阶段:演示、调查和分析、测试、报告ATAM
img
阶段1——演示
1)介绍ATAM:评估负责人向所有相关参与者提供ATAM过程的一般信息,领导说明评估中使用的分析技术以及评估的预期结果
2)介绍业务驱动因素:着重业务视角,提供有关系统功能、主要利益相关方、业务目标和其他限制等信息
3)介绍要评估的体系结构:侧重可以用以及体系结构的质量要求

阶段2——调查和分析
1)确定架构方法:涉及能够理解系统关键需求的关键架构方法。
2)生成质量属性效用树:确定最重要的质量属性,并确定优先次序
3)分析体系结构方法:彻底调查和分析,找出处理响应质量属性架构法人方法。包括4个阶段:调查架构方法;创建分析问题;分析问题的答案;找出风险、非风险、敏感点、权衡点

阶段3——测试
1)头脑风暴和优先场景
2)分析架构方法

阶段4——报告ATAM