第6章 软件质量和软件质量保证体系(61-63)_第1页
第6章 软件质量和软件质量保证体系(61-63)_第2页
第6章 软件质量和软件质量保证体系(61-63)_第3页
第6章 软件质量和软件质量保证体系(61-63)_第4页
第6章 软件质量和软件质量保证体系(61-63)_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 第第6 6章章 软件质量和软软件质量和软 件质量保证体系件质量保证体系 ( (第第6.1-6.36.1-6.3节)节) 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 主要内容主要内容 软件质量软件质量 软件复杂性分析软件复杂性分析 软件可靠性分析软件可靠性分析 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.1 6.1 软件质量软件质量 1996年阿里亚娜- 5型火箭发射40秒 1991年海湾战争 事实1:一个软件小故障 造成导弹跟踪系统失灵 。 28死,98伤 事实2:爆 炸的根本 原因在于 惯性导航 系统软

2、件 中技术要 求和设计 的错误 。 10亿,2名 法国士兵 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.1.1 6.1.1 软件质量特性软件质量特性 什么是软件质量?什么是软件质量? 按照按照ISO/IEC9126-1991(GB/T16260-1996)”ISO/IEC9126-1991(GB/T16260-1996)” 信息技术软件产品评价、质量特性及其使用信息技术软件产品评价、质量特性及其使用 指南指南”国际标准,软件质量是与软件产品满国际标准,软件质量是与软件产品满 足明确或隐含需求的能力有关的特征和特性足明确或隐含需求的能力有关的特征和特性 的总和。的总和。 换言之

3、:换言之: 软件质量是软件特性的组合,它仅依赖软软件质量是软件特性的组合,它仅依赖软 件本身。件本身。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.1.1 6.1.1 软件质量特性软件质量特性 质质 量量 特特 性性含含 义义子子 特特 性性 功能特性功能特性 (Functionality)(Functionality) 与一组功能及其指定的性质有关的一组与一组功能及其指定的性质有关的一组 属性。属性。 适合性、准确性、互适合性、准确性、互 操作性、依从性、安操作性、依从性、安 全性全性 可靠性可靠性 (Reliability)(Reliability) 与在规定的一段时间和

4、条件下,软件维与在规定的一段时间和条件下,软件维 持其性能水平的能力有关的一组属性。持其性能水平的能力有关的一组属性。 成熟性、容错性、易成熟性、容错性、易 恢复性恢复性 可用性可用性 (Usability)(Usability) 与一组规定或潜在用户为使用软件所需与一组规定或潜在用户为使用软件所需 作的努力和对这样使用所作的评价有关作的努力和对这样使用所作的评价有关 的一组属性。的一组属性。 易理解性、易学性、易理解性、易学性、 易操作性易操作性 效率效率 (Efficiency)(Efficiency) 与在规定的条件下,软件性能水平与所与在规定的条件下,软件性能水平与所 使用资源量之间的

5、关系有关的一组属性。使用资源量之间的关系有关的一组属性。 时间特性、资源特性时间特性、资源特性 可维护性可维护性 (Maintainability)(Maintainability) 与进行指定的修改所需的努力有关的一与进行指定的修改所需的努力有关的一 组属性。组属性。 易分析性、易改变性、易分析性、易改变性、 稳定性、易测试性稳定性、易测试性 可移植性可移植性 (Portability)(Portability) 与软件可从某一环境转移到另一环境的与软件可从某一环境转移到另一环境的 能力有关的一组属性。能力有关的一组属性。 适应性、易安装性、适应性、易安装性、 一致性、易替换性一致性、易替换

6、性 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.1.2 6.1.2 软件质量评价软件质量评价 评价软件质量可从三个方面进行,即产品或评价软件质量可从三个方面进行,即产品或 中间产品、过程(即软件生产所需的资源和中间产品、过程(即软件生产所需的资源和 活动)和项目。活动)和项目。 对于产品或中间产品对于产品或中间产品 专家可以用技术分析手段:复杂性分析,专家可以用技术分析手段:复杂性分析, 可靠性分析来评价。可靠性分析来评价。 过户可直接对软件产品的几种特性来评过户可直接对软件产品的几种特性来评 估。估。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 产品或中间产品

7、产品或中间产品评价评价 定义质量需求定义质量需求 质量需求包含两个方面:质量需求包含两个方面:问题规定或隐含的需求;问题规定或隐含的需求;软件质软件质 量标准和其它技术信息。量标准和其它技术信息。 准备评价准备评价 首先选择质量度量;然后定义质量等级;再定义评估准则。首先选择质量度量;然后定义质量等级;再定义评估准则。 评价过程评价过程 评价过程实际上是对软件产品就第评价过程实际上是对软件产品就第2 2步中准备的评价内容进行实步中准备的评价内容进行实 施,也分施,也分3 3步:步: 测量测量把选定的质量度量应用到软件产品上;把选定的质量度量应用到软件产品上; 评级评级确定某测量值的等级;确定某

8、测量值的等级; 评估评估根据评估准则确定产品质量,并依据管理准则判定根据评估准则确定产品质量,并依据管理准则判定 产品是否可通过验收或是否发行等等。产品是否可通过验收或是否发行等等。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 过程或项目过程或项目评价评价 主要通过考察软件企业的质量保证与质主要通过考察软件企业的质量保证与质 量管理的质量来评价软件产品的质量。量管理的质量来评价软件产品的质量。 一般来说,好的质量保证与质量管理会一般来说,好的质量保证与质量管理会 带来高的产品质量。带来高的产品质量。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.1.3 6.1.3

9、 软件质量保证软件质量保证 所谓质量保证(所谓质量保证(Quality AssuranceQuality Assurance)是)是 为了提供足够的信任表明实体能满足质为了提供足够的信任表明实体能满足质 量要求,而在量要求,而在质量体系质量体系中实施并根据需中实施并根据需 要进行证实的全部有计划、系统化的活要进行证实的全部有计划、系统化的活 动。动。 质量体系(质量体系(Quality SystemQuality System)是为实施)是为实施 质量管理所需的组织结构、程序、过程质量管理所需的组织结构、程序、过程 和资源和资源 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 软件工

10、程师软件工程师 通过采用可靠的技术方法和措施,通过采用可靠的技术方法和措施, 进行正式的技术复审、执行计划周进行正式的技术复审、执行计划周 密的软件测试来保证软件质量密的软件测试来保证软件质量 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 SQASQA小组小组 主要辅助软件工程小组得到高质量的最终产品。主要辅助软件工程小组得到高质量的最终产品。 v对项目准备对项目准备SQASQA计划;计划; v参与开发项目的软件过程描述,以保证该过程与组织政策、参与开发项目的软件过程描述,以保证该过程与组织政策、 内部软件标准、外界所订标准以及软件项目计划的其它部分内部软件标准、外界所订标准以及软

11、件项目计划的其它部分 相符;相符; v复审各项软件工程活动,对其是否符合定义好的软件过程进复审各项软件工程活动,对其是否符合定义好的软件过程进 行核实;行核实; v审计指定的软件工作产品,对其是否符合定义好的软件过程审计指定的软件工作产品,对其是否符合定义好的软件过程 中的相应部分进行核实;中的相应部分进行核实; v确保软件工作及工作产品中的偏差已被记录,并根据预定规确保软件工作及工作产品中的偏差已被记录,并根据预定规 程进行处理;程进行处理; v记录所有不符合的部分,并报告给高级管理者;记录所有不符合的部分,并报告给高级管理者; v 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院

12、6.1.4 6.1.4 软件质量管理软件质量管理 确定质量方针、目标和职责,并在质量确定质量方针、目标和职责,并在质量 体系中通过诸如:质量策划、质量控制、体系中通过诸如:质量策划、质量控制、 质量保证和质量改进,使其实施全部管质量保证和质量改进,使其实施全部管 理职能的所有活动。理职能的所有活动。 类型:质量检验型管理、全面质量管理类型:质量检验型管理、全面质量管理 和质量认证。和质量认证。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 质量检验型管理:初级质量管理形式,质量质量检验型管理:初级质量管理形式,质量 把关停留在产品的检验阶段,是一种被动的把关停留在产品的检验阶段,是

13、一种被动的 质量检验活动。质量检验活动。 全面质量管理:通过对产品质量形成的全过全面质量管理:通过对产品质量形成的全过 程控制和全员努力来保证产品质量,是一种程控制和全员努力来保证产品质量,是一种 生产者来主导型的质量管理。生产者来主导型的质量管理。 质量认证:全面质量管理基础上形成的管理质量认证:全面质量管理基础上形成的管理 管理手段,以管理手段,以“使顾客满意使顾客满意”为宗旨的买方为宗旨的买方 主导型质量管理,具有国际通用性。由第三主导型质量管理,具有国际通用性。由第三 方证实。方证实。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 比较比较 质量管理质量管理质量保证质量保证

14、 由组织内部利益相关者发起,特由组织内部利益相关者发起,特 别是组织的管理者别是组织的管理者 由利益相关者发起,特别是由利益相关者发起,特别是 组织外部的顾客组织外部的顾客 使所有利益相关者满意为目的使所有利益相关者满意为目的以所有顾客满意为目的以所有顾客满意为目的 关系到质量结果的取得关系到质量结果的取得对达到质量要求的证明对达到质量要求的证明 预期的结果是所有工作都很出色预期的结果是所有工作都很出色 预期结果是确信组织的产品预期结果是确信组织的产品 能为顾客满意能为顾客满意 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 质量认证意义:质量认证意义: 1 1、指导用户选择产品,减

15、少风险。、指导用户选择产品,减少风险。 2 2、促进厂家采取措施提供质量。、促进厂家采取措施提供质量。 3 3、给厂家带来信誉和经济效益。、给厂家带来信誉和经济效益。 4 4、节约大量各种质量检测费用。、节约大量各种质量检测费用。 5 5、有利于开拓国际市场。、有利于开拓国际市场。 评价软件企业质量管理:评价软件企业质量管理: 1 1、ISO9001ISO9001认证认证 2 2、软件过程能力成熟度模型、软件过程能力成熟度模型 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.2 6.2 软件复杂性分析软件复杂性分析 各位各位: :哪一辆车哪一辆车 有吸引力?有吸引力? 武汉纺织大

16、学数学与计算机学院武汉纺织大学数学与计算机学院 软件度量具有的特征软件度量具有的特征 (Ejiogu)(Ejiogu) 简单的和可计算的简单的和可计算的; ; 经验和直觉上有说服力经验和直觉上有说服力; ; 一致的和客观的一致的和客观的; ;非二义结果。非二义结果。 单位和维度的使用上是一致的单位和维度的使用上是一致的; ; 编程语言独立性编程语言独立性; ;不依赖编程语言。不依赖编程语言。 质量反馈的有效机制。质量反馈的有效机制。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.2.1 6.2.1 基于需求分析的复杂性分析基于需求分析的复杂性分析 在需求分析阶段完成以后,项目的

17、管理人在需求分析阶段完成以后,项目的管理人 员希望知道将要开发的软件有员希望知道将要开发的软件有多大规模多大规模。 如果是委托开发的项目软件,用户也会关如果是委托开发的项目软件,用户也会关 心开发机构提出的报价是否恰当合理。心开发机构提出的报价是否恰当合理。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点方法功能点方法 AlbrechtAlbrecht首先提出来首先提出来; 功能点方法以功能点方法以需求规格说明书需求规格说明书中双方中双方确确 认的软件功能认的软件功能为依据,着重分析待开发为依据,着重分析待开发 系统的功能度(系统的功能度(FunctionalityFunct

18、ionality)。)。 假定:软件的大小与软件的功能度相关,假定:软件的大小与软件的功能度相关, 而与软件功能的描述无关,也与功能需而与软件功能的描述无关,也与功能需 求的如何实现无关。求的如何实现无关。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 五类功能点五类功能点 用户输入数用户输入数;输入与查询分开计算;输入与查询分开计算 用户输出数用户输出数;报表、屏幕信息、出错;报表、屏幕信息、出错 用户查询数用户查询数;一个查询定义为一次联机;一个查询定义为一次联机 文件数文件数;计算每个逻辑的主文件;计算每个逻辑的主文件 外部接口数外部接口数。所有机器可读的接口。所有机器可读的

19、接口 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点复杂性分布功能点复杂性分布 复杂性复杂性 功能点功能点 简单简单中等中等复杂复杂 用户输入用户输入3 34 46 6 用户输出用户输出4 45 57 7 用户查询用户查询3 34 46 6 文件文件7 710101515 外部接口外部接口5 57 71010 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 影响因子影响因子及度量及度量 q系统需要可靠的备份和复原吗?系统需要可靠的备份和复原吗? q需要数据通信吗?需要数据通信吗? q有分布处理功能吗?有分布处理功能吗? q性能很关键吗?性能很关键吗? q系统是否在一

20、个已有的、很实用的操作环境中运行?系统是否在一个已有的、很实用的操作环境中运行? q系统需要联机数据项吗?系统需要联机数据项吗? q内部处理复杂吗?内部处理复杂吗? q联机数据项是否需要在多屏幕或多操作之间切换以完成输入?联机数据项是否需要在多屏幕或多操作之间切换以完成输入? q输入、输出、文件或查询很复杂吗?输入、输出、文件或查询很复杂吗? q代码需要被设计成是可复用的吗?代码需要被设计成是可复用的吗? q需要联机更新主文件吗?需要联机更新主文件吗? q设计中需要包括转换及安装吗?设计中需要包括转换及安装吗? q系统的设计支持不同组织的多次安装吗?系统的设计支持不同组织的多次安装吗? q应用

21、的设计方便用户修改和使用吗?应用的设计方便用户修改和使用吗? 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点功能点计算计算 功能点功能点FP=FP=未调节功能点未调节功能点UFPUFP* *(常数(常数C C1 1+ +常数常数C C2 2* * 复杂度调节值复杂度调节值CACA) 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 职工工资管理系统职工工资管理系统例子例子 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 五类功能点五类功能点 用户输入数为用户输入数为4 4:密码、工资打印、工资:密码、工资打印、工资 录入、错误按键;录入、错误按键; 用户输出

22、数为用户输出数为3 3:查询信息、工资报表、:查询信息、工资报表、 出错信息;出错信息; 用户查询数为用户查询数为1 1:工资查询;:工资查询; 文件数为文件数为1 1:职工工资表;:职工工资表; 外部接口数为外部接口数为2 2:人事查询、职工信息。:人事查询、职工信息。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 影响因子分布影响因子分布 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点计算值功能点计算值 假定功能点的复杂性均为假定功能点的复杂性均为“简单级简单级”, 且且C1=0.65C1=0.65,C2=0.01C2=0.01,则:,则: UFP=WUFP=

23、W1 1CC1 1+W+W2 2CC2 2+W+W3 3CC3 3+W+W4 4CC4 4+W+W5 5CC5 5=3=3* *4+44+4* *3+33+3* *1+71+7* *1+51+5* *2=442=44 F F1 1+F+F2 2+.+F+.+F14 14=5+4+0+1+1+3+2+0+1+1+3+2+2+3=28 =5+4+0+1+1+3+2+0+1+1+3+2+2+3=28 FP=44FP=44* *(0.65+0.010.65+0.01* *2828)=40.92=40.92 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 一些研究表明:功能点的值可以用来一些研

24、究表明:功能点的值可以用来 估算系统整体实现后软件的大小估算系统整体实现后软件的大小 (规模)(规模) 如一个如一个FPFP转换成大概转换成大概6060行代码,行代码, 则整个系统大概有则整个系统大概有6060* *40.92=245540.92=2455行行 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点的应用功能点的应用 可使用源代码行数方法规范软件生产率或下列可使用源代码行数方法规范软件生产率或下列 其他属性的测量:其他属性的测量: 每个功能点(每个功能点(FPFP)的错误数;)的错误数; 每个功能点(每个功能点(FPFP)的缺陷数;)的缺陷数; 每个月完成的功能点(每

25、个月完成的功能点(FPFP)数;)数; 每个功能点(每个功能点(FPFP)的文档页数;)的文档页数; 每个功能点(每个功能点(FPFP)的成本)的成本。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 功能点方法的不足功能点方法的不足 如何划分功能点类(即如确定那些是用户输入,如何划分功能点类(即如确定那些是用户输入, 哪些是外部接口等)不同的人有不同的看法;哪些是外部接口等)不同的人有不同的看法; F Fi i和和C C1 1、C C2 2的确定也是主观的;的确定也是主观的; 功能点方法最初主要是用于商业信息系统应用功能点方法最初主要是用于商业信息系统应用 软件中,只强调了数据成份

26、,从而对于强调功软件中,只强调了数据成份,从而对于强调功 能及控制的非数据处理软件(如嵌入式软件、能及控制的非数据处理软件(如嵌入式软件、 过程控制软件等)并不适用。过程控制软件等)并不适用。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.2.2 6.2.2 基于软件设计的复杂性分析基于软件设计的复杂性分析 概要设计复杂性度量主要集中在软件结构的特概要设计复杂性度量主要集中在软件结构的特 征上。征上。 CardCard和和GlassGlass定义了三种软件设计复杂度测度:定义了三种软件设计复杂度测度: 结构复杂度、数据复杂度和系统复杂度。其定结构复杂度、数据复杂度和系统复杂度。

27、其定 义分别如下:义分别如下: 模块模块i i的结构复杂度的结构复杂度S S(i i)=f=f2 2out out(i) (i); 模块模块i i的数据复杂度的数据复杂度D D(i i)=V=V(i i)/f/fout out( (i i)+1+1; 系统复杂度系统复杂度C C(i i)=S=S(i i)+D+D(i i);); 其中其中f fout out( (i i)表示模块)表示模块i i的扇出,的扇出,V V(i i)表示模块)表示模块i i 的输入的输入/ /输出变量的个数。输出变量的个数。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 设计结构质量指标(设计结构质量指标

28、(DSQIDSQI)方法)方法 从数据和体系结构设计中获得数据:从数据和体系结构设计中获得数据: S S1 1= =软件结构中定义的模块总数软件结构中定义的模块总数 S S2 2= =正确功能依赖于输入源数据或产生在其他地方使正确功能依赖于输入源数据或产生在其他地方使 用的数据的模块数用的数据的模块数 S S3 3= =正确功能依赖于前导处理的模块数正确功能依赖于前导处理的模块数 S S4 4= =数据库中项目数(包括数据对象和所有定义对象数据库中项目数(包括数据对象和所有定义对象 的属性)的属性) S S5 5= =特殊数据库项目总数特殊数据库项目总数 S S6 6= =数据库段数目(不同的

29、记录或单个对象)数据库段数目(不同的记录或单个对象) S S7 7= =有单个入口和出口的模块数目(异常处理不被看有单个入口和出口的模块数目(异常处理不被看 作是多重出口)作是多重出口) 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 根据根据S S1 1S S7 7计算如下中间数据计算如下中间数据 程序结构:程序结构:D D1 1=1=1或或0 0 (如果软件结构是用明确的方法设计,(如果软件结构是用明确的方法设计, 如面向数据流设计,则如面向数据流设计,则D D1 1=1=1,其它,其它D D1 1=0=0) 模块独立性:模块独立性:D D2 2=1-=1-(S S2 2/S/S

30、1 1) 模块不依赖于前导处理:模块不依赖于前导处理:D D3 3=1-=1-(S S3 3/S/S1 1) 数据库大小:数据库大小:D D4 4=1-=1-(S S5 5/S/S4 4) 数据库分区:数据库分区:D D5 5=1-=1-(S S6 6/S/S4 4) 模块出模块出/ /入口特性:入口特性:D D6 6=1-=1-(S S7 7/S/S1 1) 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 根据根据D D1 1D D6 6计算计算DSQIDSQI的值的值 DSQI=WDSQI=W1 1D D1 1+W+W2 2D D2 2+W+W3 3D D3 3+W+W4 4D

31、D4 4+W+W5 5D D5 5+W+W6 6D D6 6 其 中其 中 W W i i 是 每 个 中 间 值 的 重 要 性 的 相 对 值 且是 每 个 中 间 值 的 重 要 性 的 相 对 值 且 W W1 1+W+W2 2+.+W+.+W6 6=1=1 如果计算出来的如果计算出来的DSQIDSQI明显低于明显低于平均值,则意味着应平均值,则意味着应 进一步改进设计;同样,如果要对一个现存的设计进一步改进设计;同样,如果要对一个现存的设计 做重要的改动,这些改动对做重要的改动,这些改动对DSQIDSQI的影响也可以被计的影响也可以被计 算出来。算出来。 武汉纺织大学数学与计算机学院

32、武汉纺织大学数学与计算机学院 McCabeMcCabe环形计数法环形计数法 详细设计复杂性度量主要集中在模块内详细设计复杂性度量主要集中在模块内 部结构的复杂性上。部结构的复杂性上。 程序环形复杂度程序环形复杂度V V(G G)= =程序流程图中的程序流程图中的“判定数判定数”+1+1 = =程序图中的程序图中的“环形数环形数”。 =m-n+2=m-n+2 其中其中m m对应于程序图中的弧数,对应于程序图中的弧数,n n对应于程序图中的节点数。对应于程序图中的节点数。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 例子例子 从程序流程图可看出从程序流程图可看出“判定判定 数数”为为

33、8 8;从程序图可看出,;从程序图可看出, 图中的弧数为图中的弧数为2626条,图中节条,图中节 点数为点数为1919个;若将入口节点个;若将入口节点 之后一个节点和出口节点之之后一个节点和出口节点之 前一个节点用弧线连起来并前一个节点用弧线连起来并 使弧头指向前者,则图中存使弧头指向前者,则图中存 在在9 9个不同的封闭环域。因个不同的封闭环域。因 此,其对应的环形复杂度为此,其对应的环形复杂度为 9 9。 McCabeMcCabe研究大量程序后发现,研究大量程序后发现, 环形复杂度高的程序往往是环形复杂度高的程序往往是 最易出问题的程序。实践表最易出问题的程序。实践表 明,模块规模以环形复

34、杂度明,模块规模以环形复杂度V V (G G)1010为宜。为宜。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.2.3 6.2.3 基于源程序代码的复杂性分析基于源程序代码的复杂性分析 霍尔斯特德(霍尔斯特德(HalsteadHalstead)根据源代码中)根据源代码中运算符运算符 和操作数和操作数的测量值来度量源程序代码的复杂度。的测量值来度量源程序代码的复杂度。 在在HalsteadHalstead方法中,运算符是指用来处理程序方法中,运算符是指用来处理程序 中常量和变量的语法元素等,如算术运算符、中常量和变量的语法元素等,如算术运算符、 逻辑运算符、关系运算符、流程控制

35、语句、函逻辑运算符、关系运算符、流程控制语句、函 数调用等;操作数则是指源程序代码中的常量数调用等;操作数则是指源程序代码中的常量 和变量等。但对非执行语句,如注释,则不进和变量等。但对非执行语句,如注释,则不进 行考虑。行考虑。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 HalsteadHalstead方法的基本测量数据方法的基本测量数据 程序中运算符总数程序中运算符总数N N1 1 程序中操作数总数程序中操作数总数N N2 2 程序中运算符种类数程序中运算符种类数n n1 1 程序中操作数种类数程序中操作数种类数n n2 2 武汉纺织大学数学与计算机学院武汉纺织大学数学与计

36、算机学院 源程序代码复杂性度量源程序代码复杂性度量 实际程序长度实际程序长度N=NN=N1 1+N+N2 2 编程语言层次编程语言层次L=L=(2/n2/n1 1)* *(n(n2 2/N/N2 2) ) 程序容量程序容量 V=(NV=(N1 1+N+N2 2) )* *loglog2 2(n(n1 1+n+n2 2) ) 预测程序长度预测程序长度N N= n= n1 1* *loglog2 2n n1 1+n+n2 2* *loglog2 2n n2 2 (可在详细设计(可在详细设计 后进行预测)后进行预测) 估计程序工作量估计程序工作量 E E=V/L=(n=V/L=(n1 1* *N N

37、2 2* *(N(N1 1+N+N2 2) )* *loglog2 2(n(n1 1+n+n2 2)/(2)/(2* *n n2 2) ) 预测程序错误数预测程序错误数E E=(N N1 1+N+N2 2) )* *loglog2 2(n(n1 1+n+n2 2)/3000)/3000 有人曾对有人曾对300300条到条到1200012000条语句范围内的程序条语句范围内的程序 验证上述公式,结果发现预测的错误数与实验证上述公式,结果发现预测的错误数与实 际拥有错误数相比误差在际拥有错误数相比误差在8%8%以内。以内。 V V会随编程语言的不同而不同(对同一功能的程序,会随编程语言的不同而不同

38、(对同一功能的程序, 用高级语言来写要比低级语言来写得到的程序对应用高级语言来写要比低级语言来写得到的程序对应 的的V V要小),它代表了写一个程序所需的信息量(以要小),它代表了写一个程序所需的信息量(以 位为单位)。位为单位)。L L反映的是程序最简洁形式时的容量与反映的是程序最简洁形式时的容量与 程序实际容量之比。程序实际容量之比。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 例子:冒泡排序程序模块例子:冒泡排序程序模块 SORT(int *x, int n) /*冒泡排序冒泡排序*/ int i,j,temp; if (n1) return; for (i=1;in;i+

39、) for (j=0;j=xj) continue; temp=xi; xi=xj; xj=temp; /*冒泡排序模块结束冒泡排序模块结束*/ 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 测量数据测量数据 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 计算结果计算结果 .N=N1+N2=30+26=56 .L=(2/n1)*(n2/N2)=(2/11)*(7/26)=0.049 .V=(N1+N2)*log2(n1+n2)=233 .N=n1*log2n1+n2*log2n2=58 .E=V/L=4765 .E=((N1+N2)*log2(n1+n2))/3000=

40、0.0776 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.2.4 6.2.4 基于软件维护的复杂性分析基于软件维护的复杂性分析 IEEEIEEE建议采用一种软件成熟度指标建议采用一种软件成熟度指标 (SMISMI),以提供对软件产品的稳定性指),以提供对软件产品的稳定性指 示(基于为每一软件产品发布而做的变示(基于为每一软件产品发布而做的变 化)。化)。 将将SMISMI和维护工作量联系起来,形成一个和维护工作量联系起来,形成一个 经验模型,则可用来度量软件维护的复经验模型,则可用来度量软件维护的复 杂性。杂性。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 SM

41、ISMI方法方法 基本测量数据如下:基本测量数据如下: 当前发布软件中的模块数当前发布软件中的模块数M MT T; 当前发布软件中已经改变的模块数当前发布软件中已经改变的模块数F Fc c; 当前发布软件中已经添加的模块数当前发布软件中已经添加的模块数F Fa a; 当前发布软件中已经删除的前一次发布软件中的模块数当前发布软件中已经删除的前一次发布软件中的模块数F Fd d。 则软件成熟度指标按下式进行计算:则软件成熟度指标按下式进行计算: SMI=MSMI=MT T- -(F Fa a+F+Fc c+F+Fd d)/M/MT T 当当SMISMI接近接近1 1的时候,产品便开始稳定。的时候,

42、产品便开始稳定。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.3 6.3 软件可靠性分析软件可靠性分析 按照按照ISO/IEC 9126-1991ISO/IEC 9126-1991的解释,软件可靠性的解释,软件可靠性 是与是与在规定的一段时间和条件下,软件维持其在规定的一段时间和条件下,软件维持其 性能水平的能力有关的一组属性。性能水平的能力有关的一组属性。 一般说来,软件可靠性分析要用到概率统计方一般说来,软件可靠性分析要用到概率统计方 法,通过不断测试取得有关测试数据,然后根法,通过不断测试取得有关测试数据,然后根 据测试结果构造可靠性模型,以分析实际达到据测试结果构造可

43、靠性模型,以分析实际达到 的可靠性。基于这一点,软件可靠性可定义为的可靠性。基于这一点,软件可靠性可定义为 软件在给定的时间间隔及规定的使用环境条件软件在给定的时间间隔及规定的使用环境条件 下,按分析和设计规定的要求成功地运行程序下,按分析和设计规定的要求成功地运行程序 的概率。的概率。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.3.1 6.3.1 软件可靠性三要素软件可靠性三要素 软件可靠性的主要因素:失效、时间和环境软件可靠性的主要因素:失效、时间和环境 失效失效:是指最后执行结果与有关规格不相符是指最后执行结果与有关规格不相符 或用户在软件系统边界觉察到不期望的软件或

44、用户在软件系统边界觉察到不期望的软件 出错出错行为。行为。 时间:时间:三种度量方式三种度量方式 (1 1)执行时间:实际耗费的)执行时间:实际耗费的CPUCPU时间时间 (2 2)日期时间:通常年、月、周、日)日期时间:通常年、月、周、日 (3 3)时钟时间:运行软件时计算机花费的累积)时钟时间:运行软件时计算机花费的累积 时间时间 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 基本概念基本概念 1.1.软件可靠性的定义软件可靠性的定义 程序在给定的程序在给定的时间间隔时间间隔内,按照规格说明书的规定成功地内,按照规格说明书的规定成功地 运行的运行的概率概率。 2.2.软件的可用

45、性软件的可用性 程序在给定的程序在给定的时间点时间点,按照规格说明书的规定成功地运行,按照规格说明书的规定成功地运行 的概率。的概率。 如果在一段时间间隔内,软件系统故障停机时间分别为如果在一段时间间隔内,软件系统故障停机时间分别为t td1 d1, , t td2 d2, ,正常运行时间分别为,正常运行时间分别为t tu1 u1, ,t tu2 u2. . 0t tu1td1tu2td2 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 downup up ss TT T A MTTRMTTF MTTF Ass 其中其中 T Tup up = t = tui ui, Tdown =

46、tdi , Tdown = tdi MTTF(Mean time to failure) MTTF(Mean time to failure):平均无故障时间:平均无故障时间 MTTR(Mean time to repair)MTTR(Mean time to repair):平均维修时间:平均维修时间 则则 系统的稳态可用性为系统的稳态可用性为 : 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 平均失效等待时间(平均失效等待时间(Mean Time To FailureMean Time To Failure,MTTFMTTF) 平均无故障时间,观察到下次失效的期望时间平均无故障

47、时间,观察到下次失效的期望时间 平均失效间隔时间(平均失效间隔时间(Mean Time Between FailureMean Time Between Failure,MTBFMTBF) 两次失效的期望间隔时间两次失效的期望间隔时间 平均修复时间(平均修复时间(Mean Time To RepairMean Time To Repair,MTTRMTTR) 失效后修复系统所需要的期望时间失效后修复系统所需要的期望时间 三者关系:三者关系: MTBF=MTTF+MTTRMTBF=MTTF+MTTR。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 环境环境:软件运行时所需要的支持系统

48、及有关的因素。软件运行时所需要的支持系统及有关的因素。 软件可靠性、硬件可靠性和操作可靠性三者综合起软件可靠性、硬件可靠性和操作可靠性三者综合起 来反映整个计算机系统的可靠性。来反映整个计算机系统的可靠性。 规定软件的使用环境可用来判定系统失效是否由于规定软件的使用环境可用来判定系统失效是否由于 软件失效引起。软件失效引起。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 6.3.2 6.3.2 软件可靠性模型软件可靠性模型 软件可靠性同硬件可靠性一样,都可看软件可靠性同硬件可靠性一样,都可看 成是随机过程,成是随机过程,用概率分布来描述用概率分布来描述。但。但 软件可靠性与硬件可靠

49、性的分析却不完软件可靠性与硬件可靠性的分析却不完 全相同。一方面,全相同。一方面,软件不会老化软件不会老化,其可,其可 靠性不随时间增加而减少;另一方面,靠性不随时间增加而减少;另一方面, 软件软件失效常常是由于软件分析或设计引失效常常是由于软件分析或设计引 起起。这样使软件可靠性分析变得非常复。这样使软件可靠性分析变得非常复 杂。杂。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 Jelinski-MorandaJelinski-Moranda模型模型 JelinskiJelinski和和MorandaMoranda于于19721972年开发的可靠性分年开发的可靠性分 析模型是最

50、早建立且仍被人们使用的模型之一,析模型是最早建立且仍被人们使用的模型之一, 简称简称J-MJ-M模型。模型。 应用:应用:19721972年年JelinskiJelinski和和MorandaMoranda分析了美国分析了美国 海军舰队计算中心的数据,对程序固有错误数海军舰队计算中心的数据,对程序固有错误数 的估计为的估计为31.231.2,而程序在使用和再测试中发现,而程序在使用和再测试中发现 的错误数共有的错误数共有3434个,如果排错很彻底,可认为个,如果排错很彻底,可认为 这就是固有错误总数,这样,估计值略低于实这就是固有错误总数,这样,估计值略低于实 际值。际值。 武汉纺织大学数学与

51、计算机学院武汉纺织大学数学与计算机学院 模型的基本假设模型的基本假设 错误检测率与当前软件错误数成比例;错误检测率与当前软件错误数成比例; 在错误发生间隔期间错误检测率为常数;在错误发生间隔期间错误检测率为常数; 出现错误出现错误即刻修正即刻修正,不使新的错误引入软件;,不使新的错误引入软件; 软件运行方式与可靠性预测方式相同;软件运行方式与可靠性预测方式相同; 每个错误出现机会相等,且所有错误的严重程度相每个错误出现机会相等,且所有错误的严重程度相 同;同; 错误被查出时,失效是独立的。错误被查出时,失效是独立的。 假设假设确保在某一特定环境下使用数据采集进行模确保在某一特定环境下使用数据采

52、集进行模 型评价的正确性。假设型评价的正确性。假设确保不同的失效率都具有确保不同的失效率都具有 相同的分布特性。最后一个假设可简化推导过程。相同的分布特性。最后一个假设可简化推导过程。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 J-MJ-M模型计算模型计算 只能用数值法求解, 需选择一个初值,再 依据初值之输入后得 到的结果重新选择数 据逐次逼近。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 例子例子 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 ShoomanShooman模型(模型(19721972) ShoomanShooman模型总的思想为:失

53、效率与软件模型总的思想为:失效率与软件 中残留错误数成比例,且失效之间的失中残留错误数成比例,且失效之间的失 效率为常数,而在消除错误时,失效率效率为常数,而在消除错误时,失效率 也以相同比率下降。也以相同比率下降。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 模型的基本假设模型的基本假设 失效率与软件潜在的错误数成比例;失效率与软件潜在的错误数成比例; 所有失效发生的概率相同,且彼此独立;所有失效发生的概率相同,且彼此独立; 所有错误的严重程度相同;所有错误的严重程度相同; 软件运行方式与可靠性预测方式相同;软件运行方式与可靠性预测方式相同; 引起失效的错误被及时修正,在修正过

54、引起失效的错误被及时修正,在修正过 程中不会引入新的错误。程中不会引入新的错误。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 估算平均无故障时间估算平均无故障时间MTTFMTTF的方法的方法 1.1.符号符号 E ET T测试之前程序中的故障总数;测试之前程序中的故障总数; I IT T测试长度(机器指令总数);测试长度(机器指令总数); 测试(包括调试)时间;测试(包括调试)时间; E Ed d( ()在在0 0到期间发现的错误数;到期间发现的错误数; E Ec c( () ) 在在0 0到期间改正的错误数。到期间改正的错误数。 2.2.基本假定基本假定 (1 1)在类似的程序

55、中,单位长度里的故障数)在类似的程序中,单位长度里的故障数E ET T / I / IT T 近似为常数。近似为常数。 0.5 0.5 10 10-2 -2 E ET T / I / IT T 2 2 10 10-2 -2 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 (2 2)失败率正比于软件中剩余的(潜藏的)故障数,)失败率正比于软件中剩余的(潜藏的)故障数, 而平均无故障时间而平均无故障时间MTTFMTTF与剩余的故障数成反比。与剩余的故障数成反比。 为了简化,假设发现的每一个错误都立即正确地改为了简化,假设发现的每一个错误都立即正确地改 正了(调试过程没有引入新的故障),因

56、此正了(调试过程没有引入新的故障),因此 E Ed d( () = E) = Ec c( () ) 剩余的故障数为剩余的故障数为 E Er r( () = E) = ET T E Ec c( () ) 单位长度程序中剩余的故障数为单位长度程序中剩余的故障数为 r r( () = E) = ET T / I / IT T E Ec c( () / I) / IT T 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 )/ )(/( 1 TCT IEIEK MTTF T MTTFK I EE T TC 3. 3. 估算平均无故障时间估算平均无故障时间 经验表明,平均无故障时间与单位长度程序

57、中经验表明,平均无故障时间与单位长度程序中 剩余的错误数成反比,即剩余的错误数成反比,即 其中其中K K为常数,它的值应该根据经验选取。美国为常数,它的值应该根据经验选取。美国 的一些统计数字表明,的一些统计数字表明,K K的典型值是的典型值是200200。因此,因此, 也可以根据对软件平均无故障时间的要求,估计也可以根据对软件平均无故障时间的要求,估计 需要改正多少个错误之后,测试工作才能结束。需要改正多少个错误之后,测试工作才能结束。 换个角度看问题换个角度看问题 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 4. 4. 估计错误总数的方法估计错误总数的方法 (1) Gilb(

58、1) Gilb植错模型植错模型: :植入错误法植入错误法 使用这种估计方法,在测试之前由专人在程使用这种估计方法,在测试之前由专人在程 序中随机地植入一些错误,测试之后,根据测试小序中随机地植入一些错误,测试之后,根据测试小 组发现的错误中原有的和植入的两种错误的比例,组发现的错误中原有的和植入的两种错误的比例, 来估计程序中原有错误的总数来估计程序中原有错误的总数E ET T。 假设人为地植入的错误数为假设人为地植入的错误数为N Ns s,经过一段时间,经过一段时间 的测试之后发现的测试之后发现n ns s个植入的错误,此外还发现了个植入的错误,此外还发现了n n 个原有的错误。个原有的错误

59、。 还有一个问题还有一个问题 ET = ? 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 Ns n ns 如果可以认为测试方案发现植入错误和发现原有错误如果可以认为测试方案发现植入错误和发现原有错误 的能力相同,则能够估计出程序中原有错误的总数为的能力相同,则能够估计出程序中原有错误的总数为 T SS S E n n N N n N n 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院 (2 2) HymanHyman分别测试模型分别测试模型: :分别测试法分别测试法 思路:如果有办法随机地将程序中的一部分原有的思路:如果有办法随机地将程序中的一部分原有的 故障加上标记,然

60、后根据测试过程中发现的有标记故障加上标记,然后根据测试过程中发现的有标记 故障和无标记故障的比例,估计程序中的故障总数。故障和无标记故障的比例,估计程序中的故障总数。 方法:由两个测试员甲和乙分别测试同一个程序的方法:由两个测试员甲和乙分别测试同一个程序的 两个副本,由另一个分析员分析他们的测试结果。两个副本,由另一个分析员分析他们的测试结果。 用表示测试时间,假设用表示测试时间,假设 =0=0时故障总数为时故障总数为B B0 0; = = 1 1时测试员甲发现的故障数为时测试员甲发现的故障数为B B1 1; = = 1 1时测试员乙发现的故障数为时测试员乙发现的故障数为B B2 2; = =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论