CN108182141A - 软件质量评价方法和系统 - Google Patents

软件质量评价方法和系统 Download PDF

Info

Publication number
CN108182141A
CN108182141A CN201611123267.5A CN201611123267A CN108182141A CN 108182141 A CN108182141 A CN 108182141A CN 201611123267 A CN201611123267 A CN 201611123267A CN 108182141 A CN108182141 A CN 108182141A
Authority
CN
China
Prior art keywords
module
evaluated
software
sample
known module
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
CN201611123267.5A
Other languages
English (en)
Other versions
CN108182141B (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.)
China Electronic Product Reliability and Environmental Testing Research Institute
Original Assignee
China Electronic Product Reliability and Environmental Testing Research Institute
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 China Electronic Product Reliability and Environmental Testing Research Institute filed Critical China Electronic Product Reliability and Environmental Testing Research Institute
Priority to CN201611123267.5A priority Critical patent/CN108182141B/zh
Publication of CN108182141A publication Critical patent/CN108182141A/zh
Application granted granted Critical
Publication of CN108182141B publication Critical patent/CN108182141B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种软件质量评价方法和系统,该方法包括:采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量得到对应待评价模块的度量值;根据待评价模块的度量值生成待评价模块的度量向量;根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、对应各已知模块的挖掘模型参数、对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据;根据各待评价模块的挖掘数据获取待评价软件的质量评价值。如此,可用于开发过程中的或未发布的软件,以便及时发现开发过程中的质量问题,提高软件开发效果。

Description

软件质量评价方法和系统
技术领域
本发明涉及软件开发技术领域,特别是涉及一种软件质量评价方法和系统。
背景技术
随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,软件系统的质量问题极有可能会导致严重后果,因此,对软件质量进行评价显得越来越重要。
传统技术中,通常采用McCall模型、Boehm模型和ISO/IEC 9126模型等对软件的运行状态或使用情况来评价软件质量。然而,这些评价模型主要面向已经发布的可以运行的软件产品,但无法对开发过程中的或未发布的软件进行质量评价,不能及时发现开发过程中的质量问题,软件开发效果差。
发明内容
基于此,有必要针对上述问题,提供一种对开发过程中的软件进行质量评价的软件质量评价方法和系统。
一种软件质量评价方法,包括:
采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应所述待评价模块的度量值;
根据所述待评价模块的度量值生成所述待评价模块的度量向量;
根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据;
根据各待评价模块的挖掘数据获取所述待评价软件的质量评价值。
一种软件质量评价系统,包括:
度量值获取模块,用于采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应所述待评价模块的度量值;
度量向量获取模块,用于根据所述待评价模块的度量值生成所述待评价模块的度量向量;
挖掘数据计算模块,用于根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据;
质量评价模块,用于根据各待评价模块的挖掘数据获取所述待评价软件的质量评价值。
上述软件质量评价方法和系统,通过采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应待评价模块的度量值,并根据待评价模块的度量值生成待评价模块的度量向量;然后根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、对应各已知模块的挖掘模型参数、对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据;根据各待评价模块的挖掘数据获取待评价软件的质量评价值。软件度量方法可以对开发过程中或开发早期的软件数据进行采集分析得到度量向量,并利用度量向量和预存的数据对待评价软件的质量进行定量评价。如此,可客观反映待评价软件的质量水平,可用于开发过程中的或未发布的软件,以便及时发现开发过程中的质量问题,提高软件开发效果。
附图说明
图1为一实施例中软件质量评价方法的流程图;
图2为一实施例中数据准备步骤的流程图;
图3为一实施例中根据已知模块的度量值生成已知模块的度量向量的具体流程图;
图4为一实施例中软件质量评价系统的模块框图。
具体实施方式
参考图1,一实施例中的软件质量评价方法,可用于开发过程中的软件或未发布的软件,该方法包括如下步骤。
S110:采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应待评价模块的度量值。
待评价软件指需要进行质量评价的软件,可以是开发过程中的软件或未发布的软件。一个软件通常包括多个软件模块,待评价模块指待评价软件所包括的所有软件模块。软件度量方法可以在软件开发早期从软件产品获取软件度量数据,对源代码进行静态度量,从而对软件开发过程中的数据进行分析。软件度量方法可以包括一种或多种,对不同的待评价模块所采用的软件度量方法相同。每一种软件度量方法对待评价模块的源代码进行静态度量,可得到一个或多个度量值,步骤S110中待评价模块的度量值包括所有软件度量方法对应得到的所有度量值。例如,采用了A种软件度量方法,每种软件度量方法对应B个度量值,则一个待评价模块的度量值的个数为A*B。
在一实施例中,软件度量方法包括Halstead度量、Mccabe度量和CK(ChidamberKemerer)度量中的至少一种。Halstead度量方法是一种程序复杂度度量方法,以程序中出现的操作符和操作数为计数对象,以它们的出现次数作为计数目标来测算程序容量和工作量。Mccabe度量方法是基于程序控制流的复杂性度量方法,以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。CK度量方法是一种面向对象的度量方法。Halstead度量、Mccabe度量和CK度量均可对软件开发早期的源代码进行静态度量。可以理解,在其他实施例中,还可以采用其他的软件度量方法。
S120:根据待评价模块的度量值生成待评价模块的度量向量。
同一个待评价模块的度量值有一个或多个,将一个或多个度量值作为向量元素即可组合生成待评价模块的度量向量。待评价软件的度量向量的维度等于每一个待评价模块所对应的度量值的个数;每一个待评价模块对应有一个度量向量,度量向量的数量等于待评价模块的数量。
S130:根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据。
预设常数可根据实际需要具体设置。已知软件指试验给定的软件,已知模块指已知软件所包括的软件模块。每一个已知模块对应一个预设缺陷标记值、挖掘模型参数和度量向量。软件模块可能存在缺陷(bug),预设缺陷标记值指用于标记已知模块是否有缺陷的值,可以预先存储,例如可以用0和1作为标记用的数值,flag表示缺陷标记,flag=1表示有缺陷,flag=0表示没有缺陷。已知模块的挖掘模型参数可以对已知模块进行数据试验后得到并预先存储;已知模块的度量向量同样可以对已知模块进行数据试验后得到并预先存储。
在一实施例中,步骤S130包括:
其中,i为已知模块的序号,k为待评价模块的序号,N为已知模块的总数目,λi为第i个已知模块的挖掘模型参数,flagi为第i个已知模块的预设缺陷标记值,yi为第i个已知模块的度量向量,Tk为第k个待评价模块的度量向量,K(yi,Tk)为yi与Tk之间的核函数,b为预设常数,g(Tk)为第k个待评价模块的挖掘数据。
S140:根据各待评价模块的挖掘数据获取待评价软件的质量评价值。
一个待评价模块对应一个挖掘数据,挖掘数据的数量等于待评价模块的数量,根据多个待评价模块的挖掘数据,可以得到对应待评价软件的质量评价值。质量评价值用于表示软件质量的高低。
在一实施例中,步骤S140包括:
其中,k为待评价模块的序号,M为待评价模块的总数目,g(Tk)为第k个待评价模块的挖掘数据,Quality为待评价软件的质量评价值。
本实施例中,质量评价值为0到1之间的值,质量评价值越大,表示待评价软件的质量越高。
上述软件质量评价方法,通过采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应待评价模块的度量值,并根据待评价模块的度量值生成待评价模块的度量向量;然后根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、对应各已知模块的挖掘模型参数、对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据;根据各待评价模块的挖掘数据获取待评价软件的质量评价值。软件度量方法可以对开发过程中或开发早期的软件数据进行采集分析得到度量向量,并利用度量向量和预存的数据对待评价软件的质量进行定量评价。如此,可客观反映待评价软件的质量水平,可用于开发过程中的或未发布的软件,以便及时发现开发过程中的质量问题,提高软件开发效果。
在一实施例中,参考图2,步骤S130之前还包括数据准备步骤,包括步骤S101至步骤S105。
S101:采用软件度量方法,对已知软件中各已知模块的源代码进行静态度量,得到对应已知模块的度量值。
对已知软件的已知模块进行度量所采用的软件度量方法,与对待评价模块进行度量所采用的软件度量方法相同。
S102:根据已知模块的度量值生成已知模块的度量向量。
S103:根据各已知模块的预设缺陷标记值分别获取各已知模块的缺陷状态。
缺陷状态包括有缺陷和无缺陷。预设缺陷标记值包括两种,一种对应的缺陷状态为有缺陷,另一种对应的缺陷状态为无缺陷,因此,根据预设缺陷标记值即可得知缺陷状态。例如,采用“1”表示有缺陷,采用“0”表示无缺陷。
S104:将缺陷状态为有缺陷的已知模块的度量向量作为有缺陷样本,将缺陷状态为无缺陷的已知模块的度量向量作为无缺陷样本,并获取各有缺陷样本与各无缺陷样本两两之间的核函数。
通过根据缺陷状态可将各已知模块的度量向量分为两类,一类为有缺陷样本,异类为无缺陷样本。获取各有缺陷样本与各无缺陷样本两两之间的核函数,即轮流以所有有缺陷样本中的某一个有缺陷样本为固定对象,计算该固定对象与所有的无缺陷样本之间的核函数,以及轮流以所有无缺陷样本中的某一个无缺陷样本为固定对象,计算该固定对象与所有的有缺陷样本之间的核函数,总的核函数的个数为有缺陷样本的个数与无缺陷样本的个数的乘积。
S105:根据核函数、缺陷标记值、有缺陷样本、无缺陷样本和预存的挖掘函数模型,计算得到各已知模块的挖掘模型参数。
在一实施例中,预存的挖掘函数模型,包括:
其中,i为已知模块的序号,N为已知模块的总数目,λi为第i个已知模块的挖掘模型参数,yi为第i个已知模块的度量向量,C为预设惩罚因子;s为有缺陷样本的序号,t为无缺陷样本的序号,λs为第s个有缺陷样本对应已知模块的挖掘模型参数,λt为第t个无缺陷样本对应已知模块的挖掘模型参数,flags为第s个有缺陷样本对应已知模块的预设缺陷标记值,flagt为第t个无缺陷样本对应已知模块的预设缺陷标记值,ys为第s个有缺陷样本,yt为第t个无缺陷样本,K(ys,yt)为ys与yt之间的核函数。
通过步骤S101至步骤S105可以得到各已知模块的挖掘模型参数、各已知模块的度量向量、各已知模块的预设缺陷标记值并存储,从而对待评价软件进行评价时可直接调用。可以理解,步骤S101至步骤S105可以于步骤S120之后执行,也可于步骤S110之前执行。
在一实施例中,参考图3,步骤S102包括步骤S1021至步骤S1028。
S1021:根据已知模块的度量值生成已知模块的初始度量向量。
同一个已知模块的度量值有一个或多个,将一个或多个度量值作为向量元素即可组合生成已知模块的初始度量向量。
S1022:分别以各已知模块的初始度量向量为基础样本,根据各已知模块的预设缺陷标记值查找与基础样本同类的已知模块的初始度量向量并作为基础样本的同类样本,以及查找与基础样本异类的已知模块的初始度量向量并作为基础样本的异类样本。
一个已知模块的初始度量向量对应为一个基础样本,则基础样本的数量等于已知模块的总数目。预设缺陷标记值可以表征缺陷状态,同一种缺陷状态的已知模块,对应的预设缺陷标记值相同。查找与基础样本同类的已知模块的初始度量向量,即查找与基础样本的预设缺陷标记一致的预设缺陷标记,将查找到的预设缺陷标记对应的初始度量向量为同类样本。同理,异类样本的预设缺陷标记与基础样本的预设缺陷标记不一致。
S1023:分别计算各同类样本与基础样本之间的距离得到同类距离,按照从小到大的顺序,从同类距离中选取第一预设个数的同类距离,将选取的同类距离对应的同类样本作为基础样本的同类近邻样本。
同类距离的计算,具体可以是计算欧式距离。同类距离越小,表示对应的同类样本与基础样本越相近。因此,通过按照同类距离从小到大的顺序选取得到的同类近邻样本为与基础样本最近的同类样本。
S1024:分别计算各异类样本与基础样本之间的距离得到异类距离,按照从小到大的顺序,分别从异类距离中选取第二预设个数的异类距离,将选取的异类距离对应的异类样本作为基础样本的异类近邻样本。
异类距离的计算,也可以是计算欧式距离。异类距离越小,表示对应的异类样本与基础样本越相近。因此,通过按照异类距离从小到大的顺序选取得到的异类近邻样本为与基础样本最近的异类样本。
S1025:根据基础样本、同类近邻样本和异类近邻样本生成基础样本的局部数据块。
基础样本、同类近邻样本和异类近邻样本均对应为已知模块的初始度量向量。将基础样本、同类近邻样本和异类近邻样本作为向量的元素可以得到局部数据块,局部数据块中元素的个数为第一预设个数、第二预设个数与一的和。例如,基础样本为xi,同类近邻样本为异类近邻样本为其中i表示基础样本对应的已知模块的序号,m1为第一预设个数,m2为第二预设个数;此时,基础样本的局部数据块为
S1026:根据预设尺度因子、第一预设个数和第二预设个数得到各已知模块的尺度因子向量,并根据各已知模块的尺度因子向量获取校正矩阵。
在一实施例中,根据预设尺度因子、第一预设个数和第二预设个数得到各已知模块的尺度因子向量,包括:
其中,i为已知模块的序号,m1为第一预设个数,m2为第二预设个数,β为预设尺度因子,ωi为第i个已知模块的尺度因子向量。
根据各已知模块的尺度因子向量获取校正矩阵包括:分别根据各已知模块的尺度因子向量获取各已知模块的矩阵,根据各已知模块的矩阵迭代得到校正矩阵。
其中,R表示向量空间。
各已知模块对应的矩阵的表达式推导过程为:
为Xi优化处理后的低维代表,可满足以下目标函数公式,得到局部最优目标函数:
实现部分最优后,将所有基础样本的局部最优目标函数加权后校正到整体最优中,最终可以得到全局优化目标函数:
Fi={i,i1,i2,...,im1,i1',i2',...,im2};
其中,Fi为Xi中已知模块的序号集的合。
将全局优化目标函数进行推导,得到以下公式:
em1+m2=[1,...,1]T∈Rm1+m2
其中tr(·)表示求取矩阵的迹。
S1027:根据校正矩阵和各基础样本的局部数据块生成特征函数,对特征函数进行特征值分解,得到特征函数的特征值所对应的特征向量矩阵并作为投影矩阵。
一个基础样本对应一个局部数据块,因此局部数据块的数量等于已知模块的总数目。根据校正矩阵和各基础样本的局部数据块生成特征函数,包括:根据各基础样本的局部数据块生成全局数据块,根据全局数据块和校正矩阵生成特征函数。本实施例中,根据各基础样本的局部数据块生成全局数据块,包括:
X=[X1,X2,...,XN];
根据全局数据块和校正矩阵生成特征函数,包括
Z=XLXT
其中,X为全局数据块,N为已知模块的总数目,X1为第一个已知模块的局部数据块,X2为第二个已知模块的局部数据块,XN为第N个已知模块的局部数据块,Z为特征函数,L为校正矩阵。
S1028:利用投影矩阵对各已知模块的初始度量向量进行去噪处理,得到优化后的各已知模块的度量向量。
本实施例中,步骤S1028包括:
yi=Uxi
其中,i为已知模块的序号,U为投影矩阵,xi为第i个已知模块的初始度量向量,yi为优化后的第i个已知模块的度量向量。
由于各种软件度量方法对数据的计算方法不同,取值范围和含义也各不相同,得到的度量值分布不规则,会导致质量评价产生偏向性。步骤S1021至步骤S1028通过对度量值进行预处理分析,通过降维去噪等方法在高维空间进行映射,形成优化后的已知模块的度量向量,保证了数据分布的合理性,提高了软件质量评价的可信性和准确性。
在一实施例中,步骤S140之后,还包括步骤(a1)至步骤(a3)。
步骤(a1):判断质量评价值是否大于或等于预设值。
预设值可以根据实际需要具体设置。
步骤(a2):生成高质量结果信息。
高质量结果信息,用于表示待评价软件的质量为高质量。
步骤(a3):生成低质量结果信息。
低质量结果信息,用于表示待评价软件的质量为低质量。
通过将预设值作为高低质量的评判标准,将质量评价值与预设值进行比较,根据比较结果得出质量评价结果,可以直观得知待评价软件的质量高低结果,使用户一目了然。
参考图4,一实施例中的软件质量评价系统,包括度量值获取模块110、度量向量获取模块120、挖掘数据计算模块130和质量评价模块140。
度量值获取模块110用于采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应待评价模块的度量值。
度量向量获取模块120用于根据待评价模块的度量值生成待评价模块的度量向量。
挖掘数据计算模块130用于根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据。
质量评价模块140用于根据各待评价模块的挖掘数据获取待评价软件的质量评价值。
上述软件质量评价系统,通过度量值获取模块110采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应待评价模块的度量值,度量向量获取模块120根据待评价模块的度量值生成待评价模块的度量向量;然后挖掘数据计算模块130根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、对应各已知模块的挖掘模型参数、对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据;质量评价模块140根据各待评价模块的挖掘数据获取待评价软件的质量评价值。软件度量方法可以对开发过程中或开发早期的软件数据进行采集分析得到度量向量,并利用度量向量和预存的数据对待评价软件的质量进行定量评价。如此,可客观反映待评价软件的质量水平,可用于开发过程中的或未发布的软件,以便及时发现开发过程中的质量问题,提高软件开发效果。
在一实施例中,软件质量评价系统还包括已知软件度量模块(图未示)、向量生成模块(图未示)、缺陷状态获取模块(图未示)、分类模块(图未示)和挖掘模型参数获取模块(图未示)。
已知软件度量模块用于在挖掘数据计算模块130根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及待评价模块的度量向量,分别获取各待评价模块的挖掘数据之前,采用软件度量方法,对已知软件中各已知模块的源代码进行静态度量,得到对应已知模块的度量值。
向量生成模块用于根据已知模块的度量值生成已知模块的度量向量。
缺陷状态获取模块用于根据各已知模块的预设缺陷标记值分别获取各已知模块的缺陷状态。
分类模块用于将缺陷状态为有缺陷的已知模块的度量向量作为有缺陷样本,将缺陷状态为无缺陷的已知模块的度量向量作为无缺陷样本,并获取各有缺陷样本与各无缺陷样本两两之间的核函数。
挖掘模型参数获取模块用于根据核函数、缺陷标记值、有缺陷样本、无缺陷样本和预存的挖掘函数模型,计算得到各已知模块的挖掘模型参数。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种软件质量评价方法,其特征在于,包括:
采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应所述待评价模块的度量值;
根据所述待评价模块的度量值生成所述待评价模块的度量向量;
根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据;
根据各待评价模块的挖掘数据获取所述待评价软件的质量评价值。
2.根据权利要求1所述的软件质量评价方法,其特征在于,所述根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据之前,还包括:
采用所述软件度量方法,对所述已知软件中各已知模块的源代码进行静态度量,得到对应所述已知模块的度量值;
根据所述已知模块的度量值生成所述已知模块的度量向量;
根据各已知模块的预设缺陷标记值分别获取各已知模块的缺陷状态;
将所述缺陷状态为有缺陷的已知模块的度量向量作为有缺陷样本,将所述缺陷状态为无缺陷的已知模块的度量向量作为无缺陷样本,并获取各有缺陷样本与各无缺陷样本两两之间的核函数;
根据所述核函数、所述缺陷标记值、所述有缺陷样本、所述无缺陷样本和预存的挖掘函数模型,计算得到所述各已知模块的挖掘模型参数。
3.根据权利要求2所述的软件质量评价方法,其特征在于,所述根据所述已知模块的度量值生成所述已知模块的度量向量,包括:
根据所述已知模块的度量值生成所述已知模块的初始度量向量;
分别以各已知模块的初始度量向量为基础样本,根据各已知模块的预设缺陷标记值查找与所述基础样本同类的已知模块的初始度量向量并作为所述基础样本的同类样本,以及查找与所述基础样本异类的已知模块的初始度量向量并作为所述基础样本的异类样本;
分别计算各同类样本与所述基础样本之间的距离得到同类距离,按照从小到大的顺序,从所述同类距离中选取第一预设个数的同类距离,将选取的同类距离对应的同类样本作为所述基础样本的同类近邻样本;
分别计算各异类样本与所述基础样本之间的距离得到异类距离,按照从小到大的顺序,分别从所述异类距离中选取第二预设个数的异类距离,将选取的异类距离对应的异类样本作为所述基础样本的异类近邻样本;
根据所述基础样本、所述同类近邻样本和所述异类近邻样本生成所述基础样本的局部数据块;
根据预设尺度因子、所述第一预设个数和所述第二预设个数得到各已知模块的尺度因子向量,并根据各已知模块的尺度因子向量获取校正矩阵;
根据所述校正矩阵和各基础样本的局部数据块生成特征函数,对所述特征函数进行特征值分解,得到所述特征函数的特征值所对应的特征向量矩阵并作为投影矩阵;
利用所述投影矩阵对各已知模块的初始度量向量进行去噪处理,得到优化后的各已知模块的度量向量。
4.根据权利要求2所述的软件质量评价方法,其特征在于,所述预存的挖掘函数模型,包括:
其中,i为所述已知模块的序号,N为所述已知模块的总数目,λi为第i个已知模块的挖掘模型参数,yi为第i个已知模块的度量向量,C为预设惩罚因子;s为所述有缺陷样本的序号,t为所述无缺陷样本的序号,λs为第s个有缺陷样本对应已知模块的挖掘模型参数,λt为第t个无缺陷样本对应已知模块的挖掘模型参数,flags为第s个有缺陷样本对应已知模块的预设缺陷标记值,flagt为第t个无缺陷样本对应已知模块的预设缺陷标记值,ys为第s个有缺陷样本,yt为第t个无缺陷样本,K(ys,yt)为ys与yt之间的核函数。
5.根据权利要求1所述的软件质量评价方法,其特征在于,所述根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据,包括:
其中,i为所述已知模块的序号,k为所述待评价模块的序号,N为所述已知模块的总数目,λi为第i个已知模块的挖掘模型参数,flagi为第i个已知模块的预设缺陷标记值,yi为第i个已知模块的度量向量,Tk为第k个待评价模块的度量向量,K(yi,Tk)为yi与Tk之间的核函数,b为所述预设常数,g(Tk)为第k个待评价模块的挖掘数据。
6.根据权利要求1所述的软件质量评价方法,其特征在于,所述根据各待评价模块的挖掘数据获取所述待评价软件的质量评价值,包括:
其中,k为所述待评价模块的序号,M为所述待评价模块的总数目,g(Tk)为第k个待评价模块的挖掘数据,Quality为所述待评价软件的质量评价值。
7.根据权利要求1所述的软件质量评价方法,其特征在于,所述根据各待评价模块的挖掘数据和预存的评价函数模型计算得到所述待评价软件的质量评价值之后,还包括:
判断所述质量评价值是否大于或等于预设值;
若是,则生成高质量结果信息;
若否,则生成低质量结果信息。
8.根据权利要求1所述的软件质量评价方法,其特征在于,所述软件度量方法包括Halstead度量、Mccabe度量和CK度量中的至少一种。
9.一种软件质量评价系统,其特征在于,包括:
度量值获取模块,用于采用预设的软件度量方法,对待评价软件中各待评价模块的源代码进行静态度量,得到对应所述待评价模块的度量值;
度量向量获取模块,用于根据所述待评价模块的度量值生成所述待评价模块的度量向量;
挖掘数据计算模块,用于根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据;
质量评价模块,用于根据各待评价模块的挖掘数据获取所述待评价软件的质量评价值。
10.根据权利要求9所述的软件质量评价系统,其特征在于,还包括:
已知软件度量模块,用于在挖掘数据计算模块根据预设常数、对应已知软件中各已知模块的预设缺陷标记值、预存的对应各已知模块的挖掘模型参数、预存的对应各已知模块的度量向量及所述待评价模块的度量向量,分别获取各待评价模块的挖掘数据之前,采用所述软件度量方法,对所述已知软件中各已知模块的源代码进行静态度量,得到对应所述已知模块的度量值;
向量生成模块,用于根据所述已知模块的度量值生成所述已知模块的度量向量;
缺陷状态获取模块,用于根据各已知模块的预设缺陷标记值分别获取各已知模块的缺陷状态;
分类模块,用于将所述缺陷状态为有缺陷的已知模块的度量向量作为有缺陷样本,将所述缺陷状态为无缺陷的已知模块的度量向量作为无缺陷样本,并获取各有缺陷样本与各无缺陷样本两两之间的核函数;
挖掘模型参数获取模块,用于根据所述核函数、所述缺陷标记值、所述有缺陷样本、所述无缺陷样本和预存的挖掘函数模型,计算得到所述各已知模块的挖掘模型参数。
CN201611123267.5A 2016-12-08 2016-12-08 软件质量评价方法和系统 Active CN108182141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611123267.5A CN108182141B (zh) 2016-12-08 2016-12-08 软件质量评价方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611123267.5A CN108182141B (zh) 2016-12-08 2016-12-08 软件质量评价方法和系统

Publications (2)

Publication Number Publication Date
CN108182141A true CN108182141A (zh) 2018-06-19
CN108182141B CN108182141B (zh) 2020-12-08

Family

ID=62544802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611123267.5A Active CN108182141B (zh) 2016-12-08 2016-12-08 软件质量评价方法和系统

Country Status (1)

Country Link
CN (1) CN108182141B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261604A (zh) * 2008-04-09 2008-09-10 中兴通讯股份有限公司 一种软件质量评价装置及软件质量评价的定量分析方法
US8146058B2 (en) * 2006-12-13 2012-03-27 Infosys Limited Measuring quality of software modularization
CN104899135A (zh) * 2015-05-14 2015-09-09 工业和信息化部电子第五研究所 软件缺陷预测方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8146058B2 (en) * 2006-12-13 2012-03-27 Infosys Limited Measuring quality of software modularization
CN101261604A (zh) * 2008-04-09 2008-09-10 中兴通讯股份有限公司 一种软件质量评价装置及软件质量评价的定量分析方法
CN104899135A (zh) * 2015-05-14 2015-09-09 工业和信息化部电子第五研究所 软件缺陷预测方法和系统

Also Published As

Publication number Publication date
CN108182141B (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
TWI585397B (zh) 用於自動缺陷分類之不明缺陷拒絕率之最佳化
CN108345544B (zh) 一种基于复杂网络的软件缺陷分布影响因素分析方法
Yuan et al. Detection of spatial defect patterns generated in semiconductor fabrication processes
CN109948647A (zh) 一种基于深度残差网络的心电图分类方法及系统
CN109936582A (zh) 构建基于pu学习的恶意流量检测模型的方法及装置
CN111126865B (zh) 一种基于科技大数据的技术成熟度判断方法和系统
CN116188475A (zh) 一种外观缺陷自动光学检测的智慧控制方法、系统及介质
CN108416373A (zh) 一种基于正则化Fisher阈值选择策略的不平衡数据分类系统
CN111860624A (zh) 一种基于决策树的电网故障信息分类方法
CN111338972A (zh) 基于机器学习的软件缺陷与复杂度关联关系分析方法
CN107016416B (zh) 基于邻域粗糙集和pca融合的数据分类预测方法
CN115456107A (zh) 一种时间序列异常检测系统及方法
CN109857653B (zh) 一种基于主动学习的无监督缺陷程序模块识别方法
Nagwani et al. A data mining model to predict software bug complexity using bug estimation and clustering
CN116579842B (zh) 基于用户行为数据的信用数据分析方法及系统
CN115034278A (zh) 性能指标异常检测方法、装置、电子设备和存储介质
CN117151488A (zh) 一种寒潮大风天气样本扩充方法、系统、存储介质及设备
CN111612149A (zh) 一种基于决策树的主网线路状态检测方法、系统及介质
CN108182141A (zh) 软件质量评价方法和系统
CN113642209B (zh) 基于数字孪生的结构植入故障响应数据获取及评判方法
CN108073934A (zh) 近重复图像检测方法与装置
CN108121993A (zh) 一种数据处理方法及装置
CN112732549B (zh) 基于聚类分析的测试程序分类方法
CN112559590A (zh) 一种测绘数据资源处理方法、装置及服务器
CN110490226A (zh) 一种识别方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 511300 No.78, west of Zhucun Avenue, Zhucun street, Zengcheng District, Guangzhou City, Guangdong Province

Applicant after: CHINA ELECTRONIC PRODUCT RELIABILITY AND ENVIRONMENTAL TESTING Research Institute

Address before: 510610 No. 110 Zhuang Road, Tianhe District, Guangdong, Guangzhou, Dongguan

Applicant before: CHINA ELECTRONIC PRODUCT RELIABILITY AND ENVIRONMENTAL TESTING Research Institute

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant