基于McCabe理论和LCS算法上的AnalyzeMe系统的设计与实现

来源 :中国地质大学(北京) | 被引量 : 0次 | 上传用户:liongliong478
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机应用的日益普及,人们对计算机的依赖程度越来越高,运行在其上的软件就显得尤为重要。但是自从软件诞生以来,其质量问题一直是困扰软件开发者和管理者的主要问题,近年来由于软件质量问题造成的事故时有发生,软件质量问题已经成为制约计算机应用发展的主要因素之一。 为此研究高质量软件质量保障技术势在必行,而软件度量正是软件质量保障技术领域的一种重要手段。软件度量涵盖过程度量、项目度量、产品度量。在产品度量时,不同阶段的度量方法各不相同,编码阶段主要是度量源代码程序。利用软件度量工具来度量源代码程序中的各种质量属性是提高软件质量的一个重要方法。 本文在系统地研究程序复杂性的三种经典度量方法与动态规划算法中的最长公共子序列算法的基础上,采用行代码度量法和McCabe法相结合的方法设计和实现了一个软件度量工具模型:AnalyzeMe系统。在系统设计与实现过程中,对原有的最长公共子序列长度算法作了改进,针对具体问题采用不同的算法。需构建最长公共子序列时,采用原有的算法,只求最长公共子序列长度不需构建最长公共子序列时,采用改进后的算法;利用数组来标记每个功能选项所对应的检测报告文件方法,控制不同的功能选项输出不同的检测报告文件;构建了一个以两行作为比较基础的文件冗长度算法,用来解决如何计算源代码文件里存在的不必要的重复的代码行问题;利用字符串解析技术解决了在命令行中指定的多个文件或目录如何解析问题,同时利用操作系统中stat结构和stat函数解决了源代码是从文件读取还是从目录里读取问题;系统有些功能需要对函数做抽取处理,在对源代码前期处理过程中,构建字符对匹配算法解决了诸如‘(’和‘)’与‘{’和‘}’配对的问题。 该系统能够统计出源代码文件的代码行数、函数数、函数圈复杂度最大值、函数圈复杂度大于10以上的函数数等以及源代码版本之间的共通量与变更量。通过分析这些统计结果,可以使软件更多的潜在错误在编码阶段就能被及时发现与更正,防患于未然,从而切实有效地确保了软件产品质量的可靠性。
其他文献
本文针对华北油田采研院办公自动化系统的建设,对构建基于CSCW的OA系统应用的相关技术进行研究。介绍了计算机支持的协同工作(CSCW)的基本情况、实现CSCW的关键技术、工作流技
人脸检测作为一个热点研究问题,对于人脸识别、跟踪定位以及自动的三维模型重建都具有十分重要的意义。由于光照、表情、人脸的平面内以及平面外旋转的变化均会引起人脸样本难
企业资源计划ERP(enterprise resources planning)一词是由Gartner Group.Inc咨询顾问与研究机构于20世纪90年代初提出来的。ERP具有强大的系统功能,灵活的应用环境和实时控
本文分析了目前国内外医学诊断中存在的问题,提出设计一个能够辅助医生进行医学诊断的计算机系统是十分必要的。又根据医学诊断本身的特点,提出了将动态模糊逻辑与加权模糊逻辑
随着网络技术的迅速发展和普及,Internet成为最大规模的开放计算平台。如何对该平台上的各种已有的功能组件或独立应用进行集成以构成更大、更复杂的软件系统,以有效利用其上丰
网格技术是基于互联网,而又異有自身特点的新一代互联网技术,网格就是把整个Internet整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、
空间分类规则挖掘是空间数据挖掘的领域之一。空间分类挖掘广泛应用于机器学习、专家系统、统计学和神经生物等方面。分类算法也很多。我们提出了结合roughset理论与模糊决策
由于片上系统(SoC)的规模和功能在不断膨胀,为了保证设计的正确性,缩短设计的周期,在设计过程中的验证就变得越来越重要,也更为复杂,向业界提出了挑战。  SoC的验证包括模
当前,Web技术在网络上的应用日益广泛,其中使用Java的Web开发者飞速增长。J2EE已经变成Web开发的主流平台之一。 J2EE(Java2platformenterpriseedition)是美国Sun公司推出的
随着企业竞争全球化的发展,企业必须不断提高自己的信息化水平,来满足现代企业业务变化、激烈竞争的需求。目前,EAI是企业进行信息化改造的主要方法,而网格技术的出现则为新一代