第一节 软件系统的质量属性
第一条 质量属性概念
1.开发期质量属性
开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含6个方面。
- (1)易理解性:指设计被开发人员理解的难易程度。
- (2)可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性
- (3)可重用性:指重用软件系统或某一部分的难易程度。
- (4)可测试性:对软件测试以证明其满足需求规范的难易程度。
- (5)可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。
- (6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
2.运行期质量属性
运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含7个方面。
- (1)性能:性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
- (2)安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
- (3)可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通过增加服务器来提高能力。
- (4)互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度
- (5)可靠性:软件系统在一定的时间内持续无故障运行的能力。
- (6)可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误,恶意攻击,高负载等问题的影响。
- (7)鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发生了故障等)下仍能够正常运行的能力,也称健壮性或容错性。
第二条 面向架构评估的质量属性
(一)性能
(二)可靠性
可靠性通常用平均失效等待时间(Mean Time to Failure,MTTF)和平均失效间隔时间(Mean Time Between Failure,MTBF)来衡量。
在失效率(MTTR)为常数和修复时间很短的情况下,MTTF 和MTBF几乎相等。
可靠性可以分为两个方面
1.容错
2.健壮性
(三)可用性
(四)安全性
(五)可修改性:
- 1.可维护性
- 2.可扩展性
- 3.结构重组
- 4.可移植性
(六)功能性
功能性(Functionality)是系统能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
(七)可变性
(八)互操作性
第三条 质量属性场景描述
- 质量属性场景描述六大组成本部分:刺激源、刺激、环境、制品、响应、响应度量,
- 六大质量属性:可用性、可修改性、性能、可测试性、易用性和安全性。
- 性能质量属性场景:主要关注系统的响应速度,可以通过效率、响应时间、吞吐量、负载来客观评价性能的好坏。
第二节 系统架构评估
第一条 重要概念
(一)敏感点、权衡点
(二)风险承担者(Stakeholders)或者称为利益相关人
(三)场景(Scenarios)
为得出这些目标而采用的机制称之为场景
从刺激(Stimulus)、环境、响应三方面对场景进行描述
第二条 系统架构评估方法
(一)SAAM方法-基于场景的评估方法(Scenarios-based Architecture Method)
- SAAM 的主要输入是:问题描述、需求声明和架构描述。
- SAAM 的评估过程包括:场景开发、架构描述、单场景评估、场景交互评估和总体评估
- 在进行体系结构评估时,需要使用场景对于质量目标进行判断,以判定体系结构的优劣。
- 场景是从风险承担者的角度对系统交互的简短描述。
- 在体系结构评估中,通常采用刺激、环境和响应三个方面对场景进行描述。
1.特定目标
2.评估技术
3.质量属性
4.风险承担者
5.架构描述
6.方法活动
(二)ATAM方法-架构权衡分析方法(Architecture Tradeoff Analysis Method)
1.概念
架构权衡分析方法(Architecture TradeofAnalysis Method,ATAM)是在 SAAM 的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
2.特定目标
确定在多个质量属性之间折中的必要性
3.评估技术
3中不同类型的场景
(1)用例:包括对系统典型的使用、引用信息
(2)增长场景
(3)探测场景
4.质量属性
可修改性、安全性、性能、可用性
5.风险承担者
6.架构描述
4+1视图
7.方法的活动-4个活动领域
8.领域知识的可重用性
9.方法验证
ATAM 方法采用效用树(Utility tree)这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根一质量属性一属性分类一质量属性场景(叶子节点)。需要注意的是,ATAM 主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。
(三)CBAM方法-(the Cost Benefit Analysis Method)成本效益分析法
(四)其他评估方法
1.SAEM方法
2.SAABNet方法
3.SACMM方法
4.SASAM方法:静态分析
5.ALRRA方法:可靠性风险
6.AHP方法:层次分析法(Analysis Hierarchy Process)
7.COSML+UML
第三节 ATAM方法架构评估实践
第一条 阶段1-演示(Presentation)
(一)介绍ATAM
(二)描述商业目标
(三)描述接口体系
第二条 调查和分析
第三条 测试
第四条 报告ATAM
ATAM 团队的主要发现通常包括:
- 一种效用树;
- 一组生成的场景;
- 一组分析问题:
- 一套确定的风险和非风险;
- 确定的架构方法。