CN101261604A - 一种软件质量评价装置及软件质量评价的定量分析方法 - Google Patents

一种软件质量评价装置及软件质量评价的定量分析方法 Download PDF

Info

Publication number
CN101261604A
CN101261604A CNA200810090674XA CN200810090674A CN101261604A CN 101261604 A CN101261604 A CN 101261604A CN A200810090674X A CNA200810090674X A CN A200810090674XA CN 200810090674 A CN200810090674 A CN 200810090674A CN 101261604 A CN101261604 A CN 101261604A
Authority
CN
China
Prior art keywords
software
evaluation
quality
program code
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200810090674XA
Other languages
English (en)
Other versions
CN101261604B (zh
Inventor
王继刚
钟卫东
李翌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xuzhou Tie Shou Hardware Tools Manufacturing Co ltd
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN200810090674XA priority Critical patent/CN101261604B/zh
Publication of CN101261604A publication Critical patent/CN101261604A/zh
Application granted granted Critical
Publication of CN101261604B publication Critical patent/CN101261604B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

一种软件质量评价装置及软件质量评价的定量分析方法
技术领域
本发明涉及软件工程领域中软件质量保证技术,尤其涉及一种软件质量评价装置及软件质量评价的定量分析方法。
背景技术
随着信息技术的蓬勃发展,计算机已经越来越广泛地应用到各行各业中。作为信息技术的灵魂,软件的规模也在日益扩大,这不仅导致了程序复杂度的提高,也降低了软件自身的可靠性。因此,保证软件质量,是贯穿到整个软件生命周期的重要问题,而对软件质量进行有效定量地评价则是保证软件质量的一种重要手段。
由于软件产品具有复杂性、抽象性、不确定性和难于度量等特点,以及人们对软件质量认识的局限性和非系统性,软件质量的评价往往是模糊且不确定的,这使得软件质量评价一直是软件质量保证中一个难题。多年来,各国研究人员对其进行了深入细致的研究。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、进行词法分析,将源程序代码转换为自底向上描述的文法;
a134、进行语法分析,将词法分析的结果转换生成相关数据,该生成的数据通过抽象语法树的形式来表示。
进一步地,上述定量分析方法还可包括,所述步骤b中还包括,
b1、读取规则文件,解析相关存储规则,获得所需要的程序代码质量评价规则及算法;
b2、读取程序代码质量评价规则,遍历生成数据的抽象语法树,对源程序代码进行预分析,如果得到软件质量的评价分析结果,则将得到的评价分析结果的数据存储到内存中,对其进行可读化处理,并将处理后的评价分析结果的数据存储在本地磁盘。
进一步地,上述定量分析方法还可包括,所述步骤b2中,如果对源程序代码进行预分析后,没有得到软件质量的评价分析结果,则还包括以下步骤,
b21、根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,寻找并获取软件质量评价所需的度量指标序列;
b22、根据程序代码质量评价规则中所指定的各度量指标分布区间,按照正态分布的原理,计算出每个度量指标的标准分;
b23、根据各质量标准的映射公式,通过专家算法预定加权因子,对所辖度量指标值进行加权并求和,得到相应质量标准的评价值;
b24、根据分配给质量因素所辖标准的权值,计算因素所辖标准的评价值的加权平均值,从而获得因素的评价值;
b25、根据程序代码质量评价规则中分配给因素的权值,计算因素评价值的加权平均值,从而获得软件质量综合评价分析结果的数据;
b26、将评价分析结果的数据存储到内存中对其进行可读化处理,并将处理结果的数据存储在本地磁盘。
与现有技术相比,本发明采用抽象语法树对各种程序设计语言的源代码进行统一描述和分析,实现了软件质量评价与编程语言的无关性;同时,还提供了质量评价规则用户定制功能,用户可以对软件质量评价模型、规则进行自定义和修改,使得质量评价工作更适应于软件实际情况。此外,本发明还根据正态分布原理确定了度量指标量化值,采用专家算法得到加权因子,从而解决了现有方法难以对软件质量进行量化分析的问题,具有直接高效,客观准确,应用范围广等特点。
附图说明
图1为软件质量度量模型图;
图2为本发明的软件质量评价装置的结构图;
图3为本发明的软件质量评价的定量分析方法的流程图;
图4为本发明软件质量评价方法中代码解析流程图;
图5为本发明软件质量评价方法中定量计算流程图;
图6为本发明进行实施试验应用流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
如图2所示,一种软件质量评价装置,包括代码解析模块、度量分析模块、评价规则库模块、结果处理模块、用户接口模块,其中,
代码解析模块,用于接收用户接口模块输入的软件的源程序文件和/或工程文件,对源程序代码进行词法、语法分析,从中提取足够多的信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;该模块还可以支持解析项目工程文件,获取工程文件中全部源程序代码信息;
代码解析模块处于系统的前端,由文件分析、词法分析和语法分析等部分所组成,实现以下功能:可以对不同程序设计语言的源程序代码进行扫描分析;收集相关的计算度量指标的信息;在分析过程中构造出抽象语法树。
由于软件往往包含多个源程序,这些源程序总是利用工程文件来管理,所以代码解析模块需要能够解析工程文件。
度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,最后将生成的质量评价结果的数据发送给结果处理模块,还用于根据用户自行选择的度量指标来计算出相应的度量指标值并由此对软件的质量进行分析;
度量分析模块包括结果缓冲池,该结果缓冲池用于保存生成的质量评价结果的数据。
评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;同时还为用户提供了自定义规则的功能,用户可以根据不同环境下软件代码的多样性和复杂性对程序代码质量评价规则进行修改或扩充;
其中,程序代码质量评价规则及算法以ISO/IEC标准模型为基础。
结果处理模块,用于对度量分析模块发送的质量评价结果的数据进行处理,生成各种文档(包括评价报告或各种分析视图等),同时保存生成的各种文档,将文档发送给用户接口模块;
结果处理模块可以把统计与分析产生的度量结果以各种分析视图的方式进行处理,包括:(1)源程序代码结构的显示图,类层次图、相互有消息传递的类间关系图;(2)度量指标数字结果的列表显示,方便度量指标进行横向比较;(3)各种度量指标的统计图,如直方图、饼图或Kiviat图等;通过这些数字或图形结果,可以对软件质量做出直观地判断,同时,结果处理模块还可以自动生成各种文档用于保存和分析。
用户接口模块,用于将源程序文件和/或工程文件输入代码解析模块;还可用于将用户自定义的规则输入评价规则库模块;接收结果处理模块生成的文档,提供给用户查看,使用户能够对软件质量做出直观地判断。
如图3所示,一种软件质量评价的定量分析方法,包括以下步骤:
步骤100、将用户配置好的需要进行质量评价的软件项目工程文件,或源代码目录、或编程语言、或头文件目录等导入硬件平台;
步骤110、对输入的源程序代码进行预处理,将程序中已经定义的头文件和宏解开,替换到源程序代码中相应的位置上;
步骤120、对每一个预处理过的源程序代码进行词法和语法分析,在经过宏解析和头文件处理后,采用自底向上分析法进行词法解析,生成相关数据,该生成的数据通过抽象语法树的形式来表示;
所述步骤120进一步包括下列操作内容:
步骤1201、对输入的源文件的类型进行扫描过滤,根据扩展名提取所需的源程序代码;
步骤1202、对提取的源程序代码进行预编译处理,解析程序代码中所有的头文件信息和宏信息,并将其解开到指定的文件中;
步骤1203、进行词法分析,将源程序代码转换为自底向上描述的文法;
步骤1204、进行语法分析,将词法分析的结果转换生成相关数据,该生成的数据通过抽象语法树的形式来表示。
步骤130、读取规则文件,解析相关存储规则,获得所需要的程序代码质量评价规则及算法;
步骤140、读取程序代码质量评价规则,遍历生成数据的抽象语法树,对目标工程文件的源程序代码进行预分析,如果发现无需深入分析就可得到软件质量的评价分析结果,则将得到的评价分析结果的数据存储到内存中,执行步骤160;否则,执行步骤150;
步骤150、根据程序代码质量评价规则及算法,对生成数据的抽象语法树作进一步分析,包括度量指标计算,质量标准计算,质量因素计算,最终得到软件质量综合评价分析结果的数据,并将各阶段计算分析结果存储在内存中;
所述步骤150进一步包括下列操作内容:
步骤1501、根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,寻找并获取软件质量评价所需的度量指标序列;
步骤1502、根据程序代码质量评价规则中所指定的各度量指标分布区间,按照正态分布的原理,计算出每个度量指标的标准分;
步骤1503、根据各质量标准的映射公式,通过专家算法预定加权因子,对所辖度量指标值进行加权并求和,得到相应质量标准的评价值;
步骤1504、同理,根据分配给质量因素所辖标准的权值,计算因素所辖标准的评价值的加权平均值,从而获得因素的评价值;
步骤1505、根据程序代码质量评价规则中分配给因素的权值,计算因素评价值的加权平均值,从而获得软件质量综合评价分析结果的数据;
步骤1506、将评价分析结果的数据存储到内存中。
步骤160、将存储在内存中的评价分析结果的数据取出,对其进行可读化处理,并将处理后的评价分析结果的数据存储在本地磁盘用于用户进行审阅。
本发明所述装置和方法可以采用Lex/Yacc自动编译器生成工具及C语言得以实现。需要指出的是,本发明不局限于任何具体的硬件平台和操作系统,具有较广泛的通用性。
下面结合具体实例对本发明作进一步说明。
该实例中,描述了软件质量评价方法流程的主要处理步骤:
(1)将用户配置好的需要进行质量评价的软件源代码目录、编程语言、头文件目录导入软件质量评价装置;
(2)对输入的源代码进行预处理,将程序中已经定义的头文件和宏解开,替换到源代码中相应的位置上;
(3)对每一个预处理过的源文件进行词法/语法解析,在经过宏解析和头文件处理后,进行文法解析,将源代码解析成自底向上LR描述文法所描述的数据,此后解析为标准的AST语法树;
该步骤可细分为下述各个具体操作内容(如图4所示):
(3.1)代码解析模块先对输入的源文件的类型进行过滤,根据扩展名提取所需的源代码;
(3.2)对提取的源代码进行预处理,解析代码中所有的头文件信息和宏信息,并将其解开到指定的文件中;
(3.3)进行词法分析,将源代码转换为自底向上描述文法;
(3.4)进行语法分析,将文法分析的结果转换成抽象语法树。
(4)读取规则文件,解析存储规则所使用的可扩展标记语言XML文件,获得所需要的质量评价规则;
(5)读取质量评价规则,遍历AST语法树,对目标工程源代码进行预分析,如果发现无需深入分析就可得到软件质量结果,则直接把分析结果存储到指定缓冲池相应的数据列表中,执行步骤(7);否则,根据质量评价规则与算法对抽象语法树作进一步处理,执行步骤(6);
(6)根据质量评价规则即算法,对AST语法树作进一步分析,包括度量指标计算,质量标准评价,质量因素评价,最终得到软件质量评价结果,并将计算分析结果送入结果处理模块;
该步骤可细分为下述各个具体操作内容(如图5所示):
(6.1)首先由计算分析模块遍历AST语法树,寻找并获取软件质量评价所需的度量指标序列;
(6.2)根据质量评价规则中所指定的各度量指标分布区间,按照正态分布的原理,计算出每个度量指标的量化值;
例如计算度量指标STMT,该指标表示函数中可执行语句的数量,STMT度量指标对于衡量函数的复杂性是很有用。评价规则中设定它的上限值为50,下限值为0,通过计算可知STMT的正态分布函数中总体均数为25,总体标准差为9.69,当STMT的实际值为25时,所得的指标值最高为1。
(6.3)根据各质量标准的映射公式,通过预定的加权因子对所属度量指标值进行加权并求和,得到相应质量标准的评价值;
以函数的稳定性function_STABILITY质量标准评价规则为例:function_STABILITY=NBCALLING+RETU+DRCT_CALLS+PARA,公式表明,该质量标准由四个度量指标所决定,即NBCALLING、RETU、DRCT_CALLS、PARA,专家算法设定的每个度量指标权重均为1。该质量标准的最高得分4分,即当构成该质量标准的四个度量指标的值均为1时,该项质量标准得分为4分,以此类推。
(6.4)同理,根据各质量因素的映射公式,通过预定的加权因子对所属标准进行加权求和,得到相应质量因素的评价值;
(6.5)通过上述各层的计算,最后得到软件质量综合评价值,根据具体的得分,能够判定该程序代码质量所处的等级;
(6.6)将分析评价结果存储到指定缓冲池相应的数据列表中,方便下一步使用。
(7)软件质量评价结束后,将存储在结果缓冲池中的分析结果取出,存储在本地磁盘,并提交给用户审阅。
图6是本发明进行实施试验应用流程图。进行软件开发的企业和个人可以通过本发明度量历史项目,获取每个软件度量指标的预测值;在新软件项目开发过程中,使用本发明对已完成的源代码进行评价,获得软件代码质量评价结果,并将其与预测值对比,从而进一步控制并改进软件的质量,提高软件过程能力。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (9)

1、一种软件质量评价装置,其特征在于,
包括代码解析模块、度量分析模块、评价规则库模块,其中,
代码解析模块,用于对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并将该信息通过抽象语法树的形式来表示后,将生成的数据发送给度量分析模块;
评价规则库模块,用于为度量分析模块提供程序代码质量评价规则及算法;
度量分析模块,用于根据评价规则库模块中的程序代码质量评价规则及算法,遍历代码解析模块发送数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。
2、如权利要求1所述的软件质量评价装置,其特征在于,
还包括结果处理模块、用户接口模块,其中,
结果处理模块,用于对度量分析模块发送的质量评价结果的数据进行处理,生成各种文档并保存,将该文档发送给用户接口模块;
用户接口模块,用于将源程序文件和/或工程文件输入代码解析模块;还用于将用户自定义的规则输入评价规则库模块;接收结果处理模块生成的文档,提供给用户查看。
3、如权利要求1或2所述的软件质量评价装置,其特征在于,
所述代码解析模块,还用于对不同程序设计语言的源程序代码进行扫描分析,支持解析项目工程文件,获取工程文件中全部源程序代码信息;
所述评价规则库模块,还用于为用户提供自定义规则的功能,用户根据不同环境下软件代码的多样性和复杂性对程序代码质量评价规则进行修改或扩充;
度量分析模块,还用于根据用户自行选择的度量指标来计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。
4、如权利要求2所述的软件质量评价装置,其特征在于,
所述评价规则库模块提供的程序代码质量评价规则及算法以国际标准化组织/国际电工委员会标准模型为基础;
所述结果处理模块生成的各种文档,包括评价报告或各种分析视图;
其中,所述分析视图包括,源程序代码结构的显示图、度量指标数字结果的列表显示图、各种度量指标的统计图。
5、一种软件质量评价的定量分析方法,其特征在于,包括以下步骤,
a、对输入的软件的源程序代码进行词法、语法分析,从中提取信息,并生成数据,该生成的数据中将提取的信息通过抽象语法树的形式来表示;
b、读取程序代码质量评价规则及算法,根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,计算出相应的度量指标值并由此对软件的质量进行分析,生成该软件的质量评价结果的数据。
6、如权利要求5所述的定量分析方法,其特征在于,
所述步骤a中还包括,
a11、将用户配置好的需要进行质量评价的软件项目工程文件,或源代码目录、或编程语言、或头文件目录导入硬件平台;
a12、对输入的源程序代码进行预处理,将程序中已经定义的头文件和宏解开,替换到源程序代码中相应的位置上;
a13、对每一个预处理过的源程序代码进行词法和语法分析,在经过宏解析和头文件处理后,采用自底向上分析法进行词法解析,生成相关数据,该生成的数据通过抽象语法树的形式来表示。
7、如权利要求6所述的定量分析方法,其特征在于,
所述步骤a13进一步包括,
a131、对输入的源文件的类型进行扫描过滤,根据扩展名提取所需的源程序代码;
a132、对提取的源程序代码进行预编译处理,解析程序代码中所有的头文件信息和宏信息,并将其解开到指定的文件中;
a133、进行词法分析,将源程序代码转换为自底向上描述的文法;
a134、进行语法分析,将词法分析的结果转换生成相关数据,该生成的数据通过抽象语法树的形式来表示。
8、如权利要求5所述的定量分析方法,其特征在于,
所述步骤b中还包括,
b1、读取规则文件,解析相关存储规则,获得所需要的程序代码质量评价规则及算法;
b2、读取程序代码质量评价规则,遍历生成数据的抽象语法树,对源程序代码进行预分析,如果得到软件质量的评价分析结果,则将得到的评价分析结果的数据存储到内存中,对其进行可读化处理,并将处理后的评价分析结果的数据存储在本地磁盘。
9、如权利要求8所述的定量分析方法,其特征在于,
所述步骤b2中,如果对源程序代码进行预分析后,没有得到软件质量的评价分析结果,则还包括以下步骤,
b21、根据程序代码质量评价规则及算法,遍历生成数据的抽象语法树,寻找并获取软件质量评价所需的度量指标序列;
b22、根据程序代码质量评价规则中所指定的各度量指标分布区间,按照正态分布的原理,计算出每个度量指标的标准分;
b23、根据各质量标准的映射公式,通过专家算法预定加权因子,对所辖度量指标值进行加权并求和,得到相应质量标准的评价值;
b24、根据分配给质量因素所辖标准的权值,计算因素所辖标准的评价值的加权平均值,从而获得因素的评价值;
b25、根据程序代码质量评价规则中分配给因素的权值,计算因素评价值的加权平均值,从而获得软件质量综合评价分析结果的数据;
b26、将评价分析结果的数据存储到内存中对其进行可读化处理,并将处理结果的数据存储在本地磁盘。
CN200810090674XA 2008-04-09 2008-04-09 一种软件质量评价装置及软件质量评价的定量分析方法 Expired - Fee Related CN101261604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810090674XA CN101261604B (zh) 2008-04-09 2008-04-09 一种软件质量评价装置及软件质量评价的定量分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810090674XA CN101261604B (zh) 2008-04-09 2008-04-09 一种软件质量评价装置及软件质量评价的定量分析方法

Publications (2)

Publication Number Publication Date
CN101261604A true CN101261604A (zh) 2008-09-10
CN101261604B CN101261604B (zh) 2010-09-29

Family

ID=39962070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810090674XA Expired - Fee Related CN101261604B (zh) 2008-04-09 2008-04-09 一种软件质量评价装置及软件质量评价的定量分析方法

Country Status (1)

Country Link
CN (1) CN101261604B (zh)

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193797A (zh) * 2010-03-18 2011-09-21 埃森哲环球服务有限公司 软件设计质量的评价和强制实行
CN102508771A (zh) * 2011-10-12 2012-06-20 山东中创软件商用中间件股份有限公司 一种软件运行状态评价方法
CN102591778A (zh) * 2012-01-09 2012-07-18 福建师范大学 一种基于服务的可扩展程序竞赛评测系统
CN103559585A (zh) * 2013-11-08 2014-02-05 深圳职业技术学院 图书馆综合绩效评价的实现方法及系统
CN103793315A (zh) * 2012-10-29 2014-05-14 Sap股份公司 监视和改善软件开发质量
CN104021075A (zh) * 2014-05-22 2014-09-03 小米科技有限责任公司 用于程序代码的评估方法和装置
CN104102649A (zh) * 2013-04-07 2014-10-15 阿里巴巴集团控股有限公司 一种对网站用户进行分级的方法和装置
CN104866412A (zh) * 2014-02-21 2015-08-26 株式会社理光 JavaScript脚本文件的检测方法和检测系统
CN105389250A (zh) * 2014-09-05 2016-03-09 北京畅游天下网络技术有限公司 追踪软件质量的方法和系统
CN105468512A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 一种对软件质量进行评估的方法和系统
CN105468510A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 对软件质量进行评估与追踪的方法和系统
CN105512034A (zh) * 2015-12-04 2016-04-20 北京京东尚科信息技术有限公司 一种评审方法和评审系统
CN105630957A (zh) * 2015-12-24 2016-06-01 北京大学 一种基于用户管理应用行为的应用质量判别方法及系统
CN105867906A (zh) * 2016-03-22 2016-08-17 东南大学 一种面向软件演化的代码可替换性评估方法
CN106155892A (zh) * 2015-04-03 2016-11-23 腾讯科技(深圳)有限公司 判断应用程序测试覆盖范围的方法及程序测试设备
CN106250769A (zh) * 2016-07-30 2016-12-21 北京明朝万达科技股份有限公司 一种多级过滤的源代码数据检测方法及装置
CN106528428A (zh) * 2016-11-24 2017-03-22 中山大学 一种软件易变性预测模型的构建方法
CN107423911A (zh) * 2017-08-02 2017-12-01 中国科学院上海高等研究院 软件成功度评价方法/系统、计算机可读存储介质及设备
CN107908558A (zh) * 2017-11-14 2018-04-13 广东华仝九方科技有限公司 一种手机客户端软件质量自动化评测方法
CN108182141A (zh) * 2016-12-08 2018-06-19 中国电子产品可靠性与环境试验研究所 软件质量评价方法和系统
CN108804323A (zh) * 2018-06-06 2018-11-13 中国平安人寿保险股份有限公司 代码质量监控方法、设备及存储介质
CN108827452A (zh) * 2018-03-27 2018-11-16 江苏大学 一种永磁同步轮毂电机的噪声评价方法
CN109240903A (zh) * 2017-06-15 2019-01-18 北京京东尚科信息技术有限公司 一种自动评估的方法和装置
CN109753286A (zh) * 2018-12-28 2019-05-14 四川新网银行股份有限公司 一种基于功能标签的代码方法统计其调用次数的方法
CN109783361A (zh) * 2018-12-14 2019-05-21 平安壹钱包电子商务有限公司 确定代码质量的方法和装置
CN109857628A (zh) * 2017-11-30 2019-06-07 北京高德云图科技有限公司 动态ui业务端代码性能检测方法及装置
CN110149800A (zh) * 2015-04-07 2019-08-20 华为技术有限公司 一种用于处理与源程序的源代码相关联的抽象语法树的装置
CN110221976A (zh) * 2019-05-28 2019-09-10 广西电网有限责任公司电力科学研究院 一种基于度量技术的计量终端软件质量量化评价方法
CN110618926A (zh) * 2018-06-19 2019-12-27 歌乐株式会社 源代码分析方法和源代码分析装置
CN111045905A (zh) * 2019-11-14 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种针对特定软件移植的跨处理器性能快速评估方法
CN111274146A (zh) * 2020-01-20 2020-06-12 北京百度网讯科技有限公司 一种代码度量方法、装置、电子设备和介质
CN111382443A (zh) * 2018-12-29 2020-07-07 北京奇虎科技有限公司 代码质量提升建议的确定方法、装置及电子设备
CN111767212A (zh) * 2020-06-17 2020-10-13 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质
CN112000573A (zh) * 2020-08-17 2020-11-27 苏州达家迎信息技术有限公司 代码质量的监控方法、装置、计算机设备及介质
CN112306470A (zh) * 2020-10-19 2021-02-02 南京航空航天大学 一种复杂同步语言程序的化简转化和自动验证方法
CN112597062A (zh) * 2021-02-04 2021-04-02 北京关键科技股份有限公司 军用软件结构化质量数据抽取方法、装置及软件测试装置
CN112947928A (zh) * 2019-12-10 2021-06-11 北京沃东天骏信息技术有限公司 代码评价的方法、装置、电子设备和存储介质
CN113342634A (zh) * 2020-03-02 2021-09-03 北京沃东天骏信息技术有限公司 软件质量评估的方法和装置
CN115983719A (zh) * 2023-03-16 2023-04-18 中国船舶集团有限公司第七一九研究所 一种软件综合质量评价模型的训练方法及系统

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193797B (zh) * 2010-03-18 2016-08-03 埃森哲环球服务有限公司 软件设计质量的评价和强制实行
CN102193797A (zh) * 2010-03-18 2011-09-21 埃森哲环球服务有限公司 软件设计质量的评价和强制实行
CN102508771A (zh) * 2011-10-12 2012-06-20 山东中创软件商用中间件股份有限公司 一种软件运行状态评价方法
CN102508771B (zh) * 2011-10-12 2015-01-07 山东中创软件商用中间件股份有限公司 一种软件运行状态评价方法
CN102591778A (zh) * 2012-01-09 2012-07-18 福建师范大学 一种基于服务的可扩展程序竞赛评测系统
CN102591778B (zh) * 2012-01-09 2015-04-29 福建师范大学 一种基于服务的可扩展程序竞赛评测系统
CN103793315A (zh) * 2012-10-29 2014-05-14 Sap股份公司 监视和改善软件开发质量
CN103793315B (zh) * 2012-10-29 2018-12-21 Sap欧洲公司 监视和改善软件开发质量方法、系统和计算机可读介质
CN104102649A (zh) * 2013-04-07 2014-10-15 阿里巴巴集团控股有限公司 一种对网站用户进行分级的方法和装置
CN103559585A (zh) * 2013-11-08 2014-02-05 深圳职业技术学院 图书馆综合绩效评价的实现方法及系统
CN104866412A (zh) * 2014-02-21 2015-08-26 株式会社理光 JavaScript脚本文件的检测方法和检测系统
CN104021075A (zh) * 2014-05-22 2014-09-03 小米科技有限责任公司 用于程序代码的评估方法和装置
CN105468510A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 对软件质量进行评估与追踪的方法和系统
CN105468512A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 一种对软件质量进行评估的方法和系统
CN105389250A (zh) * 2014-09-05 2016-03-09 北京畅游天下网络技术有限公司 追踪软件质量的方法和系统
CN106155892A (zh) * 2015-04-03 2016-11-23 腾讯科技(深圳)有限公司 判断应用程序测试覆盖范围的方法及程序测试设备
CN110149800A (zh) * 2015-04-07 2019-08-20 华为技术有限公司 一种用于处理与源程序的源代码相关联的抽象语法树的装置
CN105512034A (zh) * 2015-12-04 2016-04-20 北京京东尚科信息技术有限公司 一种评审方法和评审系统
CN105630957A (zh) * 2015-12-24 2016-06-01 北京大学 一种基于用户管理应用行为的应用质量判别方法及系统
CN105630957B (zh) * 2015-12-24 2019-05-21 北京大学 一种基于用户管理应用行为的应用质量判别方法及系统
CN105867906B (zh) * 2016-03-22 2018-11-27 东南大学 一种面向软件演化的代码可替换性评估方法
CN105867906A (zh) * 2016-03-22 2016-08-17 东南大学 一种面向软件演化的代码可替换性评估方法
CN106250769B (zh) * 2016-07-30 2019-08-16 北京明朝万达科技股份有限公司 一种多级过滤的源代码数据检测方法及装置
CN106250769A (zh) * 2016-07-30 2016-12-21 北京明朝万达科技股份有限公司 一种多级过滤的源代码数据检测方法及装置
CN106528428A (zh) * 2016-11-24 2017-03-22 中山大学 一种软件易变性预测模型的构建方法
CN106528428B (zh) * 2016-11-24 2019-06-25 中山大学 一种软件易变性预测模型的构建方法
CN108182141B (zh) * 2016-12-08 2020-12-08 中国电子产品可靠性与环境试验研究所 软件质量评价方法和系统
CN108182141A (zh) * 2016-12-08 2018-06-19 中国电子产品可靠性与环境试验研究所 软件质量评价方法和系统
CN109240903A (zh) * 2017-06-15 2019-01-18 北京京东尚科信息技术有限公司 一种自动评估的方法和装置
CN107423911A (zh) * 2017-08-02 2017-12-01 中国科学院上海高等研究院 软件成功度评价方法/系统、计算机可读存储介质及设备
CN107908558A (zh) * 2017-11-14 2018-04-13 广东华仝九方科技有限公司 一种手机客户端软件质量自动化评测方法
CN109857628A (zh) * 2017-11-30 2019-06-07 北京高德云图科技有限公司 动态ui业务端代码性能检测方法及装置
CN108827452A (zh) * 2018-03-27 2018-11-16 江苏大学 一种永磁同步轮毂电机的噪声评价方法
CN108827452B (zh) * 2018-03-27 2020-07-31 江苏大学 一种永磁同步轮毂电机的噪声评价方法
CN108804323A (zh) * 2018-06-06 2018-11-13 中国平安人寿保险股份有限公司 代码质量监控方法、设备及存储介质
CN110618926A (zh) * 2018-06-19 2019-12-27 歌乐株式会社 源代码分析方法和源代码分析装置
CN109783361A (zh) * 2018-12-14 2019-05-21 平安壹钱包电子商务有限公司 确定代码质量的方法和装置
CN109753286A (zh) * 2018-12-28 2019-05-14 四川新网银行股份有限公司 一种基于功能标签的代码方法统计其调用次数的方法
CN111382443A (zh) * 2018-12-29 2020-07-07 北京奇虎科技有限公司 代码质量提升建议的确定方法、装置及电子设备
CN110221976A (zh) * 2019-05-28 2019-09-10 广西电网有限责任公司电力科学研究院 一种基于度量技术的计量终端软件质量量化评价方法
CN110221976B (zh) * 2019-05-28 2023-08-22 广西电网有限责任公司电力科学研究院 一种基于度量技术的计量终端软件质量量化评价方法
CN111045905A (zh) * 2019-11-14 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种针对特定软件移植的跨处理器性能快速评估方法
CN112947928A (zh) * 2019-12-10 2021-06-11 北京沃东天骏信息技术有限公司 代码评价的方法、装置、电子设备和存储介质
CN111274146A (zh) * 2020-01-20 2020-06-12 北京百度网讯科技有限公司 一种代码度量方法、装置、电子设备和介质
CN113342634A (zh) * 2020-03-02 2021-09-03 北京沃东天骏信息技术有限公司 软件质量评估的方法和装置
CN111767212A (zh) * 2020-06-17 2020-10-13 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质
CN111767212B (zh) * 2020-06-17 2024-05-14 中国船舶重工集团公司第七一九研究所 一种软件代码质量评价方法、装置、设备及存储介质
CN112000573A (zh) * 2020-08-17 2020-11-27 苏州达家迎信息技术有限公司 代码质量的监控方法、装置、计算机设备及介质
CN112000573B (zh) * 2020-08-17 2022-10-28 苏州达家迎信息技术有限公司 代码质量的监控方法、装置、计算机设备及介质
CN112306470A (zh) * 2020-10-19 2021-02-02 南京航空航天大学 一种复杂同步语言程序的化简转化和自动验证方法
CN112306470B (zh) * 2020-10-19 2022-04-08 南京航空航天大学 一种复杂同步语言程序的化简转化和自动验证方法
CN112597062A (zh) * 2021-02-04 2021-04-02 北京关键科技股份有限公司 军用软件结构化质量数据抽取方法、装置及软件测试装置
CN115983719A (zh) * 2023-03-16 2023-04-18 中国船舶集团有限公司第七一九研究所 一种软件综合质量评价模型的训练方法及系统

Also Published As

Publication number Publication date
CN101261604B (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101261604B (zh) 一种软件质量评价装置及软件质量评价的定量分析方法
Pol et al. Unstable taxa in cladistic analysis: identification and the assessment of relevant characters
US9710257B2 (en) System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
EP2643753B1 (en) Method to measure software reuse and corresponding computer program product
CN110737899A (zh) 一种基于机器学习的智能合约安全漏洞检测方法
CN114519498B (zh) 一种基于bim模型的质量验评方法和系统
CN114546868A (zh) 代码覆盖率测试方法、装置和电子设备
CN107066384A (zh) 基于Halstead复杂度度量的软件演化评估方法
CN106155897A (zh) 一种业务处理方法及装置
Ferrucci et al. Investigating functional and code size measures for mobile applications
CN107045477A (zh) 一种可进行多维度检测的质量评估平台
CN108363660B (zh) 一种测试程序生成方法和装置
Mäkinen et al. Propagating the errors of initial forest variables through stand-and tree-level growth simulators
CN112380123A (zh) 一种面向c/c++混源软件的自动化质量评估系统设计方法
Steinbeck et al. Javadoc violations and their evolution in open-source software
WO2023206873A1 (zh) 基于抽象语法树的代码检测方法、装置、设备及存储介质
KR20200050298A (ko) 지능형 정보시스템 운영 성과 측정 방법
JP7062243B1 (ja) 品質情報出力装置、品質情報出力方法、およびプログラム
CN115562981A (zh) 基于机器学习的软件质量评估方法
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
CN113919609A (zh) 一种配电网模型质量综合评估方法和系统
Ju et al. Data Quality Test Method for Factory Energy Management System
Kaffashzadeh et al. A new tool for automated quality control of environmental time series (autoqc4env) in open web services
Schmidt et al. Evaluating individual tree growth models
CN117951027A (zh) 全量项目代码的检测方法、装置、存储介质以及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171222

Address after: 221300, Xuzhou, Jiangsu City, Pizhou province Pizhou Economic Development Zone on the north side of Liaohe Road, North Huashan Road West

Patentee after: Huang Shaowei

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20171222

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518057 Nanshan District high tech Industrial Park, Guangdong, South Road, science and technology, ZTE building, legal department

Patentee before: ZTE Corp.

TR01 Transfer of patent right

Effective date of registration: 20181105

Address after: 510640 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 221300 Jiangsu Xuzhou Pizhou Pizhou Economic Development Zone north of Liaohe West Road, west side of Huashan North Road.

Patentee before: Huang Shaowei

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181214

Address after: 221351 Industrial Park, Zhuang Town, Pizhou City, Xuzhou, Jiangsu

Patentee after: Xuzhou Tie Shou hardware tools Manufacturing Co.,Ltd.

Address before: 510640 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20180409

CF01 Termination of patent right due to non-payment of annual fee