一个面向对象软件质量缺陷辅助检测工具的设计与实现.pptxVIP

  • 2
  • 0
  • 约3.81千字
  • 约 31页
  • 2021-09-18 发布于河北
  • 举报

一个面向对象软件质量缺陷辅助检测工具的设计与实现.pptx

答辩报告一个面向对象软件质量缺陷辅助检测工具的设计与实现目录问题提出本文的解决方案系统的设计与实现实例分析结束语06/06OO设计中的质量缺陷度量良好的设计原理和原则06/06预防性维护的困难现有软件的维护可能占一个开发组织所有工作量的60%以上。预防性维护是其中的重点和难点,包括码结构调整、代码优化和文档更新。预防性维护的困难:适应性维护、完善性维护和纠正性 维护都会带来预防性维护。代码经过多次修改维护,复杂性高, 程序难以理解。软件在设计时对将来的软件修改都 没有考虑或考虑不多,特别是模块 独立性等。06/06设计模式和经验规则设计实践中总结出了一些设计模式、经验规则等实践经验的总结。首先是Gamma等四人在95年提出了设计模式的概念,他们从一些好的设计中提炼出了好的程序需要满足的设计模式。第二年,Riel从他多年的工作中,总结了60条面向对象设计中的指导原则。1999年Fowler在对现有代码进行改善的设计中,他提出了根据“代码中的坏味道”(Bad Smell in Code)来发现代码中的问题,并针对这些问题提出了代码重构的方法。2003年又有人提出反模式(Dudney),反模式是采用与设计模式相同的形式来描述不恰当的实践做法。它为查找实践中的不良设计提供了更好的依据。06/06质量缺陷 如果设计实体背离了从良好设计实践中总结出的设计准则集,则称这些实体存在质量缺陷。“设计实体”。指要所分析的软件系统,包括软件系统中的方法、类、包等,也指互相影响的多个不同类型的、相互关联的实体,称为设计实体“簇”。“从良好设计实践中抽象出来的准则集”。这个界定将类似bugs这样的错误排除在质量检测之外。 “背离了给定的准则集”。为我们使用度量的方法来进行缺陷检测提供依据。每个准则都要反映在具体的、特定范例的设计规则和指南中;这些具体的规则也可以进行量化处理,用度量进行缺陷检测。06/06度量工具的现状有许多工作将度量应用于面向对象系统的设计质量的改进和评价,如一些度量指标。 仍然存在一些问题:度量的目标不同。面向对象的度量(Shimba,Chidamber等的工具)对类属性、继承的体系结构、类之间的交互等属性进行度量;在逆向工程过程的初始阶段理解软件系统的结构、发现问题(CodeCrawler);仅仅提供各种面向对象的度量结果(Understand Java)以便用户使用;预测可能存在的缺陷跟哪些度量属性相关,例如OODMS。度量的对象不同。OODMS针对软件设计视图。度量结果的解释。度量值本身很难提高软件产品的质量,即使能够说明程序中可能存在问题(例如,复杂性的系数过高),也不能提供直接的方法来改进。06/06我们的工作辅助预防性维护工作。软件质量缺陷跟度量结合在一起。具体方法是,针对要检测的具体缺陷,制订出检测规则,利用度量工具,找出系统中可能存在缺陷的地方,再对可能的缺陷进行检验,然后对现有的面向对象系统进行改进。设计并实现了质量缺陷辅助检测工具。基本面向对象度量。缺陷检测。检测规则的调整以及用户定义检测规则。06/06目录问题提出本文的解决方案系统的设计与实现实例分析结束语06/06OO程序质量缺陷检测过程 抽取(或预处理)。 根据度量活动,从源代码中抽取相关的数据。定义计算。根据目标,定义度量和相关的度量计算方式。解释(预测可能存在缺陷的实体)。这个解释是基于特定度量解释模型。质量缺陷检测引擎。这个是质量检测的一个核心,它将经验规则解释为我们的检测规则,下面仔细介绍。结果的验证。对于度量检测出的可能存在质量缺陷的实体,必须在开始的源代码中手工确认。06/06缺陷检测引擎 使用自顶向下的质量缺陷检测引擎。它要写出规则的表达,根据这个规则可以检测出源代码中有质量缺陷的设计片断。主要完成下面几个工作: 如何解释单个度量结果?不同的数据过滤方法,具体的选择过滤的方法。 如何将多个度量结果关联起来解释?——合成。 如何将具体的研究目标转化为检测规则,即检测规则的描述?从现有的经验规则和设计模式中总结可以量化的度量属性并进行评价。06/06数据过滤数据过滤是根据特定的度量目标,从原始的度量结果集中抽取出数据子集的方法(一组操作)。选择数据过滤的规则规则1:明确提到实现的阈值时,使用绝对语义过滤。规则2:当设计规则根据模糊的边界值来定义时,例如“最高/最低值”或者“较高/较低值”时,使用相对语义过滤。规则3:大型系统,使用百分率值来参数化相对语义过滤;小系统,相对语义-绝对参数。规则4:在设计经验规则说需要极值,而没有说明任何特殊的阈值时,选择使用统计过滤。06/06合成合成:支持多个结果集之间的相关性解释,不同的度量结合在一起的一系列操作。我们使用3个合成:and、or和butnot。例:数据类(考虑公共属性和私有属性数量) 06/0

文档评论(0)

1亿VIP精品文档

相关文档