CN114816963B - 嵌入式软件质量评估方法、系统、计算机及可读存储介质 - Google Patents
嵌入式软件质量评估方法、系统、计算机及可读存储介质 Download PDFInfo
- Publication number
- CN114816963B CN114816963B CN202210738096.6A CN202210738096A CN114816963B CN 114816963 B CN114816963 B CN 114816963B CN 202210738096 A CN202210738096 A CN 202210738096A CN 114816963 B CN114816963 B CN 114816963B
- Authority
- CN
- China
- Prior art keywords
- software
- intervention
- sample
- value
- variable
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
一种嵌入式软件质量评估方法、系统、计算机及可读存储介质,该方法包括:在样本数据集中的各个软件样本中提取多个特征种类的软件特征;将各个软件样本分划分为干预组和控制组;计算各个软件样本的倾向性评分值,并采用逆概率加权法对各个软件样本的倾向性评分值进行加权计算;根据加权计算后的倾向性评分值对干预组和控制组进行因果效应计算;将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,并利用样本数据集对神经网络模型进行训练;利用训练好的神经网络模型对待测试的软件进行软件质量评估。本发明可以有效解决嵌入式软件质量评估不准确的问题。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种嵌入式软件质量评估方法、系统、计算机及可读存储介质。
背景技术
随着互联网的发展,如今软件产业逐渐成熟,软件产品日益增多,对软件质量的要求也越来越高,因此如何建立准确客观的软件质量评价模型成为软件质量领域研究的重要课题。机器学习在近年来发展迅速,机器学习技术已成为构造经验模型的首选方法,根据软件特征数据对软件质量进行分类,在软件质量度量研究中取得了一定的进展,比较常用的是神经网络模型,其强大的非线性映射能力与自学习能力很适合用来从历史数据中寻找软件各个方面的特征与软件质量之间的关系,从而建立软件质量度量模型。
由于软件质量是一个复杂且抽象的集合,对于不同类型的软件衡量其软件质量的标准也大相径庭,嵌入式软件与普通软件之间存在着广泛的差异。在研究普通软件质量评价时,学者们选择了与IOS9126模型的六个特征(功能、可靠性、可用性、效率、可维护性和可移植性)相关的不同质量特征,软件质量评分可以通过公共评分的方式获得。然后,他们使用机器学习模型将软件特征与软件质量评分联系起来。
但是,对于嵌入式软件(如机载软件和车载软件),由于嵌入式软件的保密性,一般通过专家会议进行质量评分,由专家指出与嵌入式软件质量相关的特征。然后,结合所有的专家意见,筛选出与嵌入式软件质量相关的特征。这些特征与软件质量有着复杂的关系,而不是简单的相关关系。在嵌入式软件质量度量模型的训练过程中,目前模型的准确率等指标并不高,无法进行准确的质量度量。原因主要是由不相关特征与软件质量之间的假性相关造成的,这种假性相关本质上是由不相关特征与相关特征之间的微妙关联造成的。例如,如果评估为“优秀”的嵌入式软件在训练集中大多数应用于“计算机”,那么评估为“优秀”的嵌入式软件和“计算机”就会有很强的相关性,从而导致“计算机”这个特征与评估为“优秀”的嵌入式软件这个标签之间产生虚假的相关性。因此,当“优秀”的嵌入式软件没有应用于计算机上,或者其他对象(如评估为“良好”的嵌入式软件)应用在计算机上时,模型容易产生错误的评价。
因此,针对现有技术的不足,提供一种能够准确的进行嵌入式软件质量评估的方法很有必要。
发明内容
基于此,针对现有技术中,嵌入式软件质量评估不准确的问题,本发明提供一种嵌入式软件质量评估方法、系统、计算机及可读存储介质。
本发明实施例第一方面提出了一种嵌入式软件质量评估方法,所述方法包括:
将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征;
遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量;
将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组;
计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值;
根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值;
将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接;
利用训练好的神经网络模型对待测试的软件进行软件质量评估。
进一步的,上述嵌入式软件质量评估方法,其中,所述将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组的步骤包括:
以所述干预变量的值的均值作为阈值,将值大于或等于所述阈值的所述干预变量重新赋值为1,将值小于所述阈值的所述干预变量重新赋值为0;
将各个所述软件样本根据重新赋值后的干预变量的值划分为干预组和控制组,其中,将干预变量的值为1的所述软件样本划入干预组,将干预变量的值为0的所述软件样本划入控制组。
进一步的,上述嵌入式软件质量评估方法,其中,所述计算各个所述软件样本的倾向性评分值的步骤包括:
以所述干预变量为因变量,所述混淆变量为自变量建立一个Logit模型,利用Logit模型将干预变量和混淆变量进行线性拟合;
根据拟合结果计算各个软件样本出现在干预组的概率,得到各个所述软件样本的倾向性评分值。
进一步的,上述嵌入式软件质量评估方法,其中,Logit模型进行线性拟合的公式为:
进一步的,上述嵌入式软件质量评估方法,其中,倾向性评分值的计算公式为:
进一步的,上述嵌入式软件质量评估方法,其中,所述采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算的步骤中,权重公式为:
进一步的,上述嵌入式软件质量评估方法,其中,所述当前特征种类对应的因果效应值的计算公式为:
,其中,n为干预组中的软件样本的数量,m为控制组中的软件样本的数量,i为软件样本的序号,Ti为第i个软件样本的干预变量的值,Yi为第i个软件样本的质量评分值,e(Xi)为第i个软件样本的倾向性评分值,ATEIPW为因果效应值。
本发明还公开了一种嵌入式软件质量评估系统,包括:
特征提取模块,用于将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征;
确定模块,用于遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量;
数据划分模块,用于将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组;
第一计算模块,用于计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值;
第二计算模块,用于根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值;
模型训练模块,用于将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接;
评估模块,利用训练好的神经网络模型对待测试的软件进行软件质量评估。
本发明还公开了一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述的嵌入式软件质量评估方法。
本发明还公开了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的嵌入式软件质量评估方法。
本发明一方面给出了一个更稳定、软件评估准确率更高的嵌入式软件质量度量模型,可以对嵌入式软件质量进行有效合理评估,在软件行业中起到促使软件朝更可靠、更高效的方向发展的作用;另一方面,解决由于嵌入式软件保密性而由专家开会评分出现的数据选择偏差问题,有效提高嵌入式软件质量度量模型的准确率。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明实施例一提供的嵌入式软件质量评估方法的流程图;
图2为本发明嵌入式软件质量评估方法中的干预变量与混淆变量示意图;
图3为本发明嵌入式软件质量评估方法的技术路线图;
图4为本发明实施例二中的嵌入式软件质量评估方法的流程图;
图5为发明实施例三提供的嵌入式软件质量评估系统的结构框图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1,所示为本发明实施例一提供的嵌入式软件质量评估方法,具体包括步骤S11~S17。
步骤S11,将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征。
该样本数据集中包含有多个软件样本,每个软件样本的软件特征和质量评分均是已知的。该软件样本具体采用嵌入式软件。具体实施时对每个软件样本提取软件特征,软件样本的软件特征如表1中所示。序号1至12的数据为12种软件特征,序号13数据为软件质量评分值。软件样本数量例如为1000,每个软件样本都具有f1至f12这12种软件特征以及软件质量评分。
表1
软件质量评分值是用于评价软件质量的量化值,其数据可以分布在集合[0,4]中,具体实施时,可以将软件质量综合评价分为四个等级,其中优秀:3.01-4.00;良好:2.50-3.00;一般:2.00-2.49;差:0.00-1.99。
将同一种类的软件特征归入同一种特征种类的集合中,例如将所有的软件样本的软件特征“模块个数”归入第一特征种类的集合中,将所有的软件样本的软件特征“行数超过200的模块个数”归入第二特征种类的集合中等。
可以理解的,在提取的软件特征的数据集中存在一些异常或缺失数据,且不同的软件特征数据往往具有不同的量纲和量纲单位,因此,提取的软件特征后需要进行数据清理和归一化处理。其中,数据清理具体包括如下内容:
缺失值清洗:在软件特征数据中,偶尔出现某些数据缺失情况,需要对缺失值进行填充,可以使用分布在同一软件质量等级内的该类数据的平均值进行填充;
格式内容清洗:清除掉数据中不该出现的字符,例如在数值中出现以字母O代替数值0的情况;
逻辑错误清洗:使用简单逻辑推理就可以发现数据的问题,防止分析结果走偏,主要步骤为:1)对所有数据去重;2)去除不合理值;3)修正矛盾内容。
为解决软件特征之间的可比性,对软件特征数据进行归一化处理,软件特征数据经过归一化化处理后,各指标处于同一数量级,适合进行综合对比评价。
在数据归一化过程中,采用min-max标准化方法(Min-max normalization),也称为离差标准化,对软件特征数据进行线性变换,使结果值映射到[0-1]之间,转换函数如公式(1)所示。
其中,x*为线性变换后的值,x为软件特征的值,max为软件特征的最大值,min为软件特征的最小值。
步骤S12,遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量。
在分析某种软件特征对软件质量结果的因果效应时,将该种软件特征作为干预变量,其它种类的软件特征作为混淆变量,如将f1作为干预变量,则f2~f12都作为混淆变量,其因果图如图2所示。
步骤S13,将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组。
具体的,将各个软件样本分划分为干预组和控制组时,以该干预变量的值的均值作为阈值,将值大于或等于阈值的干预变量重新赋值为1,将值小于该阈值的所述干预变量重新赋值为0;将各个软件样本根据重新赋值后的干预变量的值划分为干预组和控制组,其中,将干预变量的值为1的软件样本划入干预组,将干预变量的值为0的软件样本划入控制组。
由于干预变量fn(fn是一个向量,为所有软件样本的第n种软件特征)的初始值数据是离散的,需要将其进行二值化处理,以fn软件特征的均值作为阈值,将其数据划分为{0,1}状态,如公式(2)所示。
其中,xmean为特征fn数据均值,x表示软件特征的初始值,x*’表示二值化后的值。根据干预变量的值将其划分为干预组和控制组(值为1分入干预组,值为0分入控制组)。
步骤S14,计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值。
计算某一种软件特征于结果的因果效应,因果模型的核心是比较同一个研究对象在接受干预(Treatment)和不接受干预(Control)时结果差异,使用平均干预效果(Averaged Treatment Effect,ATE)来评判因果效应,如公式(3)所示。
分析因果效应时,其因果效应的衡量可以通过单位T的变动导致的结果Y的变动的大小来衡量(T为干预变量的值,Y为软件质量评分值)。评估因果效应的两个关键是一要保证T的变化,二要保证其他变量的不变。保证混淆变量在评估数据的干预组与控制组的分布是一致。最直接的方法是基于Matching的方法,为干预组匹配与控制组中混淆变量数据相同或相近的样本个体,通过匹配后的个体计算因果效应。
但是,因此该方法很难应用到高维情况中,在高维情况很难找到两个软件特征分布一样的软件样本,并且即使在控制组找到了与干预组中的软件样本特征相近的软件样本,也可能存在软件样本浪费的情况。
例如总共有12个软件样本(实际样本数为1000),“样本1”至“样本6”为干预组,“样本7”至“样本12”为控制组,进行匹配时,可能存在干预组的多个软件样本匹配到控制组中的同一个软件样本,如“样本1”和“样本2”均匹配到“样本7”,“样本3”至“样本4”匹配到“样本8”,“样本5”和“样本6”分别匹配到“样本9”和“样本10”,该中情况下,控制组中“样本11”和“样本12”没有被匹配到,则造成软件样本的浪费。
因此本可采用倾向性评分(Propensity Score,PS)方法来计算两个样本之间的相似性。具体的,在本发明的一实施方式中,计算各个所述软件样本的倾向性评分值的步骤包括:
以所述干预变量为因变量,所述混淆变量为自变量建立一个Logit模型,利用Logit模型将干预变量和混淆变量进行线性拟合;
根据拟合结果计算各个软件样本出现在干预组的概率,得到各个所述软件样本的倾向性评分值。
在倾向性评分中,使用Logit模型,先将干预变量和混淆变量进行线性拟合,以干预变量为因变量,混淆变量为自变量建立一个Logit模型。如公式(4)所示。
xq为第q个混淆变量,为模型结果,p(T=1|X)表示的是软件样本的混淆变量为X的前提下T=1的概率,即在控制组中的概率,βq为模型权值,T为干预变量的值,X为混淆变量的值。根据拟合结果计算样本个体在干预组的概率,即样本的倾向性评分值,如公式(5)所示。
其中,e(X)为软件样本的倾向性评分值,e为自然常数2.718。
通常,可以从干预组中根据倾向性分数匹配控制组中的混淆变量相似的数据,但是以目前计算出的倾向性评分值匹配相似的数据,会浪费控制组中的部分数据,匹配不全面。所以可以采用更合理的逆概率加权算法(Inverse Probability Weighting,IPW),为每个软件样本指定权重,权重公式如公式(6)所示。
r为样本权重,给每个软件样本指定权重,让所有的软件样本具有相似的倾向性评分值,这样可以将所有的软件样本都利用起来。
步骤S15,根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值。
通过计算干预组和控制组中软件质量结果的差值得出因果效应,计算方法如公式(7)所示。
其中,n为干预组中的软件样本的数量,m为控制组中的软件样本的数量,i为软件样本的序号,Ti为干预变量的值,Yi为软件样本的质量评分值,e(Xi)为软件样本的倾向性评分值,ATEIPW为干预变量的平均干预效果值,即当前特征种类对应的因果效应值。
完成当前种类的软件特征的因果效应值后,选择另外一个特征种类的软件特征作为干预变量,其余种类的软件特征作为混淆变量,重复上述步骤。以此类推,可以得到每个种类的软件特征与软件质量的平均干预效果值,记为,e1至ek为第一种至第k种软件特征对应的因果效应值。
步骤S16,将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接。
步骤S17,利用训练好的神经网络模型对待测试的软件进行软件质量评估。
进行软件质量度量时,本实施例采用具有强大非线性拟合能力的BP神经网络模型作为基础模型。通过使用每种软件特征的因果效应值来缓和该种软件特征在模型中的影响,从而提高分类模型的性能和泛化能力。
如图3所示,该BP神经网络模型是一个四层全连接网络,当所有的特征种类按照上述步骤完成因果效应计算时,因果效应值被分配到输入层和第一隐藏层之间的连接,以作为初始权重。具体实施时,输入层和第一隐藏层之间对应的节点间的连接(如图3中输入层和第一隐藏层之间连接的实线)的权重设置为计算出的因果相应值,非对应节点间的连接线(如图3中输入层和第一隐藏层之间连接的虚线)上权重设置为0。
设置好神经网络模型的初始权重后,利用该样本数据集中的各个软件样本的软件特征对该神经网络模型进行训练。具体实施时,将样本数据集按照7:3分为训练集和测试集,对模型进行训练,并在测试集上进行预测,其准确率达到95%,而常规的神经网络模型平均预测准确率只有81%,由此可见,本实施例的模型有效解决了由于嵌入式软件保密性而由专家会议评分出现的数据选择偏差的问题,相比于其它模型具有更高的准确率。
本实施例方法具有如下优势:
(1)给出了一个更稳定、软件评估准确率更高的嵌入式软件质量度量模型,可以对嵌入式软件质量进行有效合理评估,在软件行业中起到促使软件朝更可靠、更高效的方向发展的作用;
(2)解决由于嵌入式软件保密性而由专家开会评分出现的数据选择偏差问题,有效提高嵌入式软件质量度量模型的准确率。
实施例二
许多机器学习方法倾向于利用训练分布中存在的微妙的统计相关性来进行预测,当测试集和训练集从相同的分布中独立采样时,往往能得到较好的效果。然而,由于数据的复杂生成机制,如数据选择偏差和混杂因素,这样的假设很难得到满足。训练集中与标签相关的软件特征并不是它们的本质特征,这导致机器学习模型在评价软件质量时做出不可靠的评估,故本实施例提出一种嵌入式软件质量评估方法,首先,提取每个软件特征与软件质量之间的因果关系,随后,计算出每个特征对质量的因果效应值,然后将这些值分配给BP神经网络模型作为初始权值。最后,对BP神经网络模型进行训练,得到一个因果关系稳定的网络模型,用于嵌入式软件质量度量。
本实施例采用因果推断方法来识别特征与标签之间的真实关系,结合机器学习模型可以对嵌入式软件质量做出更精确的评估。
因果推断的目的是为了区分出软件特征与软件质量相关的真实相关关系和虚假相关关系,在使用因果推断方法分析后,可以得到每个软件特征与软件质量之间的因果效应值(通俗理解为特征对于软件质量的影响值,因果效应值越大说明特征与软件质量的关系越强,越小则越弱)。但是在分析某个软件特征对软件质量的影响时,需要保持其它的软件特征相同(类似于控制变量法),被分析的特征称为干预变量,其它需要保持数据相同的特征被统称为混淆变量,软件质量被称为观察结果。
在使用因果推断算法模型时,必须包含下列一些约束条件:
1)干预变量值必须划分为{0,1}二值状态,根据干预变量值将样本数据集中的各个软件样本划分为干预组和控制组(即为1代表属于干预组,0代表属于控制组);
2)在计算干预组和控制组之间的因果效应值时,需保持所有软件样本的混淆变量值一致。
研究因果关系的一个最基本的目标是找出事物之间真正的因果关系,并去除混乱的伪因果关系。当研究一个软件特征对软件质量的影响时,将研究的软件特征称为干预变量,同样,其它软件特征也可能影响干预变量,其称为混淆变量,因为干预变量导致软件质量结果变化的反应,称之为因果效应。
根据因果效应值来判断特征对结果的影响程度步骤如图4所示,主要包括如下步骤:
1)加载软件特征数据;2)读取所有特征种类的软件特征Fn,i=0;3)i=i+1;4)判断i是否超出特征种类数;5)若否,获得第i种软件类型Fn(i);6)Fn(i)作为干预变量,其他种类的软件特征作为混淆变量;7)以Fn(i)的均值为阈值将干预变量的值二值化,并根据二值化结果将所有的软件样本划分为干预组和控制组;8)计算每个软件样本的倾向性评分;9)采用逆概率加权法为每个样本加权;10)计算因果效应值,值存入Eff={ }。
将计算出的各个特征种类的软件特征的因果效应值输入至BP神经网络中作为初始权重,通过使用每种软件特征的因果效应值来缓和该软件特征在模型中的影响,从而提高分类模型的性能和泛化能力。
需要说明的是,上述的实施过程只是为了说明本申请的可实施性,但这并不代表本申请的嵌入式软件质量评估方法只有上述唯一一种实施流程,相反的,只要能够将本申请的嵌入式软件质量评估方法实施起来,都可以被纳入本申请的可行实施方案。
综上,本发明上述实施例当中的嵌入式软件质量评估方法能够通过该软件质量度量模型对各个软件进行客观的、合理有效的评估,消除了人为主观判断的影响,适用于大范围的推广与使用。
实施例三
请参阅图5,所示为本发明实施例三提供的嵌入式软件质量评估系统,具体的,该嵌入式软件质量评估系统包括:
特征提取模块31,用于将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征;
确定模块32,用于遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量;
数据划分模块33,用于将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组;
第一计算模块34,用于计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值;
第二计算模块35,用于根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值;
模型训练模块36,用于将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接;
评估模块37,利用训练好的神经网络模型对待测试的软件进行软件质量评估。
本发明实施例所提供的嵌入式软件质量评估系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明另一实施例还提供了一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一实施例中的嵌入式软件质量评估方法的步骤。
本发明另一实施例还提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述中任意一实施例中的嵌入式软件质量评估方法的步骤。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (6)
1.一种嵌入式软件质量评估方法,其特征在于,所述方法包括:
将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征;
遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量;
将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组;
计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值;
根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值;
将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接;
利用训练好的神经网络模型对待测试的软件进行软件质量评估;
所述计算各个所述软件样本的倾向性评分值的步骤包括:
以所述干预变量为因变量,所述混淆变量为自变量建立一个Logit模型,利用Logit模型将干预变量和混淆变量进行线性拟合;
根据拟合结果计算各个软件样本出现在干预组的概率,得到各个所述软件样本的倾向性评分值;
其中,Logit模型进行线性拟合的公式为:
所述采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算的步骤中,权重公式为:
所述当前特征种类对应的因果效应值的计算公式为:
2.如权利要求1所述的嵌入式软件质量评估方法,其特征在于,所述将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组的步骤包括:
以所述干预变量的值的均值作为阈值,将值大于或等于所述阈值的所述干预变量重新赋值为1,将值小于所述阈值的所述干预变量重新赋值为0;
将各个所述软件样本根据重新赋值后的干预变量的值划分为干预组和控制组,其中,将干预变量的值为1的所述软件样本划入干预组,将干预变量的值为0的所述软件样本划入控制组。
4.一种嵌入式软件质量评估系统,其特征在于,包括:
特征提取模块,用于将样本数据集中的各个软件样本按照特征种类进行特征提取,得到多个特征种类的软件特征;
确定模块,用于遍历每一个特征种类的软件特征,并将遍历的当前特征种类的软件特征作为干预变量,将其他的特征种类的软件特征作为混淆变量;
数据划分模块,用于将所述干预变量的值进行二值化处理,并根据二值化结果将各个所述软件样本分划分为干预组和控制组;
第一计算模块,用于计算各个所述软件样本的倾向性评分值,并采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算,以使各个所述软件样本具有相似的倾向性评分值;
第二计算模块,用于根据加权计算后的倾向性评分值对所述干预组和所述控制组进行因果效应计算,以得到所述当前特征种类对应的因果效应值;
模型训练模块,用于将计算得到的各个特征种类对应的因果效应值分配到神经网络模型中,以作为目标节点连接的初始权重,并利用所述样本数据集中的各个所述软件样本对所述神经网络模型进行训练,所述目标节点连接为所述神经网络模型的输入层和第一隐藏层之间的连接;
评估模块,利用训练好的神经网络模型对待测试的软件进行软件质量评估;
所述第一计算模块用于:
以所述干预变量为因变量,所述混淆变量为自变量建立一个Logit模型,利用Logit模型将干预变量和混淆变量进行线性拟合;
根据拟合结果计算各个软件样本出现在干预组的概率,得到各个所述软件样本的倾向性评分值;
其中,Logit模型进行线性拟合的公式为:
所述采用逆概率加权法对各个所述软件样本的倾向性评分值进行加权计算的步骤中,权重公式为:
所述当前特征种类对应的因果效应值的计算公式为:
5.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任意一项所述的嵌入式软件质量评估方法。
6.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3中任意一项所述的嵌入式软件质量评估方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738096.6A CN114816963B (zh) | 2022-06-28 | 2022-06-28 | 嵌入式软件质量评估方法、系统、计算机及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210738096.6A CN114816963B (zh) | 2022-06-28 | 2022-06-28 | 嵌入式软件质量评估方法、系统、计算机及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114816963A CN114816963A (zh) | 2022-07-29 |
CN114816963B true CN114816963B (zh) | 2022-09-20 |
Family
ID=82522279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210738096.6A Active CN114816963B (zh) | 2022-06-28 | 2022-06-28 | 嵌入式软件质量评估方法、系统、计算机及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816963B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546290A (zh) * | 2009-04-30 | 2009-09-30 | 上海交通大学 | 提高面向对象型软件中类阶层质量预测准确度的方法 |
CN101710306A (zh) * | 2009-12-15 | 2010-05-19 | 中国科学院软件研究所 | 一种软件可信性检测方法及系统 |
JP2018018197A (ja) * | 2016-07-26 | 2018-02-01 | 日本電信電話株式会社 | ソースコード評価プログラム |
CN107797931A (zh) * | 2017-11-13 | 2018-03-13 | 长春长光精密仪器集团有限公司 | 一种基于二次评价的软件质量评价方法及系统 |
CN109117380A (zh) * | 2018-09-28 | 2019-01-01 | 中国科学院长春光学精密机械与物理研究所 | 一种软件质量评价方法、装置、设备及可读存储介质 |
WO2019002603A1 (en) * | 2017-06-30 | 2019-01-03 | Royal Holloway And Bedford New College | METHOD FOR MONITORING THE PERFORMANCE OF AN AUTOMATIC LEARNING ALGORITHM |
CN109240929A (zh) * | 2018-09-18 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 软件质量预测方法、装置、终端和计算机可读存储介质 |
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
CN110968512A (zh) * | 2019-11-29 | 2020-04-07 | 中国科学院长春光学精密机械与物理研究所 | 软件质量评估方法、装置、设备及计算机可读存储介质 |
CN112199293A (zh) * | 2020-10-19 | 2021-01-08 | 平安国际智慧城市科技股份有限公司 | 软件质量评价方法、装置、终端设备及存储介质 |
CN113190457A (zh) * | 2021-05-17 | 2021-07-30 | 中国船舶工业综合技术经济研究院 | 面向网络化系统的软件可靠性测评方法 |
WO2021229197A1 (en) * | 2020-05-12 | 2021-11-18 | Queen Mary University Of London | Time-varying and nonlinear audio processing using deep neural networks |
CN113722239A (zh) * | 2021-11-01 | 2021-11-30 | 南昌航空大学 | 机载嵌入式软件质量检测方法、装置、介质及电子设备 |
WO2021246742A1 (ko) * | 2020-06-05 | 2021-12-09 | 주식회사 코딩로봇연구소 | 인공지능 기반의 프로그램 코드 평가 시스템 및 방법 |
EP3929752A1 (en) * | 2019-03-26 | 2021-12-29 | Siemens Aktiengesellschaft | Method, apparatus, and system for evaluating code design quality |
CN114139593A (zh) * | 2021-09-08 | 2022-03-04 | 北京邮电大学 | 一种去偏差图神经网络的训练方法、装置和电子设备 |
CN114546804A (zh) * | 2022-02-21 | 2022-05-27 | 上海壁仞智能科技有限公司 | 信息推送的效应评估方法、装置、电子设备和存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5121467A (en) * | 1990-08-03 | 1992-06-09 | E.I. Du Pont De Nemours & Co., Inc. | Neural network/expert system process control system and method |
WO2008155779A2 (en) * | 2007-06-20 | 2008-12-24 | Sanjeev Krishnan | A method and apparatus for software simulation |
US8655821B2 (en) * | 2009-02-04 | 2014-02-18 | Konstantinos (Constantin) F. Aliferis | Local causal and Markov blanket induction method for causal discovery and feature selection from data |
CN103713998A (zh) * | 2013-11-07 | 2014-04-09 | 北京安码科技有限公司 | 一种可扩展的在线静态代码缺陷分析方法 |
CN103810101B (zh) * | 2014-02-19 | 2019-02-19 | 北京理工大学 | 一种软件缺陷预测方法和软件缺陷预测系统 |
CN103995775A (zh) * | 2014-05-20 | 2014-08-20 | 浪潮电子信息产业股份有限公司 | 一种基于神经网络的测试数据生成方法 |
EP3271863B1 (en) * | 2015-03-20 | 2021-07-28 | Fraunhofer Gesellschaft zur Förderung der angewandten Forschung E.V. | Relevance score assignment for artificial neural network |
CN105046045B (zh) * | 2015-06-05 | 2018-06-19 | 河海大学 | 一种基于贝叶斯组合的Web服务QoS预测方法 |
CN105589806B (zh) * | 2015-12-17 | 2018-05-18 | 北京航空航天大学 | 一种基于SMOTE+Boosting算法的软件缺陷倾向预测方法 |
US10552292B2 (en) * | 2016-08-18 | 2020-02-04 | Proov Systems Ltd. | System, method and computer product for management of proof-of-concept software pilots, including neural network-based KPI prediction |
US11373086B2 (en) * | 2017-02-17 | 2022-06-28 | Google Llc | Cooperatively training and/or using separate input and response neural network models for determining response(s) for electronic communications |
US11574051B2 (en) * | 2018-08-02 | 2023-02-07 | Fortinet, Inc. | Malware identification using multiple artificial neural networks |
CA3146476A1 (en) * | 2019-08-27 | 2021-03-04 | Jeffrey Wong | High efficiency interactive testing platform |
US11544575B2 (en) * | 2020-03-31 | 2023-01-03 | Fortinet, Inc. | Machine-learning based approach for malware sample clustering |
-
2022
- 2022-06-28 CN CN202210738096.6A patent/CN114816963B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546290A (zh) * | 2009-04-30 | 2009-09-30 | 上海交通大学 | 提高面向对象型软件中类阶层质量预测准确度的方法 |
CN101710306A (zh) * | 2009-12-15 | 2010-05-19 | 中国科学院软件研究所 | 一种软件可信性检测方法及系统 |
JP2018018197A (ja) * | 2016-07-26 | 2018-02-01 | 日本電信電話株式会社 | ソースコード評価プログラム |
WO2019002603A1 (en) * | 2017-06-30 | 2019-01-03 | Royal Holloway And Bedford New College | METHOD FOR MONITORING THE PERFORMANCE OF AN AUTOMATIC LEARNING ALGORITHM |
CN107797931A (zh) * | 2017-11-13 | 2018-03-13 | 长春长光精密仪器集团有限公司 | 一种基于二次评价的软件质量评价方法及系统 |
CN109240929A (zh) * | 2018-09-18 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 软件质量预测方法、装置、终端和计算机可读存储介质 |
CN109117380A (zh) * | 2018-09-28 | 2019-01-01 | 中国科学院长春光学精密机械与物理研究所 | 一种软件质量评价方法、装置、设备及可读存储介质 |
EP3929752A1 (en) * | 2019-03-26 | 2021-12-29 | Siemens Aktiengesellschaft | Method, apparatus, and system for evaluating code design quality |
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
CN110968512A (zh) * | 2019-11-29 | 2020-04-07 | 中国科学院长春光学精密机械与物理研究所 | 软件质量评估方法、装置、设备及计算机可读存储介质 |
WO2021229197A1 (en) * | 2020-05-12 | 2021-11-18 | Queen Mary University Of London | Time-varying and nonlinear audio processing using deep neural networks |
WO2021246742A1 (ko) * | 2020-06-05 | 2021-12-09 | 주식회사 코딩로봇연구소 | 인공지능 기반의 프로그램 코드 평가 시스템 및 방법 |
CN112199293A (zh) * | 2020-10-19 | 2021-01-08 | 平安国际智慧城市科技股份有限公司 | 软件质量评价方法、装置、终端设备及存储介质 |
CN113190457A (zh) * | 2021-05-17 | 2021-07-30 | 中国船舶工业综合技术经济研究院 | 面向网络化系统的软件可靠性测评方法 |
CN114139593A (zh) * | 2021-09-08 | 2022-03-04 | 北京邮电大学 | 一种去偏差图神经网络的训练方法、装置和电子设备 |
CN113722239A (zh) * | 2021-11-01 | 2021-11-30 | 南昌航空大学 | 机载嵌入式软件质量检测方法、装置、介质及电子设备 |
CN114546804A (zh) * | 2022-02-21 | 2022-05-27 | 上海壁仞智能科技有限公司 | 信息推送的效应评估方法、装置、电子设备和存储介质 |
Non-Patent Citations (5)
Title |
---|
《research of artificial neural network computer of software quality evaluation and prediction method》;Oksana pomorova;《proceedings of the 6th IEEE internationl conference on Intelligent Data Acquisition and Advanced computing Systems》;20111110;全文 * |
《结合多元度量指标软件缺陷预测研究进展》;杨丰玉等;《计算机工程与应用》;20201215;全文 * |
Feature extraction of wood-hole defects using wavelet-based ultrasonic testing;Huiming Yang等;《Journal of Forestry Research》;20170315(第02期);全文 * |
Huiming Yang等.Feature extraction of wood-hole defects using wavelet-based ultrasonic testing.《Journal of Forestry Research》.2017,(第02期), * |
基于BP神经网络的软件行为评估系统;徐婵等;《计算机工程》;20100915;第40卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114816963A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Iqbal et al. | Fault detection and isolation in industrial processes using deep learning approaches | |
Song et al. | Using grey relational analysis to predict software effort with small data sets | |
Chen et al. | A hybrid system for SPC concurrent pattern recognition | |
Brenner et al. | A taxonomy of inference in simulation models | |
Yun | Prediction model of algal blooms using logistic regression and confusion matrix | |
CN108399434B (zh) | 基于特征提取的高维时间序列数据的分析预测方法 | |
CN114638688A (zh) | 一种用于信贷反欺诈的拦截策略衍生方法、系统 | |
Kurra et al. | Water quality prediction using machine learning | |
CN115793590A (zh) | 适用于系统安全运维的数据处理方法及平台 | |
Haga et al. | A neural network approach to measure real activities manipulation | |
Stando et al. | The Effect of Balancing Methods on Model Behavior in Imbalanced Classification Problems | |
CN114816963B (zh) | 嵌入式软件质量评估方法、系统、计算机及可读存储介质 | |
CN112346974A (zh) | 基于深度特征嵌入的跨移动应用程序即时缺陷预测方法 | |
Papadopoulos et al. | Reliable Confidence Intervals for Software Effort Estimation. | |
CN113722239B (zh) | 机载嵌入式软件质量检测方法、装置、介质及电子设备 | |
CN113256304B (zh) | 一种校园卡异常使用行为在线预警方法及系统 | |
Ellis et al. | Characterisation of environment type and difficulty for streamed data classification problems | |
CN114139408A (zh) | 一种电力变压器健康状态评估方法 | |
CN113935413A (zh) | 一种基于卷积神经网的配网录波文件波形识别方法 | |
CN114330485A (zh) | 基于pls-svm-ga算法的电网投资能力预测方法 | |
Himani et al. | A comparative study on machine learning based prediction of citations of articles | |
Thongkum et al. | Design flaws prediction for impact on software maintainability using extreme learning machine | |
Singh et al. | Predicting the remaining useful life of ball bearing under dynamic loading using supervised learning | |
Agarwal et al. | Assessing observability using supervised autoencoders with application to tennessee eastman process | |
Sarajcev et al. | Wide & Deep Machine Learning Model for Transformer Health Analysis |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |