一种软件质量评价装置及软件质量评价的定量分析方法制造方法及图纸

技术编号:2825489 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件质量评价装置及软件质量评价的定量分析方法,包括代码解析模块、度量分析模块、评价规则库模块,其中,代码解析模块,用于对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。应用本发明专利技术,解决了当前软件质量评价方法难以对软件质量做出定量分析的问题。

【技术实现步骤摘要】

本专利技术涉及软件工程领域中软件质量保证技术,尤其涉及一种软件质量评价装置及软件质量评价的定量分析方法
技术介绍
随着信息技术的蓬勃发展,计算机已经越来越广泛地应用到各行各业中。作为信息技术的灵魂,软件的规模也在日益扩大,这不仅导致了程序复杂度的提高,也降低了软件自身的可靠性。因此,保证软件质量,是贯穿到整个软件生命周期的重要问题,而对软件质量进行有效定量地评价则是保证软件质量的一种重要手段。由于软件产品具有复杂性、抽象性、不确定性和难于度量等特点,以及人们对软件质量认识的局限性和非系统性,软件质量的评价往往是模糊且不确定的,这使得软件质量评价一直是软件质量保证中一个难题。多年来,各国研究人员对其进行了深入细致的研究。1976年,Boehm等人提出了定量的评价软件质量的模型,他们把软件产品的质量分为三个方面:可移植性、可使用性、可维护性,从而得到软件质量的整体评价。1978年,McCall等人提出了三层次的质量度量模型:质量要素-评价准则-度量。并定义了11个质量要素和23个评价准则来对分别对这些质量要素进行描述,从而反映产品的质量。这两种模型都是网状结构模型,他们都是从产品的角度进行度量,没有从用户需求的角度进行考虑。而且他们复杂的网状结构,在度量的过程中并不易实现定量化。1991年,由国际标准化组织(ISO,InternationalOrganization for Standardization)和国际电工委员会(IEC,InternationalElectrotechnical Commission)联合制定了ISO/IEC 9126软件产品评价标准,首次将软件质量评价以标准的形式确定,该标准从用户的角度出发考虑了软件的6个质量因素,并规定了其相应的21个质量标准。它的软件质量度量-->模型为树形结构,分为3层:质量因素-质量标准-度量指标,如图1所示。虽然9126标准并未提及具体的评价方法,但对于软件的质量评价还是具有重要的指导作用。经过不断地应用改进,ISO/IEC 9126标准现已成为软件质量评价的主要参考依据。基于该标准的软件质量评价工具也出现了不少,但是大多不能完全适应实际需求,在通用性和灵活性等方面存在缺陷。例如有的度量工具只能度量某种语言编写的软件,受语言版本的限制,通用性不够;有的度量工具在度量指标上存在局限,不能灵活地适应用户各种度量需求。虽然一些研究人员提出了相应的改进措施,比如以度量中间件为核心或基于知识库的软件架构等,但都属于理想状态下的解决方案,结构复杂,在现实中难于实现。对于软件质量的评价方法目前研究比较多,具体的实现方式也各有特色。总的来看,目前已公布的方法并不能对软件质量做出准确定量的评价。比如:有的评价方法在度量指标上采用0~1判别标准,也就是说,如果度量指标的值落在给定的区间内,则评判值为1,如果落在区间的外面,则评判值为0。此判别方法对目前软件的质量判别过于笼统。而另一些评价方法只给出软件代码各度量指标的测量值,而不做进一步的定量分析,无法对软件质量进行客观准确地评价。当前存在一种软件源代码质量自动评价的技术方案,但该技术方案的在以下不足:一、从硬件角度描述了软件质量评价所需的设备,如键盘、显示器、内存等。这些设备都是当前通用计算机系统所必有的,对软件质量评价系统的具体实现不能起到指导作用;二、提出的评价方法不具有定量分析功能,无法得到软件代码质量量化的评价结果。综上所述,当前需要一种软件质量评价的技术方案。
技术实现思路
本专利技术所要解决的技术问题是提供一种软件质量评价装置及软件质量评价的定量分析方法,解决了当前软件质量评价方法难以对软件质量做出定量分析的问题,该软件质量评价装置从源代码入手,根据语法与语义,分析程序的结构与关键特征,从而生成程序的抽象语法树(Abstract Syntax Tree,-->简称为AST),并通过评价规则与算法,最终获得软件质量评价结果;同时,本专利技术还可以将质量分析结果以报表和图像的形式提交给用户进行审核与评估。为了解决上述问题,本专利技术提供了一种软件质量评价装置,包括代码解析模块、度量分析模块、评价规则库模块,其中,代码解析模块,用于对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。进一步地,上述软件质量评价装置还可包括,结果处理模块、用户接口模块,其中,结果处理模块,用于对度量分析模块发送的质量评价结果的数据进行处理,生成各种文档并保存,将该文档发送给用户接口模块;用户接口模块,用于将源程序文件和/或工程文件输入代码解析模块;还用于将用户自定义的规则输入评价规则库模块;接收结果处理模块生成的文档,提供给用户查看。进一步地,上述软件质量评价装置还可包括,所述代码解析模块,还用于对不同程序设计语言的源程序代码进行扫描分析,支持解析项目工程文件,获取工程文件中全部源程序代码信息;所述评价规则库模块,还用于为用户提供自定义规则的功能,用户根据不同环境下软件代码的多样性和复杂性对程序代码质量评价规则进行修改或扩充;度量分析模块,还用于根据用户自行选择的度量指标来计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数-->据。进一步地,上述软件质量评价装置还可包括,所述评价规则库模块提供的程序代码质量评价规则及算法以国际标准化组织/国际电工委员会标准模型为基础;所述结果处理模块生成的各种文档,包括评价报告或各种分析视图;其中,所述分析视图包括,源程序代码结构的显示图、度量指标数字结果的列表显示图、各种度量指标的统计图。本专利技术还提供了一种软件质量评价的定量分析方法,包括以下步骤,a、对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并生成数据,该生成的数据中将提取的信息通过抽象语法树的形式来表示;b、读取程序代码质量评价规则及算法,根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。进一步地,上述定量分析方法还可包括,所述步骤a中还包括,a11、将用户配置好的需要进行质量评价的软件项目工程文件,或源代码目录、或编程语言、或头文件目录导入硬件平台;a12、对输入的源程序代码进行预处理,将程序中已经定义的头文件和宏解开,替换到源程序代码中相应的位置上;a13、对每一个预处理过的源程序代码进行词法和语法分析,在经过宏解析和头文件处理后,采用自底向上分析法进行词法解析,生成相关数据,该生成的数据通过抽象语法树的形式来表示。进一步地,上述定量分析方法还可包括,所述步骤a13进一步包括,a131、对输入的源文件的类型进行扫描过滤,根据扩展名提取所需的源程序代码;a132、对提取的源程序代码进行预编译处理,解析程序代码中所有的头文件信息和宏信息,并将其解开到指定的文件中;a133、进行词本文档来自技高网
...

【技术保护点】
一种软件质量评价装置,其特征在于,包括代码解析模块、度量分析模块、评价规则库模块,其中,代码解析模块,用于对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。

【技术特征摘要】
1、一种软件质量评价装置,其特征在于,包括代码解析模块、度量分析模块、评价规则库模块,其中,代码解析模块,用于对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。2、如权利要求1所述的软件质量评价装置,其特征在于,还包括结果处理模块、用户接口模块,其中,结果处理模块,用于对度量分析模块发送的质量评价结果的数据进行处理,生成各种文档并保存,将该文档发送给用户接口模块;用户接口模块,用于将源程序文件和/或工程文件输入代码解析模块;还用于将用户自定义的规则输入评价规则库模块;接收结果处理模块生成的文档,提供给用户查看。3、如权利要求1或2所述的软件质量评价装置,其特征在于,所述代码解析模块,还用于对不同程序设计语言的源程序代码进行扫描分析,支持解析项目工程文件,获取工程文件中全部源程序代码信息;所述评价规则库模块,还用于为用户提供自定义规则的功能,用户根据不同环境下软件代码的多样性和复杂性对程序代码质量评价规则进行修改或扩充;度量分析模块,还用于根据用户自行选择的度量指标来计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。4、如权利要求2所述的软件质量评价装置,其特征在于,所述评价规则库模块提供的程序代码质量评价规则及算法以国际标准化组织/国际电工委员会标准模型为基础;所述结果处理模块生成的各种文档,包括评价报告或各种分析视图;其中,所述分析视图包括,源程序代码结构的显示图、度量指标数字结果的列表显示图、各种度量指标的统计图。5、一种软件质量评价的定量分析方法,其特征在于,包括以下步骤,a、对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并生成数据,该生成的数据中将提取的信息通过抽象语法树的形式来表示;b、读取程序代码质量评价规则及算法,根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。6、如权利要求5所述的定量分析...

【专利技术属性】
技术研发人员:王继刚钟卫东李翌
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1