软件工程-第十一章.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程-第十一章

11.1 概述 11.1.1 软件质量的定义 软件质量定义为: (1) 与所确定的功能和性能需求的一致性。 (2) 与所成文的开发标准的一致性。 (3) 与所有专业开发的软件所期望的隐含特性的一致性。 11.1.2 软件质量的度量和评价 影响软件质量的因素可以分为两大类: (1) 可以直接度量的因素,如单位时间内千行代码(KLOC)中产生的错误数。 (2) 只能间接度量的因素,如可用性或可维护性。 在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件质量特性进行度量,以测定软件具有要求质量特性的程度。 11.1.3 软件质量保证 1. 什么是软件质量保证 软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。 2. 质量保证的策略 质量保证策略的发展大致可以分为以下三个阶段: (1) 以检测为重。产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。 (2) 以过程管理为重。把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制。 (3) 以新产品开发为重。 3. 质量保证的主要任务 (1) 正确定义用户要求。 (2) 技术方法的应用。 (3) 提高软件开发的工程能力。 (4) 软件的复用。 (5) 发挥每个开发者的能力。 (6) 组织外部力量协作。 (7) 排除无效劳动。最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。 (8) 提高计划和管理质量。 4. 质量保证与检验 软件质量必须在设计和实现过程中加以保证。 11.2 质量度量模型 11.2.1 McCall质量度量模型 这是McCall等人于1979年提出的软件质量模型。针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下: (1) 面向软件产品操作。 (2) 面向软件产品修改。 (3) 面向软件产品适应。 11.2.2 ISO的软件质量评价模型 软件质量度量模型由三层组成。 11.3 软件复杂性 11.3.1 软件复杂性的基本概念 软件复杂性度量的参数很多,主要有: (1) 规模,即总共的指令数,或源程序行数。 (2) 难度,通常由程序中出现的操作数的数目所决定的量来表示。 (3) 结构,通常用于程序结构有关的度量来表示。 (4) 智能度,即算法的难易程度。 软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。 要求复杂性度量满足以下假设: (1) 它可以用来计算任何一个程序的复杂性。 (2) 对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算。 (3) 如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。 11.3.2 软件复杂性的度量方法 1. 代码行度量法 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量。 2. McCabe度量法 McCabe度量法是由Thomas McCabe提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说,把程序流程图的每一个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。 程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作分支和循环的具体条件。因此,它往往把一个简单的IF语句与循环语句的复杂性看成是一样的,把嵌套的IF语句与CASE的复杂性看成是一样的。下面给出计算环路复杂性的方法,如图11-4所示。 根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出: V(G)=m-n+2p 其中,V(G)是有向图G中环路数,m是图G中弧数,n是图G中结点数,p是图G中强连通分量个数。在一个程序中,从程序图的入口点总能到达图中任何一个结点,因此,程序总是连通的,但不是强连通的

文档评论(0)

a888118a + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档