系统软件的质量属性

软件产品的质量属性相关国家标准

相关标准主要内容
GB/T 16260.1质量模型
GB/T 16260.2外部质量属性
GB/T 16260.3内部质量属性
GB/T 16260.4使用质量属性
GB/T 8566软件生命周期过程模型
GB/T 18905质量属性评价

质量模型

产品质量过程是确保产品能够最终满足用户需求的过程。

质量途径:

产品的质量可以用测量产品的内部属性(比如静态测试),外部属性(比如产品运行过程中的测试)和使用质量来评价。
对于产品产生过程(定义于GB8566)进行的评价和改进有助于改善产品质量,而对产品质量的改进和评价有助于改善使用质量;改进过程质量是提高质量的手段,而改进产品质量是提高质量的方法。
使用质量的反馈有助于提高产品质量,而评价产品质量的反馈有助于改进过程。

质量与生命周期:

在产品的生命周期中对质量的视图是不一样的,在初始阶段一般从用户的使用角度去定义产品质量,而在开发和维护阶段通常从开发者角度去看待产品的设计质量等内部质量。希望在开始阶段定义完整的质量需求是不现实的,因为
1)用户往往并不清楚需要的质量属性
2)开始定义的要求可能会在后面发生变化
3)不可能访问所有的用户。
但是,尽可能的描述产品的质量属性还是必要的。在产品交付阶段,必须描述清楚产品的质量属性。

产品质量的度量

产品质量的度量可以从使用质量,外部质量,内部质量去度量。外部度量和内部度量由一些特性以及以下的子特性构成。
使用度量由四个特性构成,没有再细分。使用度量是外部度量和内部度量的特性组合而形成的质量;

用户的质量要求可以用使用质量,外部质量或者内部质量去度量。在确认产品时这些度量确定的需求可以作为准则来使用。通常需要一种可以得到反馈的开发方法迭代的获得用户的要求。
外部质量需求是从产品的外部视角规定的质量要求。可以为开发阶段的设定目标,可以作为评价产品的准则;
内部质量需求是从产品的内部视角规定的质量要求。可以为开发阶段的设定目标,可以作为开发策略的验证和评价的准则;
内部质量是产品内在质量的总和;是针对内部质量需求的测量和评价;
外部质量是产品外在质量的总和;是针对外部质量需求的测量和评价;
使用质量是从用户使用的角度对有效性,生产效率,安全性,满意度的度量,而不是对产品本身质量进行测量;

质量模型可应用于产品开发过程中的需求分析阶段的需求评价,以及支持过程中的验收,确认,评审过程;
产品质量模型应用实例:确定需求的完整性,确定需求,确定产品的设计目标,确定产品的测试目标,确定产品的验收准则,确定产品的质量保证准则;

质量属性

内部质量和外部质量的质量属性包括:功能性,可靠性,易用性,可修改性,效率,可移植性;

  • 功能性是指满足用户明确或隐含的要求的能力;包括:适合性,准确性,安全性,互操作性;

    适合性就是在规定使用条件下,提供用户一组功能的能力;
    准确性就是在规定使用条件下,达到用户需要的精度,性能指标的能力;
    安全性就是保障系统和数据安全的能力,对于非授权用户拒绝提供访问,控制;
    互操作性就是提供与多种系统接口的能力;
    
  • 可靠性是指在规定使用条件下,维持用户一定性能要求的能力;包括:成熟度,容错性,可恢复性;

    成熟度就是避免产品失效的能力;
    容错性就是产品在出错或输入异常条件下,维持系统运行在规定性能水平上的能力;
    可恢复性就是在产品失效条件下,恢复工作和修复数据的能力;
    
  • 易用性是指用户理解使用系统的容易程度;包括易理解,易学性,易操作性,用户吸引性;

    易理解就是系统可被用户理解的容易程度;
    易学性就是系统可被用户学习的容易程度;
    易操作就是系统可被用户操控的程度;
    用户吸引性就是吸引用户使用系统的能力;
    
  • 可修改性是指容易修改的能力,修改包括修正,改进和用户需求的变化;包括:易分析,易修改,易测试性,稳定度;

    易分析就是识别软件故障或需要修改部分的容易程度;
    易修改就是对于需要修改部分实现修改的容易程度;
    易测试就是对于修改部分进行测试的容易程度;
    稳定度就是当软件被修改时,系统维持一定稳定程度的能力;
    
  • 效率是指对于一定的资源,系统提供一定性能的能力;包括时间特性,资源利用率;

    时间特性就是提供如响应时间,吞吐量,等相关时间的特性;
    资源利用率就是提供一定性能,需要使用资源的数量;使用如带宽,网络负载率;
    
  • 可移植性是指系统从一个环境迁移到另一个环境的能力;包括:适应性,可安装性,相容性,可替换性;

    适应性就是当环境发生变化时比如屏幕大小,报告格式等,用户不需要额外的操作就能正常工作的能力;
    可安装性就是系统可安装的能力;
    相容性就是系统与多个共享资源的系统共同运行的能力;
    可替换性就是软件可以替换另一个相同功能软件的能力,比如新版本升级;
    

使用质量的质量模型是站在用户的角度对系统进行的度量,不仅包括易用性而是以上多个属性的集合。包括:有效性,生产效率,安全性,满意度

有效性:就是用户使用系统能够达到需要的功能和性能的能力;
生产效率就是为满足有效性,用户需要消耗的资源(时间,各种资源,人力);
安全性是用户可接受的软件,资源破坏情况;
满意度是指用户对系统的满意程度;
用户对使用质量的评价往往根据用户的特点和环境有不同的评价指标。比如对于维护者评价的是可维护性指标;
对于用户评价的是功能性,可靠性,安全性指标;

使用质量决定于外部质量,外部质量决定于内部质量。但是内部质量并不能完全满足外部质量,外部质量也不能完全满足使用质量,因此这三个层次的度量是不能替代的。

此外在《软件架构实践》这本书中将软件的质量属性分成:系统质量属性,商业质量属性,架构本身质量属性;

系统质量属性包括:可用性、可修改性、性能、安全性、可测试性和易用性; 
商业质量属性包括:目标市场,生命周期长短,成本与收益,上市时间,上市计划; 
架构本身质量属性包括:概念完整性,完整性和正确性,可构建性; 

系统质量属性的实现方法:

系统的质量属性包括系统的多方面要求,因此架构的质量实现取决于多方面的技术方法;

可用性:相当于gb中的可靠性

实现可靠性的方法有错误检测,恢复,预防,备份;
错误检测的方法有:心跳,命令/响应,异常断言;
恢复:是系统从错误状态中恢复到正常状态,方法有前向恢复,后向恢复,重新引入恢复,防卫式设计;
    前向恢复有结构冗余:表决,N版本设计,时间冗余(多次计算),信息冗余(校验);
    后向恢复有:恢复块;
    重新引入恢复:状态恢复,基于检查点的恢复,事务回滚;
    防卫式设计(异常检测try catch)
预防:方法有进程监视,定期重置;
备份:双机热备或集群;

可修改性:相当于gb中的可修改性;

方法有:局部修改,防止链式反应,延迟绑定;
局部修改方法有:提前假设(抽象接口,接口与实现分离),维持模块之间关系的语义一致
(不要调用过多的模块,模块之间是高内聚松耦合的);
泛化(针对接口而不是实现编程,,开闭原则(对接口关闭,对扩展开放)),限制可能的选择;
防止链式反应方法有:信息隐藏,维持接口一致,减少调用途径;
延迟绑定方法有:通过配置定义实现接口,运行时注册;

性能:相当于gb中的效率;方法有:减少资源需求,增加资源供给,资源调度;

减少资源需求:可以通过优化算法减少计算量;减少不必要的需求如采样频率,关闭不需要的资源以减少需求;
限制执行时间,避免长时间占用资源;
增加资源供给:增加如cpu运行频率,内存等硬件资源;将任务分成多个并行任务,以减少闭锁机会;
资源调度(调度算法fifo,时间片轮转,优先级);

安全性:相当于功能性中的安全性子特性;

方法有:安全防护,安全预防,安全恢复
安全防护包括:身份识别与认证,信息加密与完整性,访问控制;
安全预防包括:入侵检测;
安全恢复包括:审计;  

可测试性:相当于gb中可修改性中的可测试性子特性;可修改性就是发生错误或需要修改时能够较快的定位修改的地方,并能够比较容易的修改和测试;

方法有:接口与实现分离(可以方便的实现测试模块和桩模块),特化测试接口(为测试预留特殊接口),
记录与回放,内置监视; 

易用性:相当于gb中易用性;

方法有:设计时实现与接口分离,运行时记录用户状态(用户信息,行为信息,系统信息),
支持用户主动动作(重做与回退);
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值