软件度量课件_第1页
软件度量课件_第2页
软件度量课件_第3页
软件度量课件_第4页
软件度量课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第13章 软件度量 软件度量课件第13章 软件度量 13.1 软件度量软件度量 13.2 面向规模的度量面向规模的度量 13.3 面向功能的度量面向功能的度量 13.4 软件质量的度量软件质量的度量 13.5 在软件过程中集成度量数据在软件过程中集成度量数据 13.6 小结小结 第13章 软件度量 软件度量课件13.1 13.1 软软 件件 度度 量量图13.1 软件度量面向规模的度量面向功能的度量面向个人的度量生产率度量产品质量度量技术度量第13章 软件度量 软件度量课件 在软件工程中,度量的方式分直接度量和间接度量两种: (1) 直接度量:对过程的直接度量包括度量投入的成本、完成的工作量等

2、等;对产品的直接度量包括产生的代码行数LOC、文档的页数、缺陷数/千代码行、软件执行速度等等。第13章 软件度量 软件度量课件 (2) 间接度量:软件的正确性、效率、可靠性、可维护性、可用性等难以直接度量。一般通过对其他项目直接度量的结果进行分析,获取对本项目的间接度量结果。 软件度量的内涵及其种类可以参见图13.1。 生产率度量主要集中在软件工程过程的输出;产品质量度量反映产品满足用户需求的程度;技术度量主要集中在软件的一些技术特性上(如复杂度、聚合度、耦合度等等)。从另一个方面看,面向规模的度量用以收集与直接度量有关的软件工程输出的信息和质量信息;面向功能的度量提供直接度量的尺度;面向个人

3、的度量收集个人工作方式与效率方面的信息。第13章 软件度量 软件度量课件13.2 13.2 面向规模的度量面向规模的度量表表13.1 13.1 面向规模的度量数据样例面向规模的度量数据样例项目名称代码行(KLOC)工作量(人月)成本(千元)文档页数错误(发布前)缺陷(一年内)人数项目112124168134293项目227262440321865项目32024331425664610501224365第13章 软件度量 软件度量课件 可以根据面向规模的基本度量数据作一些简单的计算分析,进行面向规模的生产率、质量和单位成本的间接度量,例如:生产率 = KLOC/人月质量 = 错误数/KLOC单位

4、成本 = 成本数 / KLOC第13章 软件度量 软件度量课件 坚持进行度量并记录度量结果,可以积累组织的历史数据财富。利用这样的历史数据,能够更科学地把握自己的工程能力,对以后的工程项目作出更为精确的估算。以KLOC为基本度量单位的面向规模的度量曾经发挥过很好的作用,但是也一直存在着争议。争议的焦点是千代码行KLOC作为关键度量准则的合理性。使用KLOC作为关键度量准则已经有大量的案例,并且许多著名的度量模型也直接以KLOC作为输入;但是,这种方法明显地不适应采用非过程化语言进行开发的实践,对于项目估算也存在一定的不便,因为在项目开发初期,也没有现成的KLOC数据可用。随着面向对象方法的应用

5、,也有人提出了以系统的对象数作为基本度量单位进行规模度量的方法。第13章 软件度量 软件度量课件13.3 13.3 面向功能的度量面向功能的度量 面向功能的度量是对软件和软件开发过程的一种间接度量方法。这种方法并不把注意力集中在生产结果(KLOC)上,而是以未来软件应当满足的“功能性”、“实用性”作为度量的原始依据。因为“功能”不能直接度量,所以,必须通过其他直接的度量来导出。实用性要求在度量过程中被用作计算权值。面向功能的度量基本单位是“功能点”(FP)。计算方法参见图13.2,计算过程中的各参数解释如下:第13章 软件度量 软件度量课件 (1) 用户输入数(EI):每个EI应当是面向不同应

6、用的输入数据。输入数据有别于查询数据,它们应当分别计数。 (2) 用户输出数(EO):各个EO应当是为用户提供的面向应用的输出数据。这里的输出是指报表、屏幕信息、错误提示等等,报表中的各个数据项不再分别计数。 (3) 用户查询(EQ):EQ是一种联机输入,它引发软件以联机方式产生某种即时响应。每一种不同的查询都要计数。第13章 软件度量 软件度量课件 (4) 内部逻辑文件(ILF):每一个逻辑主文件都应当计数。所谓的逻辑主文件,是指逻辑上的一组数据组合。它们可以是数据库的一部分,也可以是一个单独的文件。 (5) 外部接口(EIF):对所有用来将信息传送到另一个系统中或从另一系统接收数据的接口均

7、应计数。第13章 软件度量 软件度量课件图13.2 功能点度量的计算加权因子测量参数用户输入数用户输出数用户查询数内部文件数外部接口数总计数值计数*346简单 平均 复杂*457*346*71015*5710第13章 软件度量 软件度量课件 通过对软件需求的分析,不难搜集到上述五类数据。之后就可以按照下式计算软件的功能点总数:FP = 总计数值 0.65+0.01Fi 其中,“总计数值”是根据图13.2所计算出来的原始功能点数;Fi 是按照表13.2计算出来的系统难度系数。i的取值从114。SUM( )是求和函数。求得了FP值之后,就可以以它为基础,通过简单的计算,结合一些历史数据,间接地度量

8、出软件的生产率、质量和其他一些属性。例如:第13章 软件度量 软件度量课件(1) 软件质量:每个功能点(FP)的缺陷数。(2) 平均成本:每个功能点(FP)的成本。(3) 文档规模:每个功能点(FP)的文档页数。(4) 生产率:每个人月完成的功能点(FP)数。第13章 软件度量 软件度量课件表表13.2 13.2 计算项目功能点数的难度校正系数值计算项目功能点数的难度校正系数值Fi权值数据难度因素Fi描述没有影响偶有影响轻微影响平均影响较大影响严重影响1. 系统需要可靠的备份与复原吗0123452. 需要数据通信吗0123453. 有分布式处理功能吗0123454. 性能很关键吗0123455

9、. 系统是否运行在既存的、高度实用化的操作系统环境中012345第13章 软件度量 软件度量课件表表13.2 13.2 计算项目功能点数的难度校正系数值计算项目功能点数的难度校正系数值6. 系统是否需要联机数据项0123457. 联机数据项是否要多屏幕切换0123458. 需要联机更新主文件吗0123459. 输入/输出、文件、查询是否复杂01234510. 内部处理复杂吗01234511. 代码是否要设计成可复用的01234512. 设计中需要包括转换和安装吗01234513. 系统设计是否要支持多次安装01234514. 应用设计是否要方便用户修改012345第13章 软件度量 软件度量课

10、件 功能点度量方法最适合于数据处理类软件的度量。它充分考虑了“数据域”需求对功能点的影响,但是对“功能域”、“控制域”需求对功能点的影响没有考虑。不过,对它进行扩充之后,也可以应用于嵌入式软件、复杂计算软件和实时控制类软件的功能度量。“特征点”(FPs,Feature Points)度量方法就是一种扩充的功能点度量方法,适用于针对复杂计算软件进行功能度量。第13章 软件度量 软件度量课件 在计算特征点的时候,首先按照上面计算功能点的方法对数据域度量参数进行加权计数。此外,特征点还要对软件的“算法”(一个特定计算机程序中包含的有界的计算问题)特征进行计数。计算特征点的方法如图13.3所示。 从图

11、13.3中可见,特征点度量的计算增加了“算法数”这一度量参数。具体的计算公式和功能点方法完全相同。第13章 软件度量 软件度量课件测量参数用户输入数用户输出数用户查询数内部文件数外部接口数总计数值计数*4加权因子加权计数*5*4*7*7算法数*3图13.3 特征点度量的计算 第13章 软件度量 软件度量课件 Boeing提出了另一个专门用来对实时系统和工程产品进行功能度量的功能点扩展方法。它的特点是把数据域、功能域、行为域集成起来考虑,因此被称为3D功能点度量。这三个域的特性参数被计算、定量并被变换成度量值,以提供软件的功能指标。关于3D功能点度量的具体算法,可参考有关资料。 LOC和FP都可

12、以用作软件度量的基本单位,很多研究者试图将FP和LOC联系起来考虑。代码行和功能点度量之间的关系依赖于设计的质量和实现软件所用的程序设计语言。根据统计数据,表13.3列举出了在不同的程序设计语言中建造一个功能点平均所需要的代码行数的一个粗略估算。第13章 软件度量 软件度量课件表表13.3 13.3 代码行代码行-FP-FP粗算粗算程序设计语言LOC/FP 平均值程序设计语言LOC/FP 平均值汇编语言320面向对象语言30C128第四代语言(4GLs)20Cobol105代码生成器15Fortran105电子表格6Pascal90图形语言(图标)4Ada70 第13章 软件度量 软件度量课件

13、13.4 13.4 软件质量的度量软件质量的度量 软件的质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征或特性的全体”(ANSI / IEEE Std 729-1983)。软件的质量特性可以定义为一种层次模型。ISO9000标准,中国国家软件产品标准中都对软件的质量及其度量要素进行了规定和描述。 开发高质量的软件是所有开发者的共同愿望。如何评价、度量、控制软件质量是软件工程领域中极端重要的问题。软件质量包括软件过程质量(即过程能力)和软件产品质量两个范畴。这里主要讨论软件产品质量的度量。第13章 软件度量 软件度量课件 软件产品的质量度量是一种保护性活动,贯穿于软件工程过程的始终。产

14、品交付之前的质量度量为评价设计、编码、测试工作的好坏提供了一个量化的根据。这一阶段的质量度量包括程序复杂性度量、模块有效性度量等等;软件交付之后,在运行维护阶段进行的度量主要关注软件中残存的差错数(反映可靠性)和系统的可维护性方面。第13章 软件度量 软件度量课件13.4.1 13.4.1 影响软件质量的因素影响软件质量的因素 软件质量是一个多因素的复杂混合,这些因素随着不同的应用和需要它们的用户而变化。概括地说,可以从三个方面来评估软件质量,即产品的运行(使用)、产品的修正(变更)和产品的转移(移植),如图13.4所示。 人们往往采用分层的结构来定义软件的质量模型(如图13.5所示)。顶层定

15、义基本质量特征,比如正确性、可靠性等等;这些特征分别由下一层的子特性来定义和度量;子特性在必要时又可以由它的下级子特性描述和度量。第13章 软件度量 软件度量课件正确性可靠性可用性完整性功效产品运行产品修正产品变迁可维护性灵活性可测试性可移植性可复用性可互操作性图13.4 基于McCall模型的软件质量因素 第13章 软件度量 软件度量课件图13.5 McCall质量度量模型框架顶层质量特性集合质量评价准则质量评价准则质量评价准则决定产品质量的软件属性面向管理观点的产品质量特征度量度量度量定量化地度量软件属性第13章 软件度量 软件度量课件 按照ISO/TC97/SC7/WG3/1985-1-

16、30/N382,软件质量模型也由三层结构组成: 高层(Top Level):软件质量需求评价准则(SQRC); 中层(Mid Level):软件质量设计评价准则(SQDC); 低层(Low Level):软件质量度量评价准则(SQMC)。 ISO组织认为,应对质量模型的高层建立国际标准,以便于在国际范围内推行软件质量管理(SQM)技术。中层的21项质量属性只作为推荐,不作为标准;而低层可由使用者自行确定。具体数据如下:第13章 软件度量 软件度量课件 SQRC:功能性、可靠性、可维护性、效率、可使用性、可移植性。 SQDC:适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可

17、理解性、可学习性、可操作性、时间特性、资源特 性、可分析性、可变更性、稳定性、可测试性、适 应性、可安装性、一致性、可替换性。 SQMC:软件开发组织根据自己的需要自行定义。第13章 软件度量 软件度量课件13.4.2 13.4.2 软件质量度量软件质量度量 从软件质量的定义中就可以看出,度量软件质量的标准是用户对软件的需求,不符合需求的软件就不具备质量。在标准的软件工程过程中,定义了一系列的开发准则,用来指导软件人员用工程化的方法来开发软件,如果不遵循这些准则,软件质量就得不到保证。质量定义中所提到的“需求”,既包括已经明确定义了的需求,又包括隐含的需求。因此,软件的可扩充性、可维护性就成了

18、支持实现隐含需求的、十分重要的质量指标。度量软件产品的质量,除了要严格度量最终产品的质量之外,还应当包含对需求分析产品、设计产品、编码产品、测试产品等所有软件工作产品的全面度量。第13章 软件度量 软件度量课件 软件质量的定性、定量度量,可以在开发过程中,结合针对各项技术产品的度量来进行。比如对需求分析产品的完备性,设计产品对需求项的覆盖程度,编码产品对设计的实现情况,测试用例对需求项的覆盖情况,体系结构设计的合理性,模块的聚合度、耦合度情况的度量,都可以作为间接的质量度量方法。在产品交付之后,也可以对产品质量进行事后评估。这时主要度量对象是通过搜集用户反馈信息得到的产品中残存的缺陷数。 在许

19、多软件质量度量方法中,使用最广泛的是事后度量或验收度量,它包括对产品的正确性、可维护性、完整性和可用性的度量。Cilb提出了这些质量指标的定义和度量方法。第13章 软件度量 软件度量课件 (1) 正确性:软件是否能正确地执行所要求的功能。可以用缺陷数/KLOC来度量;在产品交付后,根据标准的时间周期(一般为一年),按照反馈的用户报告中的缺陷数进行度量。 (2) 可维护性:利用平均变更时间MTTC(Mean Time To Change)间接度量软件的可维护性。第13章 软件度量 软件度量课件 (3) 完整性:这个属性反映软件系统抗拒针对它的安全攻击(事故或人为)的能力。完整性 = (1危险性(

20、1安全性)其中,危险性指一定时间内特定攻击发生的概率,安全性是排除特定类型攻击的概率。两者都可以从估算或历史数据中得出。 (4) 可用性:即“用户友好性”。可以从四个角度度量:学习应用软件所花费的代价;为达到有效使用软件所花费的时间;使用软件带来的生产率净增值;通过问卷调查得到的用户的主观评价。第13章 软件度量 软件度量课件13.5 13.5 在软件过程中集成度量数据在软件过程中集成度量数据 通过对软件生产率和软件质量的度量,管理者能够建立改进软件工程过程的目标。改进软件工程过程将对整个开发组织的工作产生直接的影响。从另一个角度来看,只有充分地了解工作能力的现状,才有可能确立正确的改进目标。

21、因此,为了持续发展,必须通过对能力、效率、质量的度量进行度量数据的收集、计算与分析,并且将历史度量数据、当前度量数据进行集成,建立工程过程的“度量基线”,利用基线来评估各类改进工作的效用,估算新项目的规模、工作量、预测成本、质量指标。第13章 软件度量 软件度量课件13.5.1 13.5.1 建立基线建立基线 软件项目的管理者经常要考虑解决诸如进行有意义的项目估算、生产高质量的软件、保证按时交付产品之类的问题。这时他们当然需要了解“以前类似项目的估算结果是什么?”、“影响软件质量的主要问题在哪里?”和“本组织的实际生产效率究竟有多高?”等情况。如果他们在软件工程中使用了度量,搜集了以前的度量数

22、据,对这些数据进行集成整合,建立了项目的“度量基线”数据库,就能够为解决上述问题起到积极的作用。度量数据的收集使得一个软件开发组织能够调整自身的软件工程过程,以排除那些对软件开发有重大影响的错误产生的根源。第13章 软件度量 软件度量课件 在项目级和技术级,软件度量能够提供立竿见影的好处。软件设计完成之后,大多数开发人员都希望能够了解哪些用户需求可能会变更?系统中哪些模块可能会容易出错?对每一个模块的测试要进行到什么程度?在测试开始时能够预计到将会出现多少特定类型的错误?如果在以前的工作实践中收集到了相关的度量数据并把它们当作估算的指南来使用,就能够确定这些问题的答案。 度量基线由以往的软件开

23、发项目收集到的度量数据构成。有人将其称之为“数字化的经验”。为了有助于估算、计划和质量控制,纳入基线的数据应当具有如下的属性:第13章 软件度量 软件度量课件 (1) 数据必须是精确的、合理的。 (2) 数据应当来自尽可能多的项目。 (3) 对于所有称为数据搜集对象的项目,对“代码行”、“功能点”等基本度量单位的解释都应当是一致的。 (4) 在应用基线数据时,必须保证类型的匹配。比如,来自批处理项目的基线数据就不能用来指导针对实时项目的估算。 建立基线,实际上就是集成了已有的度量数据。第13章 软件度量 软件度量课件13.5.2 13.5.2 度量数据的收集、计算和评价度量数据的收集、计算和评

24、价图13.6 度量收集的过程软件工程过程软件数据收集度量计算管理者技术人员数据评价第13章 软件度量 软件度量课件表表13.4 13.4 面向规模的度量面向规模的度量生产率和成本的度量数据项生产率和成本的度量数据项数据项单位样本数据项目名字母数字Proj_1输出KLOC/人月0.905全部维护代码的成本元/KLOC22514除去复用代码的成本元/KLOC24028经历时间月/KLOC1.0文档页/KLOC30文档页/人月10文档元/页739第13章 软件度量 软件度量课件表表13.5 13.5 面向规模的度量面向规模的度量质量的度量数据项质量的度量数据项数据项单 位样本数据错误数错误数/KLOC13.0错误成本元/错误376出错维护/总维护量比率0.36修改维护/总维护量比率0.64维护工作量/开发工作量比率1.15第13章 软件度量 软件度量课件表表13.6 13.6 面向功能的度量面向功能的度量名 称描 述单 位样本数据功能点数计算未校正的功能点 37

温馨提示

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

评论

0/150

提交评论