一、软件质量属性
软件质量属性,也称软件评估属性,是系统架构设计师必须掌握的核心知识点之一,这些质量属性的具体含义是:
(1)性能(Performance)效率指标,是指系统的响应能力,处理任务所需时间或单位时间内的处理量。
(2)可靠性(Reliability)是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
(2.1)容错(Fault-tolerant)出现错误后仍能保证系统系统继续运行,且自行修正错误。
(2.2)健壮性(Robustness)是指在处理或环境中,系统能够承受压力或变更的能力,错误不对系统产生影响,按既定程序忽略错误。
(3)可用性(Availability)是系统能够正常运行的时间比例。
(4)安全性(Security)是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
(5)可修改性(Modification)是指能够快速地以较高的性能价格比对系统进行变更的能力。
(5.1)可维护性(Maintainability)局部修复使故障对架构的负面影响最小化。
(5.2)可拓展性(Extendibility)因松散耦合更易实现新特征/功能,不影响架构。
(5.3)可移植性(Portability)适用于多样的环境(硬件平台、语言、操作系统)。
(5.4)结构重组(Reconstructability)不影响主体进行的灵活配置。
(6)可变性(Changeability)总体架构可变,体系结构经扩充或变更成为新体系结构的能力。
(7)功能性(Functionality)需求的满足程度,是系统所能完成所期望工作的能力。
(8)互操作性(Inter-operation)是指系统与外界或系统与系统之间的相互作用能力,通过可视化或接口方式提供更好的交互操作体验。
(9)易用性(Usability)是衡量用户使用一个软件产品完成指定任务的难易程度。
(10)可测试性(Testability)是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
二、提高软件质量的方法
提高性能
1,增加计算资源
2,减少计算开销
3,引入并发机制
4,采用资源调度
提高可用性
1,采用心跳
2,Ping/Echo
3,主动冗余
4,被动冗余
5,选举
提高安全性
1,入侵检测
2,用户认证
3,用户授权
4,追踪审计
三、软件质量属性/系统架构分析/评估方法
SAAM评估方法
SAAM(Scenario-based Architecture Analysis Method),基于场景的架构分析方法,是卡耐基梅隆大学软件工程研究所的Kazman等人与1983年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。
1,评估目的
SAAM的目的是验证基本的体系结构假设和原则,评估体系结构固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM不仅能够评估体系结构对于特定需求的使用能力,也能被用来比较不同的体系结构。
2,主要输入
问题描述、需求说明、架构描述文档
3,评估参与者
风险承担者、记录人员、软件体系结构设计师
4,评估活动或过程
SAAM分析评估体系结构的过程包括六个步骤:场景开发、架构描述、场景的分类和优先级确定、单个场景评估、场景相互作用的评估、总体评估。
5,评估结果
SAAM评估的主要有形输出包括:
- 把代表了未来可能做的更改的场景与架构对应起来,显现出架构中未来可能会出现的比较高复杂性的地方,并对每个这样的更改的预期工作量做出评估。
- 理解系统的功能,对多个架构所支持的功能和数量进行比较。
如果所评估的是一个框架,SAAM评估将指明框架中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。SAAM评估也能对两个或者三个备选架构进行比较,明确其中哪一个能够较好的满足质量属性需求,而且做得更改更少、不会再未来导致太多复杂的问题。
ATAM评估方法
ATAM(Architecture Tradeoff Analysis Method),架构权衡分析方法,这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系,即如何权衡诸多质量目标。
1,评估目的
ATAM的评估目的是依据系统质量属性和商业需求评估设计决策的结果。ATAM希望揭示出架构满足特定质量目标的情况,使我们更清楚的认识到质量目标之间的联系,即如何权衡多个质量目标。
2,评估参与者
评估小组,该小组是所评估架构项目外部的小组,通常由3-5人组成。该小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。
项目决策者,对开发项目具有发言权,并有权要求进行某些改变,包括项目管理人员、重要的客户代表、架构设计师等。
架构涉众,包括关键模块开发人员、测试人员、用户等。
3,评估活动或过程
整个ATAM评估过程包括九个步骤:描述ATAM方法、描述商业动机、描述体系结构、确定体结构方法、生成质量属性效用树、分析体系结构方法、讨论和分级场景、描述评估结果,其中分析体系结构方法需要执行两次。
4,评估结果
一个简洁的构架表述;表述清楚的业务目标;用场景集合捕获的质量需求;构架决策到质量需求的映射;所确定的敏感点和权衡点集合;有风险决策和无风险决策;风险主题的集合。