软件质量

一、  质量

质量:ISO定义质量为一个实体的所有特性,基于这些特性可以满足的明显的或隐含的需求,而质量就是这些特性满足需求的程度。

软件质量的特性是基于软件质量模型,评价的标准是基于需求(显示需求,隐式需求,用户的实际需求)

符合需求:符合开发者的明确定义的目标,可度量的,必须做和必须不做,内部质量,即软件启动到交付用户之间产生的所有中间产品的质量

符合用户显示需求:客户明确说的目标,SRS,验收质量,即用户在验收时品鉴产品的质量

符合用户的实际需求:显示需求&&隐式需求,使用质量,即用户在实际使用的过程中对产品的质量评价。

二、 质量大师

戴明(deming’s 14 point)戴明环

戴明环:PDCA(plan  do check action),将出现的问题投入至戴明环中,结束后若还有问题,则将未解决的问题也投入至戴明环 直至问题全部解决。

主要观点:引起效率低下和不良质量的原因是公司的管理系统

朱兰:质量来源于客户的需求

克劳斯比:‘零缺陷之父’‘世界质量先生’《质量免费》《质量再免费》《质量无泪》

JIT,just in time ,强调一次性将事情做好,不给自己留有弥补的余地

质量四项基本原则:

质量就是满足要求

工作的标准就是零缺陷

产生质量的系统是预防

用不符合要求的代价来衡量质量

费根鲍姆:全面质量控制的创始人,他要求用系统或全面的方法管理质量,在质量过程中要求所有职能部门参与,不局限于生产部门。

石川馨:《质量控制指南》为QC准备的非物质技术分析课本,总结了QC小组的七种常用工具:因果图,控制图,流程图,直方图,帕累托图,趋势图,散点图

田口玄一

项目铁三角:质量,时间,成本

质量铁三角:流程,组织,技术

三、 软件质量管理体系

CMM   ISO  6西格玛

ISO:国际标准组织。是普遍适用的质量管理体系

CMM:能力成熟度模型,过程能力等级分为五级,不同能力等级的过程能力满足的KPA不同(key process area,关键过程域),总计有18个KPA,CMM级别越高,可视度越高。

PSP:个人开发能力,注重个人技能

TSP:团队开发能,注重团队的高效工作和产品交付能力。

CMM:注重组织能力和高质量的产品。

CMMI:能力成熟度模型集成

6西格玛:数据的分散程度,6西格玛表示一百万个产品的不良产品不多于3.4个

实施方法(七步骤法):

找问题:找出需要改善的问题

收集并整理现时的生产数据;

找出原因:找出当时发生错误的原因

计划制定解决方案

检查效果:检查解决方案的效果

将有效方法制度化:将解决方法融入公司的规章制度中

检讨成效并发展新目标

管理原则:

注重客户;注重流程;全员参与;预防为主;事实依据决定;持续和突破性的改进;

四、 软件质量模型

任何一款软件必须遵循的特性,子特性的依存性:隐式需求

以下六个特性可以分为内部质量和外部质量

功能性:可以完成的事情

1、适合性:提供了相应的功能(是否完成需求)

2、准确性:正确(用户需要的,与需求对比)

3、互操作性:产品与产品之间交互数据的能力(与其他的软件硬件的交互能力)

4、保密安全性:允许经过授权的用户和系统能够正常的访问相应的数据和信息,禁止未授权的用户访问.......(物理意义:是否安全;信息方面:信息的保密与安全性,是否可以访问到合法的可以访问到而数据与是否会被非法的访问)【安全性测试】:注册。登录,密码设置,网络是否留痕,配置,权限,跨站点脚本攻击,伪站点请求,数据库注入,协议,防火墙等,

5、功能性的依从性:国际/国家/行业/企业 标准规范一致性

可靠性:产品在规定的条件下,在规定的时间内完成规定功能的能力

可靠性的三个指标:平均正常运行时间,平均故障时间,平均无效时间间隔

 1、成熟性:防止内部错误导致软件失效的能力(软件系统本身的问题)

2、容错性:软件出现故障,自我处理能力(收到外部攻击是是否可以容忍错误继续保持稳定)

3、易恢复性:失效情况下的恢复能力(发生问题是恢复到正常工作的能力)

4、可靠性的依从性

易用性:在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力【性能测试

】吞吐量,CPU利用率等

1、易理解性:软件的提示信息,软件的提示按钮等。(尊重标准规范)

 2、易学性:软件是否提供了学习使用手册

3、易操作性:

4、吸引性:软件系统吸引人的能力(标题党)

5、易用性的依从性:

效率性:在规定台条件下,相对于所用资源的数量,软件产品可提供适当性能的能力

1、时间特性:平均事务响应时间,吞吐率,TPS(每秒事务数)(快慢)

2、资源利用性:CPU 内存 磁盘 IO 网络带宽 队列 共享内存(运行某软件或模块占用的内存)

3、效率依从性:

软件维护性:"四规", 在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力(仅针对内存质量)

1、易分析性:分析定位问题的难易程度(软件出错后是否提供详细的文档,如日志等)

2、易改变性:软件产品使指定的修改可以被实现的能力(结构化强,高内聚,低耦合,全局变量少,软件系统出现问题后,修改对其他部分的影响)

3、稳定性:防止意外修改导致程序失效(问题修复后,系统是否可以平稳的运行)

4、易 测试性:使已修改软件能被确认的能力(专业,能够准确的测量)

5、维护性的依从性

软件可移植性:从一种环境迁移到另一种环境的能力

1、适应性:适应不同平台

2、易安装性:被安装的能力(安装过程简单)

3、共存性:(同类软件在同一系统)【兼容性】

4、易替换性(软件升级,打补丁)

5、可移植性的依从性:

软件度量分类:规模(软件工作产品的大小),工作量(完成各项软件工作产品和活动所用人时);进度(各项软件工作产品和活动开始饿结束时间);质量缺陷(在各项软件产品和活动中产生的缺陷数量)

五、  规模度量 

EXAMPLE:

 

 

 

posted on 2017-03-04 11:25  小狮子zzy  阅读(398)  评论(0编辑  收藏  举报