版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、答辩报告一个面向对象软件质量缺陷辅助检测工具的设计与实现硕士答辩报告目录l问题提出l本文的解决方案l系统的设计与实现l实例分析l结束语06/062硕士答辩报告OO设计中的质量缺陷度量良好的设计原理和原则06/063硕士答辩报告预防性维护的困难n现有软件的维护可能占一个开发组织所有工作量的60%以上。n预防性维护是其中的重点和难点,包括码结构调整、代码优化和文档更新。n预防性维护的困难:适应性维护、完善性维护和纠正性维护都会带来预防性维护。代码经过多次修改维护,复杂性高, 程序难以理解。软件在设计时对将来的软件修改都 没有考虑或考虑不多,特别是模块独立性等。06/064硕士答辩报告设计模式和经验
2、规则设计实践中总结出了一些设计模式、经验规则等实践经验的总结。n首先是Gamma等四人在95年提出了设计模式设计模式的概念,他们从一些好的设计中提炼出了好的程序需要满足的设计模式。n第二年,Riel从他多年的工作中,总结了60条面向对象设计中的指导原则指导原则。n1999年Fowler在对现有代码进行改善的设计中,他提出了根据“代码中的坏味道”(Bad Smell in Code)来发现代码中的问题,并针对这些问题提出了代码重构的方法。n2003年又有人提出反模式(Dudney),反模式是采用与设计模式相同的形式来描述不恰当的实践做法。它为查找实践中的不良设计提供了更好的依据。06/065硕士
3、答辩报告质量缺陷 如果设计实体背离了从良好设计实践中总结出的设计准则集,则称这些实体存在质量缺陷。“设计实体”。指要所分析的软件系统,包括软件系统中的方法、类、包等,也指互相影响的多个不同类型的、相互关联的实体,称为设计实体“簇”。“从良好设计实践中抽象出来的准则集”。这个界定将类似bugs这样的错误排除在质量检测之外。 “背离了给定的准则集”。为我们使用度量的方法来进行缺陷检测提供依据。n每个准则都要反映在具体的、特定范例的设计规则和指南中;n这些具体的规则也可以进行量化处理,用度量进行缺陷检测。06/066硕士答辩报告度量工具的现状n有许多工作将度量应用于面向对象系统的设计质量的改进和评价
4、,如一些度量指标。 n仍然存在一些问题:度量的目标不同。n面向对象的度量(Shimba,Chidamber等的工具)对类属性、继承的体系结构、类之间的交互等属性进行度量;n在逆向工程过程的初始阶段理解软件系统的结构、发现问题(CodeCrawler);n仅仅提供各种面向对象的度量结果(Understand Java)以便用户使用;n预测可能存在的缺陷跟哪些度量属性相关,例如OODMS。度量的对象不同。OODMS针对软件设计视图。度量结果的解释。度量值本身很难提高软件产品的质量,即使能够说明程序中可能存在问题(例如,复杂性的系数过高),也不能提供直接的方法来改进。06/067硕士答辩报告我们的工
5、作n辅助预防性维护工作。n软件质量缺陷跟度量结合在一起。n具体方法是,针对要检测的具体缺陷,制订出检测规则,利用度量工具,找出系统中可能存在缺陷的地方,再对可能的缺陷进行检验,然后对现有的面向对象系统进行改进。n设计并实现了质量缺陷辅助检测工具。基本面向对象度量。缺陷检测。检测规则的调整以及用户定义检测规则。06/068硕士答辩报告目录l问题提出l本文的解决方案l系统的设计与实现l实例分析l结束语06/069硕士答辩报告OO程序质量缺陷检测过程 l抽取(或预处抽取(或预处理)。理)。 根据度量活动,从源代码中抽取相关的数据。l定义计算定义计算。根据目标,定义度量和相关的度量计算方式。l解释(预
6、测可能存在缺陷的实体)解释(预测可能存在缺陷的实体)。这个解释是基于特定度量解释模型。l质量缺陷检测引擎质量缺陷检测引擎。这个是质量检测的一个核心,它将经验规则解释为我们的检测规则,下面仔细介绍。l结果的验证验证。对于度量检测出的可能存在质量缺陷的实体,必须在开始的源代码中手工确认。06/0610硕士答辩报告缺陷检测引擎 n如何解释单个度量结果?不同的数据过滤过滤方法,具体的选择过滤的方法。 n 如何将多个度量结果关联起来解释?合成合成。n 如何将具体的研究目标转化为检测规则,即检测规则的描述?从现有的经验规则和设计模式中总结可以量化的度量属性并进行评价评价。使用自顶向下的质量缺陷质量缺陷检测
7、引擎检测引擎。它要写出规则的表达,根据这个规则可以检测出源代码中有质量缺陷的设计片断。主要完成下面几个工作: 06/0611硕士答辩报告数据过滤n数据过滤数据过滤是根据特定的度量目标,从原始的度量结果集中抽取出数据子集的方法(一组操作)。n选择数据过滤的规则规则1:明确提到实现的阈值时,使用绝对语义过滤。规则2:当设计规则根据模糊的边界值来定义时,例如“最高/最低值”或者“较高/较低值”时,使用相对语义过滤。规则3:大型系统,使用百分率值来参数化相对语义过滤;小系统,相对语义绝对参数。规则4:在设计经验规则说需要极值,而没有说明任何特殊的阈值时,选择使用统计过滤。06/0612硕士答辩报告合成
8、n合成:支持多个结果集之间的相关性解释,不同的度量结合在一起的一系列操作。n我们使用3个合成:and、or和butnot。n例:数据类(考虑公共属性和私有属性数量) 06/0613硕士答辩报告缺陷检测规则的制订检测规则就是要对设计相关的规则进行描述,然后要用量化的方法进行表达,写出可以用于检测的规则。 上面是万能类的例子。根据这个方法,我们识别出其他的一些质量缺陷。06/0614硕士答辩报告目录l问题提出l本文的解决方案l系统的设计与实现l实例分析l结束语06/0615硕士答辩报告面向对象质量缺陷检测工具的体系结构度量计算 检测规则定义 质量缺陷检测引擎预处理利用元模型进行信息抽取缺陷验证、缺
9、陷修改、度量显示源文件相关数据数据库度量定义度量计算度量信息库度量分析器度量检测确定检测目标设计规则分析选择度量确定检测机制检验候选项检测目标有缺陷的实体改进措施06/0616硕士答辩报告预处理n从Java程序模型中抽取出度量活动相关的设计信息,并将这些信息存储到数据库中。 n元模型使用关系数据库来表示。06/0617硕士答辩报告利用eclipse的JDT读取程序信息n工具做成eclipse上的插件,因此可以利用eclipse提供的一些功能(JDT)直接抽取程序信息,将工作集中在度量上。n下面是利用JDT来抽取相关信息的代码片断,例如抽取类中导入外部包的代码片断06/0618硕士答辩报告缺陷检
10、测模块n计算统计基本度量属性,转化为数据库查询。n缺陷检测转化为基本度量属性的查询。n例如前面的对万能类的检测就可以转化为查询。n剩下的工作就是数据库的读写部分。06/0619硕士答辩报告用户交互和检测结果的显示n系统功能n度量选择菜单06/0620硕士答辩报告用户交互和检测结果的显示n显示基本的度量属性结果n显示可能存在缺陷的实体06/0621硕士答辩报告系统功能(续)n用户可以修改度量过滤的阈值n用户构造缺陷检测(结果中继续查询)06/0622硕士答辩报告l问题提出l本文的解决方案l系统的设计与实现l实例分析l结束语目 录06/0623硕士答辩报告实例分析n针对本工具进行分析。n进行了各项
11、质量缺陷度量。n发现一个万能类:JavaClass.java n可能存在其他缺陷。06/0624硕士答辩报告目 录l问题提出l本文的解决方案l系统的设计与实现l实例分析l结束语06/0625硕士答辩报告结束语n工作总结面向对象质量缺陷检测引擎。针对每个具体的质量缺陷,根据经验规则将它们量化为检测目标,过滤和合成,找出可能存在缺陷的设计片断。并提供对质量缺陷的解释以及维护的方法。工具:基于eclipse平台的插件,与平台上的其他插件一起使用,帮助检测软件质量缺陷。n未来工作展望未来工作展望这只是一个原型系统。阈值的设定、度量属性研究、缺陷规则的制订。虽然有四条参照准则,但是还需进一步精确;类的复
12、杂性,类中方法数量McCabe圈法;使用反模式。用户自定义检测的实现。识别更多的质量缺陷,制订更多的缺陷检测规则。加强图形化显示。缺陷检测工具与其他工具的集成,即与小组的其他工具结合起来,例如,类的继承关系图、类图等。06/0626硕士答辩报告谢谢!06/0627硕士答辩报告我们识别的常见质量缺陷返回06/0628硕士答辩报告例万能类的缺陷识别nOOD中的设计规则:中的设计规则:功能应该均衡地分配在顶层的类中。缺陷:某些类集中了系统的大部分功能,只是将一些小细节交给一些不重要的类,大量使用其他类的数据。n缺点:管理复杂性的原则、缺乏内聚性、对复用和理解都有极大的影响。n具体设计参考了Fowler的大类大类bad-smelln策略策略:读写了许多“轻量”类(直接地或者通过accessor方法)中的许多数据;有许多非通讯行为。下一页06/0629硕士答辩报告例万能类的缺陷识别n度量度量外部数据的读写外部数据的读写(ATFD):给定类直接或者通过accessor方法间接地读写外外部类的属性,这些外部类的数量。类的ATFD值越高,类是万能类的可能性越高。但是Inner类和super类不能计算在内。带权的方法数带权的方法数(WMC):类的所有方法的静态复杂度总和。如果这个复杂度是1,那么WMC就是方法数(NOM)。推荐用McCabe圈度量来量化方法复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年重庆市六校校初三下学期第一次在线月考数学试题含解析
- 气象学专业多元化就业方向
- 2025年前台防疫综合测试卷
- 2025年前台电话礼仪测试卷
- 护理实践中的护理安全与风险管理
- 慢性肾功衰患者的内分泌系统护理
- 护理团队建设与管理
- 少时注重小练笔他年笔下出华章
- 2026二年级数学 苏教版数学乐园全面训练
- 护理学基础:营造安全的医院环境
- DB54∕T 0275-2023 民用建筑节能技术标准
- 探伤安全培训课件
- 浪潮式发售(全新升级版) (杰夫·沃克)
- 煤棚安全培训试题及答案
- 基因工程步骤流程图课件
- JG/T 451-2014建筑塑料门窗型材用未增塑聚氯乙烯共混料
- 镇财政工作报告五年
- 2025年北京市海淀区九年级初三二模英语试卷(含答案)
- GA 1812.1-2024银行系统反恐怖防范要求第1部分:人民币发行库
- 有色金属矿山水文地质勘探规范
- 22古诗三首《芙蓉楼送辛渐》教学设计2024-2025学年统编版语文四年级下册
评论
0/150
提交评论