论文部分内容阅读
随着计算机应用的日益普及,人们对计算机的依赖程度越来越高,运行在其上的软件就显得尤为重要。但是自从软件诞生以来,其质量问题一直是困扰软件开发者和管理者的主要问题,近年来由于软件质量问题造成的事故时有发生,软件质量问题已经成为制约计算机应用发展的主要因素之一。
为此研究高质量软件质量保障技术势在必行,而软件度量正是软件质量保障技术领域的一种重要手段。软件度量涵盖过程度量、项目度量、产品度量。在产品度量时,不同阶段的度量方法各不相同,编码阶段主要是度量源代码程序。利用软件度量工具来度量源代码程序中的各种质量属性是提高软件质量的一个重要方法。
本文在系统地研究程序复杂性的三种经典度量方法与动态规划算法中的最长公共子序列算法的基础上,采用行代码度量法和McCabe法相结合的方法设计和实现了一个软件度量工具模型:AnalyzeMe系统。在系统设计与实现过程中,对原有的最长公共子序列长度算法作了改进,针对具体问题采用不同的算法。需构建最长公共子序列时,采用原有的算法,只求最长公共子序列长度不需构建最长公共子序列时,采用改进后的算法;利用数组来标记每个功能选项所对应的检测报告文件方法,控制不同的功能选项输出不同的检测报告文件;构建了一个以两行作为比较基础的文件冗长度算法,用来解决如何计算源代码文件里存在的不必要的重复的代码行问题;利用字符串解析技术解决了在命令行中指定的多个文件或目录如何解析问题,同时利用操作系统中stat结构和stat函数解决了源代码是从文件读取还是从目录里读取问题;系统有些功能需要对函数做抽取处理,在对源代码前期处理过程中,构建字符对匹配算法解决了诸如‘(’和‘)’与‘{’和‘}’配对的问题。
该系统能够统计出源代码文件的代码行数、函数数、函数圈复杂度最大值、函数圈复杂度大于10以上的函数数等以及源代码版本之间的共通量与变更量。通过分析这些统计结果,可以使软件更多的潜在错误在编码阶段就能被及时发现与更正,防患于未然,从而切实有效地确保了软件产品质量的可靠性。