- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个面向对象软件质量缺陷辅助检测工具的设计跟实现
开题报告 答辩报告 一个面向对象软件质量缺陷辅助检测工具的设计与实现 目录 问题提出 本文的解决方案 系统的设计与实现 实例分析 结束语 预防性维护的困难 现有软件的维护可能占一个开发组织所有工作量的60%以上。 预防性维护是其中的重点和难点,包括码结构调整、代码优化和文档更新。 预防性维护的困难: 适应性维护、完善性维护和纠正性 维护都会带来预防性维护。 代码经过多次修改维护,复杂性高, 程序难以理解。 软件在设计时对将来的软件修改都 没有考虑或考虑不多,特别是模块 独立性等。 设计模式和经验规则 设计实践中总结出了一些设计模式、经验规则等实践经验的总结。 首先是Gamma等四人在95年提出了设计模式的概念,他们从一些好的设计中提炼出了好的程序需要满足的设计模式。 第二年,Riel从他多年的工作中,总结了60条面向对象设计中的指导原则。 1999年Fowler在对现有代码进行改善的设计中,他提出了根据“代码中的坏味道”(Bad Smell in Code)来发现代码中的问题,并针对这些问题提出了代码重构的方法。 2003年又有人提出反模式(Dudney),反模式是采用与设计模式相同的形式来描述不恰当的实践做法。它为查找实践中的不良设计提供了更好的依据。 质量缺陷 如果设计实体背离了从良好设计实践中总结出的设计准则集,则称这些实体存在质量缺陷。 “设计实体”。指要所分析的软件系统,包括软件系统中的方法、类、包等,也指互相影响的多个不同类型的、相互关联的实体,称为设计实体“簇”。 “从良好设计实践中抽象出来的准则集”。这个界定将类似bugs这样的错误排除在质量检测之外。 “背离了给定的准则集”。为我们使用度量的方法来进行缺陷检测提供依据。 每个准则都要反映在具体的、特定范例的设计规则和指南中; 这些具体的规则也可以进行量化处理,用度量进行缺陷检测。 度量工具的现状 有许多工作将度量应用于面向对象系统的设计质量的改进和评价,如一些度量指标。 仍然存在一些问题: 度量的目标不同。 面向对象的度量(Shimba,Chidamber等的工具)对类属性、继承的体系结构、类之间的交互等属性进行度量; 在逆向工程过程的初始阶段理解软件系统的结构、发现问题(CodeCrawler); 仅仅提供各种面向对象的度量结果(Understand Java)以便用户使用; 预测可能存在的缺陷跟哪些度量属性相关,例如OODMS。 度量的对象不同。OODMS针对软件设计视图。 度量结果的解释。度量值本身很难提高软件产品的质量,即使能够说明程序中可能存在问题(例如,复杂性的系数过高),也不能提供直接的方法来改进。 我们的工作 辅助预防性维护工作。 软件质量缺陷跟度量结合在一起。 具体方法是,针对要检测的具体缺陷,制订出检测规则,利用度量工具,找出系统中可能存在缺陷的地方,再对可能的缺陷进行检验,然后对现有的面向对象系统进行改进。 设计并实现了质量缺陷辅助检测工具。 基本面向对象度量。 缺陷检测。 检测规则的调整以及用户定义检测规则。 目录 问题提出 本文的解决方案 系统的设计与实现 实例分析 结束语 OO程序质量缺陷检测过程 缺陷检测引擎 数据过滤 数据过滤是根据特定的度量目标,从原始的度量结果集中抽取出数据子集的方法(一组操作)。 选择数据过滤的规则 规则1:明确提到实现的阈值时,使用绝对语义过滤。 规则2:当设计规则根据模糊的边界值来定义时,例如“最高/最低值”或者“较高/较低值”时,使用相对语义过滤。 规则3:大型系统,使用百分率值来参数化相对语义过滤;小系统,相对语义-绝对参数。 规则4:在设计经验规则说需要极值,而没有说明任何特殊的阈值时,选择使用统计过滤。 合成 合成:支持多个结果集之间的相关性解释,不同的度量结合在一起的一系列操作。 我们使用3个合成:and、or和butnot。 例:数据类(考虑公共属性和私有属性数量) 缺陷检测规则的制订 目录 问题提出 本文的解决方案 系统的设计与实现 实例分析 结束语 面向对象质量缺陷检测工具的体系结构 预处理 从Java程序模型中抽取出度量活动相关的设计信息,并将这些信息存储到数据库中。 元模型使用关系数据库来表示。 利用eclipse的JDT读取程序信息 工具做成eclipse上的插件,因此可以利用eclipse提供的一些功能(JDT)直接抽取程序信息,将工作集中在度量上。 下面是利用JDT来抽取相关信息的代码片断,例如抽取类中导入外部包的代码片断 缺陷检测模块 计算统计基本度量属性,转化为数据库查询。 缺陷检测转化为基本度量属性的查询。 例如前面的对万能类的检测就可以转化为查询。 剩下的工作就是数据库的读写部分。 用户交互和
文档评论(0)