《软件工程与项目管理》第8章软件质量保证.ppt
《《软件工程与项目管理》第8章软件质量保证.ppt》由会员分享,可在线阅读,更多相关《《软件工程与项目管理》第8章软件质量保证.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 软件质量保证掌握:掌握:软件质量的定义、软件质量的特性与度量、软件质量保证、软件质量模型、软件复杂性的度量方法、软件可靠性、软件评审、容错软件。8.1 软件质量概述8.1.1 软件质量的定义 清华大学的郑人杰教授认为,软件质量主要反映了以下3方面的问题:(1)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。(2)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。(3)往往会有一些隐含的需求没有明确地提出来,例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求,而没有满足这些隐含的需求,软件质
2、量也不能保证。8.1.2 软件质量的特性与度量 软件测试的目的就是为了发现错误并纠正错误,可以将其总结为以下几点:(1)测试是一个程序的执行过程,它的目的在于发现错误。(2)一个好的测试用例极可能发现至今未发现的错误。(3)一个成功的测试是发现了至今末发现的错误的测试。1功能性 由功能及与其指定的性质有关的一组属性组成,包括:(1)适合性 (2)准确性 (3)互用性 (4)依从性 (5)安全性 2可靠性 由与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性组成,包括:(1)成熟性 (2)容错性 (3)易恢复性 3易用性 由与一组规定或潜在的用户为使用软件所需作的努力和对这样的使
3、用所作的评价有关的一组属性组成,包括:(1)易理解性 (2)易学性 (3)易操作性 4效率 在规定的条件下,软件的性能水平与所使用资源之间存在一定的关系,与这个关系有关的一组属性,是衡量效率的标准,这些属性包括:(1)时间特性 (2)资源特性 5可维护性 由与为进行指定的修改而所需的努力有关的一组属性组成,包括:(1)易分析性 (2)易改变性 (3)稳定性 (4)易测试性 6可移植性 由与软件可从某一环境转移到另一环境的能力有关的一组属性组成,包括:(1)适应性 (2)易安装性 (3)遵循性 (4)易替换性 8.1.3 软件质量保证 所谓软件质量保证,就是建立一套有计划、有系统的方法,来向管理
4、层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的主要手段,是对软件产品和活动进行评审和审计,以此来验证软件是合乎标准的。在软件开发的各个阶段实施的软件质量保证检验项目如下:1需求分析阶段 主要检测开发目的、目标值、开发量(程序、文档)、所需资源、各阶段的产品和作业内容、开发体制等的合理性。2设计阶段 检验项目包括产品的量(计划量、实际量)、评审量、差错数、检出差错的内容、评审方法和覆盖性、出错原因、处理情况及对该阶段的影响、评审结束和阶段结束的判断标准等。3实现阶段 检验项目包括设计阶段的所有检验项目,另外还包括:计算机使用时间、测试环境、测试项目设定种类、测试用
5、例的设计方法等。4验收阶段 检验项目主要是说明书检查(检查与被检查程序有关的用户文档等)和程序检查(为了评价和保证程序质量,采用各种黑盒测试或白盒测试手段进行检查)。5运行维护阶段 主要是掌握用户使用产品的质量情况,并反馈给开发部门。8.2 软件质量模型8.2.1 McCall质量度量模型图8-1 McCall模型的3个层次与11个特性8.2.2 ISO软件质量评价模型 国际标准化组织ISO制定的ISO质量度量模型由3层组成,分别是:(1)高层,称为“软件质量需求评价准则”。(2)中层,称为“软件质量设计评价准则”。(3)低层,称为“软件质量度量评价准则”。ISO认为,应对高层和中层建立国际标
6、准,而低层可由各使用单位视实际情况制定相关标准。同时,按照ISOIEC9126质量特性国际标准,第一层(即ISO质量度量模型中的“高层”)称为质量特性,第二层(即ISO质量度量模型中的“中层”)称为质量子特性,第三层(即ISO质量度量模型中的“低层”)称为度量。该标准定义了6个质量特性,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并推荐了21个子特性,如适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可理解性、易学习性、操作性、时间特性、资源特性、可分析性、可变更性、稳定性、可测试性、适应性、可安装性、一致性、可替换性,但不作为标准。8.3 软件复杂性8.3.1 软
7、件复杂性的基本概念软件复杂性是指软件的复杂程度。(1)规模:即总共的指令或源程序行数。(2)难度:通常由程序中出现的操作数的数量来表示。(3)结构:通常用与程序结构有关的度量来表示。(4)智能度:即算法的难易程度。8.3.2 软件复杂性的度量方法软件复杂性度量是对软件复杂性的定量描述,是软件复杂性分析和控制的基础,它针对不同对象,从不同角度选用不同方法来描述软件的复杂性。软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性,它直接关系到软件开发费用、开发周期和软件内部潜伏错误的多少,同时也可用于度量软件的可理解性。要求复杂性度量满足以下假设:(1)软件复杂性度量可以用来计算任
8、何一个程序的复杂性。(2)对于不合理的程序,如长度动态增长的程序,或者对于原则上无法排错的程序,则不应当使用软件复杂性度量进行复杂性计算。(3)程序中指令条数、附加存储量、计算时间增多不会减少程序的复杂性。1长度度量 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量。2Halstead度量 Halstead度量法通过计算程序中的运算符和操作数的数量对程序的复杂性加以度量。设n1表示程序中不同运算符的个数,n2表示程序中不同操作数的个数,N1表示程序中实际运算符的总数,N2表示程序中实际操作数的总数。令H表示程
9、序的预测长度,Halstead给出H的计算公式为:H=n1log2n1+n2log2n2;令N表示实际的程序长度,其定义为:N=N1+N2。3McCabe度量 该度量方法由McCabe提出,又称为环路复杂性度量方法,其步骤是:(1)将程序流程图中的每个处理符号看作一个节点,流程图中的流程线看作有向弧,从而将流程图转换为一个有向图。(2)从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。(3)定义环路复杂性的计算公式为:V(G)=m n+p 其中,V(G)是有向图G中的环路数;m是图G中的弧数;n是图G中的节点数;P是图G中的强连通分量。也可简单地将环路复杂性看作有向图中有向弧所封
10、闭的区域个数。例如,如图8-2(a)所示的程序流程图对应的有向图如图8-2(b)所示。因为节点数n=11,弧数m=13,强连通分量p=1,因此,环路复杂性V(G)=3。图8-2 McCabe复杂性度量的例子8.3.3 软件复杂性控制(1)控制结构和数据结构复杂的程序较复杂。(2)转向语句使用不当的程序较复杂。(3)非局部量较多的程序较复杂。(4)按地址调用参数比按值调用参数复杂。(5)模块及过程之间联系密切的程序较复杂。(6)嵌套深度越大,程序越复杂。(7)循环结构复杂性大于选择结构和顺序结构的复杂性。(8)宽度是软件复杂性的主要形成原因。8.4 软件可靠性8.4.1 软件可靠性的定义 1软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程与项目管理 软件工程 项目 管理 软件 质量保证
限制150内