面向对象软件度量方法

上传人:笛音 文档编号:25872650 上传时间:2017-12-19 格式:DOC 页数:11 大小:112KB
返回 下载 相关 举报
面向对象软件度量方法_第1页
第1页 / 共11页
面向对象软件度量方法_第2页
第2页 / 共11页
面向对象软件度量方法_第3页
第3页 / 共11页
面向对象软件度量方法_第4页
第4页 / 共11页
面向对象软件度量方法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《面向对象软件度量方法》由会员分享,可在线阅读,更多相关《面向对象软件度量方法(11页珍藏版)》请在金锄头文库上搜索。

1、面向对象的软件度量方法【摘要】面向对象度量方法成为面向对象技术研究的一个热点,本文分析和比较目前流行的方法应用背景和优缺点。【关键字】软件度量,软件结构,面向对象语言,软件重用Object-oriented software metrics methodsAbstract: Object-oriented software metrics methods are becoming hot point in object-oriented technology. In this paper, I will introduce and compare some of the popular obj

2、ect-oriented software metrics methods.Key words: software measurement, software architecture, OO programming language, software reuse1. 引言今天,计算机在我们生活的每个领域几乎都扮演了非常重要的角色。在计算机上运行的软件也越来越重要。因此,可预测、可重复、准确地控制软件开发过程和软件产品已经非常重要。软件度量就是衡量软件品质的一种手段。软件度量或者说软件工程度量领域是一个在过去 30 多年研究非常活跃的软件工程领域。随着面向对象技术的广泛应用,面向对象软件度量

3、的理论研究和实践应用已成为软件工程领域的研究热点之一,先后出现了一批有效的面向对象的软件度量方法。2. 软件度量概述2.1.软件度量定义软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量,就不能从软件开发的暗箱中跳将出来。通过软件度量可以改进软件开发过程,促进项目成功,开发高质量的软件产品。度量取向是软件开发诸多事项的横断面,包括顾客满意度度量、质量度量、项目度量、以及品牌资产度量、知识产权价值度量,等等。度量取向要依靠事实、数据、原理、法则;其方法是测试、审

4、核、调查;其工具是统计、图表、数字、模型;其标准是量化的指标。2.2.软件度量的目标软件开发正在经受一场危机。费用超支(特别是在维护阶段的花费太大) 、生产率低下、以及质量不高等问题正困扰着它。简言之,软件开发经常处于失控状态。软件之所以失控是因为没有度量。Tom Demarco 曾经说过:没有度量就不能控制。这种说法是好的,但不完全。并不能说为了获得控制必须进行度量。度量活动必须有明确的目标或目的,而正是这决定着我们选择哪种属性和实体进行度量。这个目标与软件开发、使用时所涉及的人的层次有关。以下主要从管理者和软件工程师两种角度来考虑,为了达到各种目标所要进行的度量工作。对管理者而言:1. 需

5、要度量软件开发过程中的不同阶段的费用。例如:度量开发整个软件系统的费用(包括从需求分析阶段到发布之后的维护阶段) 。必须清楚这个费用以决定在保证一定的利润的情况下的价格。2. 为了决定付给不同的开发小组的费用,需要度量不同小组职员的生产率。3. 为了对不同的项目进行比较、对将来的项目进行预测、建立基线以及设定合理的改进目标等,需要度量开发的产品的质量。4. 需要决定项目的度量目标。例如:应达到多大的测试覆盖率、系统最后的可靠性应有多大等。5. 为了找出是什么因素影响着费用和生产率,需要反复测试某一特定过程和资源的属性。6. 需要度量和估计不同软件工程方法和工具的效用,以便决定是否有必要把它们引

6、入到公司中。对软件工程师而言:1. 需要制定过程度量以监视不断演进的系统。这包括设计过程中的改动、在不同的回顾或测试阶段发现的错误等等。2. 需使用严格的度量的术语来指定对软件质量和性能的要求,以便使这些要求是可测试的。例如:系统必须可靠,可用如下的更具体 的文字加以描述:平均错误时间必须大于 15 个 CPU 时间片。3. 为了合格需要度量产品和过程的属性。例如:看一个产品是否合格要看产品的一些可度量的特性如 测试阶段少于 20 个错误。, 每个模块的代码行不超过 100 行。,和开发过程的一些属性如 单元测试必须覆盖 90%以上的用例。等。4. 需要度量当前已存在的产品和过程的属性以便预测

7、将来的产品。例如: 通过度量软件规格说明书的大小来预测目标的大小。 通过度量设计文档的结构特性来预测将来维护的盲点 。 通过度量测试阶段的软件的可靠性来预测软件今后操作、运行的可靠性。2.3.软件度量的信息模型度量信息模型是将已定义的信息需要与实际要度量的项目软件过程、产品和实体联系起来的机制。它为相关的度量概念建立了一个已定义的结构,而且为在组织内准确地交流度量结果提供了基础。下图是有关度量信息模型的关系。一般情况软件度量的信息需求可分为七类:进度和进展,这个信息分类是针对项目里程碑的实现以及个人工作单元的完成。落后于进度的项目要想满足它的交付目标,通常只能削减功能或是牺牲产品质量。资源和成

8、本,这个信息分类是关于在被执行的工作与分配给项目的人力资源之间的平衡。超出预算工作量的项目通常只能通过削减软件功能或牺牲产品质量来进行补偿和恢复。产品规模和稳定性,这个信息分类针对功能的稳定性阻及要求的软件能力。该信息分类还与交付的用来提供所需能力的软件容量有关。稳定性包括功能范围或数量的变更。软件规模的增长通常要求增加所用的资源或是延长项目的进度计划。产品质量,这个信息分类针对已交付的软件产品无故障地支持用户需要的能力。若交付了低质量的产品,则使其正常运转的责任通常落在负责维护的组织身上。过程性能,这个信息分类涉及与项目需要相关的供应商的能力。缺乏软件开发过程或低生产率的供应商,可能难以满足

9、积极进取的项目进度和成本目标。技术有效性,这个信息分类针对所建议的技术方法的可行性。它针对工程方法,如软件复用、商业软件构件的使用、对高级软件开发过程的依赖以发通用软件构架的实现。如果已提出的技术方法中的关键元素无法实现,则可能导致成本的增加和进度的拖延。客户满意度,这个信息分类针对项目交付的产品与服务满足客户期望的程度。满意度的指示器可以从客户的反馈和所要求的客户支持的级别获得。下表给出了信息需求与可测量概念的对应关系。信息目录 可测量概念 相关的测量元进度和进展里程碑完成情况关键路径性能工作单元进展里程碑日期拖延时间被测试的需求数已发现的问题数已解决的问题数处于 OPEN 状态的行动项数处

10、于完成状态的行动项数资源和成本个体工作量财务性能员工的级别开发工作量经验水平员工流动BCMS,BCWP,ACMP预算成本所需要的数量产品规模和稳定性物理规模和稳定性功能规模和稳定性数据库规模接口代码行数功能变更数功能点数产品质量功能正确性可维护性效率可移植性可使用性可靠性缺陷缺陷的历时恢复的时间环路复杂度吞吐量响应时间标准的符合度操作错误数平均无故障工作时间过程性能过程符合度过程效率过程作用成熟度级别过程审计结果生产率周期返工的工作量被返工的构件技术有效性 技术的挥发性 基线的变更数客户满意度客户反馈客户支持满意度的级别奖励费请求支持的数量支持时间3. 面向对象软件度量的常用方法近年来面向对象

11、技术的兴起,在面向对象分析、设计、面向对象程序设计语言(OOPL)和工具上发展很快,且已得到广泛应用。面向对象技术采用数据抽象、封装、继承、多态性、信息隐藏、重用机制等,为提高软件的可重用性,增强可维护性、可靠性,提高生产效率等方面提供了可能。这些机制在传统的软件开发中是不完善的或缺少的。面向对象系统强调的是对等实体之间的关系而不是传统控制流所决定的层次分解关系。传统的度量有一定的局限性,而且对某些面向对象特性根本无法度量,因此需要新的度量来反映。目前比较常用的面向对象的软件度量的方法有:c K 度量方法、 Chen & Liu 度量方法、M00D 度量方法。3.1.C&K 度量方法Metri

12、c 1:每个类的加权方法数 WMC(weighted Methods per Class)定义:设类 C1 有方法 M1Mn,C1Cn 分别为 M1Mn 的复杂度则WMC= inC1这里具体方法中的复杂度是用传统的软件设计中复杂度来计算的。WMC 揭示了开发和维护类的时问和精力。类的 WMC 越大对子类的可能影响越大,其通用性和可复用性就越差。Metric 2 :继承树的深度 DIT(Depth of Inheritance)定义:DIT 指对象所属类在继承树中的深度(层次) ,其中树根为 0。类的 DIT 大,表示它的可能继承方法数日大,复用程度高,但预测它的行为将更困难,同时设计复杂性大。

13、Metric 3:孩子数目 NOC(Number 0f Children)定义:NOC=继承树中的一十类的直接孩子的数目。类的 NOC 越大,重用越好,表示该类在设计中有很大影响,此类应成为测试重点。Metric 4:对象类之间耦合 CBO(Coupling Between Object classes)定义:一个类的 CBO 是它与别的类有耦合关系的类的数目。对象类间过多的耦合对模块化设计和重用是有害的。一个类越独立,它就越容易被另一个应用重用。类的 CBO 越大,设计中对另一部分的敏感越大,因此,维护越难。Metric 5:一个类的响应集合 RFC(Response For a Class

14、)定义:RFC=|RS| ,RS 是该类的响应集合。类的 RFC 越大,该类测试和调试将更复杂,复杂度越大。Metric 6:类内聚缺乏度 LCOM(Lack of Cohesion in Methods)定义:类 C1 有 n 个方法 M1Mn,设Ii = 被方法 Mi 使用的实例变量集合 P=(Ii,Ij)|IiJi=),Q=(Ii,Ij)|Ii Ij),则 LCOM=|P|Q|,当|P|Q|时,如果 IiIj=,方法 Mi 和 Mj 为无关方法对,否则为相关方法方法对。设计中希望类的内聚度越大越好,因为这样可以提高封装度。类的LCOM 越大,意味着类可以分裂成两个或更多的子类。类的 LC

15、OM 大会增加类复杂度,在开发过程中出话的可能性加大。3.2.Chen 和 Liu 方法1. 操作复杂性度量(operation complexity metric):定义为类中各操作的复杂性之和。2. 操作参数复杂性度量(operation argument complexity metric):定义为 ,这里 P(i)是类中每个操作的操作参数 i 的值。)(iP3. 属性复杂性度量(attribute complexity metric):定义为 ,)(R这里 R(i)是类中属性 i 的值。4. 操作耦合度量(operation coupling metric):度量该类的操作与其它类的操

16、作的耦合度。5. 类继承性度量(class hierarchy metric):此度量是从下面 4 个方面度量的。 类在继承树中的深度; 该类的超类的数量; 该类直接超类的数量; 该类通过继承或在本地定义的操作的数量。6. 内聚度量(cohesion metric):度量类的内聚性。7. 类耦合度量(classic coupling metric):此度量是从下面三个方面度量。 可以存取别的类的数量; 可被别的类存取的数量; 可以互操作类的数量。8. 重用度量(reuse metric):该度量是考察该类是否为重用的类。Chen 和 Liu 提出的度量指标考虑了面向对象技术的特点,由于没有给出形式化定义,缺乏可操作性,没有引起学术界的重视。3.3.M00D 度量方法M00D 度量方法是从封装、继承、耦合、多态性四个方面提出了 6 个度量指标。3.3.1. 封装MOOD 对封装的度量提出了两个指标:方法隐藏因子 MH

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号