CN108711008A - 一种基于卷积神经网络的多维度软件项目健康度评估方法 - Google Patents
一种基于卷积神经网络的多维度软件项目健康度评估方法 Download PDFInfo
- Publication number
- CN108711008A CN108711008A CN201810475407.8A CN201810475407A CN108711008A CN 108711008 A CN108711008 A CN 108711008A CN 201810475407 A CN201810475407 A CN 201810475407A CN 108711008 A CN108711008 A CN 108711008A
- Authority
- CN
- China
- Prior art keywords
- health
- software project
- node
- model
- layer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
-
- 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
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于卷积神经网络的多维度软件项目健康度评估方法,包括:对FCM模型框架进行结构定义;根据FCM模型框架,收集已完成历史软件项目的开发源数据,计算得到度量元值;利用已完成历史软件项目在验收时双方相互评价,对每个已完成历史软件项目的综合健康分数和多维度要素健康分数进行计算;采用一维卷积神经网络模型对每个健康要素子模型的权重进行训练;利用线性回归模型对综合健康子模型中的权重进行训练;选择合适的FCM模型,计算待评估的软件项目度量元,利用FCM模型计算得到软件项目健康度分数。本发明能够对大型众包平台系统中的软件项目进行公正、客观的健康度自动评估,具有高效和准确性高等特点。
Description
技术领域
本发明涉及一种多维度软件项目健康度评估方法,尤其涉及一种基于卷积神经网络的多维度软件项目健康度评估方法。
背景技术
软件项目健康度和质量评估方法是软件工程中非常重要的研究领域。一套良好的软件项目健康度评估方法能够有效地对进展中的软件项目进行系统全面的健康度与质量评价,为项目监控人员和软件验收人员提供必要的质量参考依据,也为软件开发人员及时发现问题和持续改进软件开发实践提供途径,最终保证项目成功。
然而,随着软件规模和复杂性的不断增加,当前一些软件质量评估方法无法准确评估进展中软件项目的健康度。首先,软件所涉及的种类与应用领域的数量繁多,因此要设计一种通用的软件项目健康度评估方法具有非常大的挑战性;其次,由于软件行业的技术革新日新月异,针对一种特定技术的软件质量评估方法从提出、设计、实验到生产的过程具有较明显的滞后性,导致了某些特定领域的评估技术所面向的用户市场不够广泛,产生了较高的发明与应用风险。因此,针对目前大多数进展中的软件项目,软件质量的评估工作仍然是通过专家评审的方式根据通用的软件产品质量模型来进行。然而,人工审核的过程不可避免地会产生个人主观性质的判断,这势必会对软件所应具有的客观质量评估结果带来一定的负面影响。此外,对于软件领域而言,其项目健康度不仅体现在最终交付物的质量,还应该体现在软件开发过程中的甲乙双方的沟通、进度控制、开发人员的素质和专业能力等质量数据中。然而,当前大多数的软件质量评估方法却仅仅关注于软件制品的质量,例如通过代码来衡量软件系统的可靠性、安全性等,却忽略了整个软件开发过程中一些其他维度的重要质量评估数据。事实上,全面完善的多维度质量数据才能使软件质量得到更科学、更客观的评估。
基于上述问题,提出并设计一种且科学客观的软件项目健康度自动评估方法显得十分重要,这种迫切的需求尤其针对于当前一些规模较大的软件众包平台系统。
发明内容
本发明的目的是提供一种能够应用于大型软件众包平台系统的基于卷积神经网络的多维度软件项目健康度评估方法,针对进展中的软件项目,采用基于一维卷积神经网络的监督学习评估模型,从多维度要素进行健康度自动评估。
本发明提供了一种基于卷积神经网络的多维度软件项目健康度评估方法,包括以下步骤:
步骤1,对FCM模型框架进行结构定义;
步骤2,根据FCM模型框架,收集已完成历史软件项目的开发源数据,计算得到度量元值;
步骤3,利用已完成历史软件项目在验收时双方相互评价,对每个已完成历史软件项目的综合健康分数和多维度要素健康分数进行计算;
步骤4,采用一维卷积神经网络模型对每个健康要素子模型的权重进行训练;
步骤5,利用线性回归模型对综合健康子模型中的权重进行训练;
步骤6,选择合适的FCM模型,计算待评估的软件项目度量元,再利用FCM模型计算得到软件项目健康度分数。
进一步地,所述FCM模型框架为一种四层的树状结构模型,除最上层综合健康度外,依次向下还包括要素层、特性层和度量元层;
所述FCM模型框架中的结构元素由节点和无向边组成,每个节点表示一种软件项目健康特征,层次越高的节点表示的特征内容越抽象,描述的特征范围更宽泛,最上层的父节点表示软件项目的综合健康,节点之间的连接边表示两个特征之间存在一定的影响关系;每个节点仅可与其相邻层次的节点进行连接,模型中的每条边均对应一个权值。
进一步地,所述软件项目的开发源数据为软件在开发过程中存在于平台系统中的与某个健康特征相关字段的记录值。
进一步地,所述步骤2包括:通过下式计算度量元值:
其中,mij表示第i个软件项目的第j个度量元,rij表示第i个软件的第j个度量元对应的软件项目开发源数据,表示所有软件的第j个度量元所对应的软件项目开发源数据的最小值,表示所有软件的第j个度量元所对应的软件项目开发源数据的最大值;每个度量元值属于[0,1]之间。
进一步地,所述步骤3具体包括:
1)利用甲乙方的文本评论数据,采用贝叶斯线性回归模型对软件项目健康度进行分值量化,得到基于文本评论的软件项目综合健康评分Qt;利用甲方和乙方的评价指标进行计算,得到基于评分评价的软件项目综合健康评分Qs;其中,甲方评价指标包括总体评价、需求稳定、验收客观、反馈及时、沟通能力、合作精神和评价;乙方评价指标包括总体评价、技术能力、完成质量、响应速度、如期兑现、沟通能力、合作精神和评价;
基于上述两种评分,计算得到软件项目的综合健康评分,计算公式如下:
其中,Q(i)表示第i个软件项目的实际综合健康评分,γt和γs为权重参数,取0.5。
2)利用甲方评价指标和乙方评价指标作为软件项目要素健康评分标准;其中,质量要素分由完成质量、需求稳定、验收客观进行算术平均分求得;协作要素分由合作精神、沟通能力进行算术平均分求得;人员要素分由技术能力、沟通能力、合作精神进行算术平均分求得;进度要素分由如期兑现、响应速度、反馈及时求算术平均分求得。
进一步地,所述一维卷积神经网络模型的卷积神经网络为非全连接结构;所述健康要素子模型为FCM模型中以单个要素层节点作为父节点,依次向下拓展的三层树状结构模型,用于计算模型中度量元层至要素层单个要素节点的权重。
进一步地,所述步骤4具体包括:
1)采用一维卷积神经网络模型对每个健康要素子模型的权重进行计算;创建与FCM模型要素层节点数量相同的健康要素子模型;对于每个健康要素子模型,创建一个一维卷积神经网络模型进行权重计算;依次输入与模型输入对应的度量元值,从度量元层开始,按顺序计算上一层的节点值;第i层节点k的计算公式如下:
其中,Nik表示第i层的第k个节点,w(i-1)jk表示第i-1层第j个节点与第i层第k个节点之间的权重,|L|表示模型总层数,|N|i表示第i层的节点数量,且N(i-1)0≡1,Nik(k≠0)与N(i-1)0之间均存在连接;初始时w(i-1)jk=0.5,若Nik与N(i-1)j之间没有边连接,则w(i-1)jk=0。
对要素节点的值进行计算,该节点的计算公式如下:
其中,[XiF]表示第i个维度的要素分值;
2)对要素层的预测误差进行计算,计算公式如下:
ep=ti-opi; (5)
其中,ti表示第i个软件的健康度实际分数,opi表示第i个软件的健康度预测分数,ep表示输出层节点的误差值;
对其余层的预测误差进行计算,其计算公式下:
其中,Nij代表第i层第j个节点输出值,wijk代表第i层第j个节点与第i+1层的中第k个节点的边权,若Nij与N(i+1)k之间没有边连接,则w(i+1)jk=0;
3)根据上述计算的节点误差值与分值对模型的边权进行更新;权值的更新差值计算公式如下:
w′ijk=wijk+α·ep(i+1)k·Nij; (7)
其中,α表示权值的更新速率,设置为0.01;ep(i+1)k表示第i+1层节点k的计算误差;Nij表示第i层节点j的输出值;
通过计算每项权值的更新率判断模型是否达到收敛状态;模型收敛条件计算公式如下:
若未达到收敛条件,返回步骤4中步骤1)继续执行,反之,则表示度量元层至要素层的模型权重已计算结束。
进一步地,所述步骤5具体包括:
1)对于每个已完成的历史软件项目,依次向综合健康子模型中输入对应的要素健康分数;计算每个项目综合健康分数,其计算公式如下:
其中,[XjF](i)表示第i个软件第j个维度的要素健康分数,[X0F](i)≡1,hθ(x(i)表示第i个软件项目的预测综合健康分数,θj表示待训练的模型参数,|F|表示健康要素子模型的数量,初始时均设置为1;
2)根据预测的综合健康分数与实际分数误差对模型中的参数进行更新;对于每个参数,计算公式如下:
其中,α表示权值的更新速率,设置为0.01;θj表示模型中第j个参数;Q(i)表示第i个软件项目的实际综合健康分数;
当所有θj的变化程度小于某一阈值时,即达到收敛条件,表示要素层至综合健康节点的模型权重已计算结束,反之,返回步骤5中步骤1)继续执行。
进一步地,所述步骤6具体包括:
1)从训练得到的FCM模型库中选择合适的模型;
2)选择软件项目,收集其已进展的项目数据;
3)根据所述项目数据,计算该项目的度量元值;
4)依据FCM模型,依次计算各健康要素评分和综合健康评分;其中,对于每个健康要素,基于对应的度量元向量,计算上层节点的值,计算方式同公式(3);计算要素分数,计算方式同公式(4);计算综合健康分数,计算方式同公式(9)。
借由上述方案,通过基于卷积神经网络的多维度软件项目健康度评估方法,有助于对大型软件众包平台系统中的软件项目进行客观、科学、自动的健康评估。该方法相较于传统方式不仅能基于历史数据智能地训练出最佳的评估模型,而且节省了大量由于专家参与软件健康评审而造成的时间与经济成本。该方法不仅可以有效地监测软件众包平台系统中尚处于开发阶段的软件项目健康度,也可以在软件验收阶段对软件项目进行自动化的质量量化评估。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1为本发明流程示意图;
图2为FCM模型框架示意图;
图3为一维卷积神经网络模型示意图;
图4为人员要素健康预测值与实际值对比结果;
图5为进度要素健康预测值与实际值对比结果。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例提供了一种基于卷积神经网络的多维度软件项目健康度评估方法,其主要步骤为:人工定义基于“要素-特性-度量元”的软件项目健康度模型(Factor-Criteria-Metrics,FCM)的框架;收集历史已完成软件项目的开发数据,基于该FCM模型框架中定义的健康度量元(Metrics),计算各项目的度量元值;基于历史已完成软件项目在软件验收交付时双方的相互评价与打分,计算每个已完成项目的各要素得分和健康总分;基于上述计算得到的软件项目数据,利用神经网络回归模型和线性回归模型对FCM软件项目健康度评估模型框架进行模型权重的学习,训练得到最佳的FCM模型;利用上述FCM模型对新的软件项目进行健康度评估,计算得到该项目的各要素分和综合健康分。
参图1所示,该多维度软件项目健康度评估方法的具体步骤包括:
第一步,对FCM模型框架进行结构定义。该FCM模型框架是指一种四层的树状结构模型,除最上层的综合健康度外,依次向下还包括要素层(Factor)、特性层(Criteria)和度量元层(Metric)。图2是一个FCM模型框架示意图,图中,特性与度量元为多对多关系。
其中:FCM模型框架中的结构元素由节点和无向边组成,每个节点表示一种软件项目健康特征,层次越高的节点表示的特征内容越加抽象,描述的特征范围更加宽泛。最上层的父节点表示软件的综合健康度。节点之间的连接边表示两个特征之间存在一定的影响关系。
其中:每个节点仅可与其相邻层次的节点进行连接,模型中的每条边均对应一个权值。
第二步,收集历史已完成软件项目开发源数据,基于该FCM模型框架中定义的健康度量元(Metrics),计算各项目的度量元值。该软件项目开发源数据是指软件在开发过程中存在于平台系统中的与某个健康特征相关字段的记录值。具体的处理过程如下:
2.1)对于每个已完成的软件项目,获取与FCM模型框架中每个度量元对应的软件项目开发源数据。例如,平台系统中存在的“甲乙方阶段内召开的会议数”即作为软件项目开发源数据,对应于名称为“甲乙双方阶段会议数”的度量元。
2.2)计算每个软件项目的度量元值。计算方法如公式(1):
其中,mij表示第i个软件项目的第j个度量元,rij表示第i个软件的第j个度量元对应的软件项目开发源数据,表示所有软件的第j个度量元所对应的软件项目开发源数据的最小值,表示所有软件的第j个度量元所对应的软件项目开发源数据的最大值。每个度量元值属于[0,1]之间。
第三步,基于历史已完成软件项目在软件验收交付时双方的相互评价与打分,计算每个已完成项目的各要素得分和健康总分。其中,验收双方相互评价是指软件项目在完成验收后,软件需求方(甲方)与软件提供方(乙方)在平台系统中对对方用户以及软件质量进行的综合评价。具体的处理过程如下:
3.1)利用甲乙方的文本评论数据,采用贝叶斯线性回归模型对软件质量进行分值量化,得到基于文本评论的软件项目综合健康评分Qt;利用甲方和乙方的评价指标进行计算,得到基于评分评价的软件项目综合健康评分Qs。其中,甲方评价指标为总体评价、需求稳定、验收客观、反馈及时、沟通能力、合作精神和评价;乙方评价指标为总体评价、技术能力、完成质量、响应速度、如期兑现、沟通能力、合作精神和评价。基于上述两种评分,计算得到软件项目的综合健康评分,计算公式如公式(2):
其中,Q(i)表示第i个软件项目的实际综合健康评分,γt和γs为权重参数,一般均为0.5。
3.2)利用甲方评价指标和乙方评价指标作为软件健康各要素评分标准。其中,质量要素分由完成质量、需求稳定、验收客观进行算术平均分求得;协作要素分由合作精神(甲乙双方)、沟通能力(甲乙双方)进行算术平均分求得;人员要素分由技术能力、沟通能力(乙方)、合作精神(乙方)进行算术平均分求得;进度要素分由如期兑现、响应速度、反馈及时求算术平均分求得。
第四步,采用一维卷积神经网络对每个健康要素子模型的权重进行计算。其中,该一维卷积神经网络是指一种特殊的神经网络,结构示意图如图3所示。相较于传统神经网络,一维卷积神经网络为非全连接结构,减少了权值的数量,降低了其计算复杂度。其中,健康要素子模型是指FCM模型中以单个要素层节点作为父节点,依次向下拓展的三层树状结构模型,用于计算模型中度量元层至要素层单个要素节点的权重。具体的处理过程如下:
4.1)对于FCM模型每个健康要素子模型,依次输入与其对应的度量元值,从度量元层开始,依次计算其上一层的各节点值。第i层节点k的计算方法如公式(3):
其中,Nik表示了第i层的第k个节点,w(i-1)jk表示第i-1层第j个节点与第i层第k个节点之间的权重,|L|表示模型总层数,|N|i表示第i层的节点数量,且N(i-1)0≡1,Nik(k≠0)与N(i-1)0之间均存在连接。初始时w(i-1)jk=0.5,若Nik与N(i-1)j之间没有边连接,则w(i-1)jk=0。
对要素节点的值进行计算,该节点的计算方法如公式(4):
其中,[XiF]表示了第i个维度的要素分值。
4.2)对预测要素层的误差进行计算,计算公式如公式(5):
ep=ti-opi; (5)
其中,ti表示第i个软件的健康实际分数,opi表示第i个软件的健康预测分数,ep表示输出层节点的误差值。
对其余层的误差进行计算,计算公式如公式(6):
其中,Nij代表了第i层第j个节点输出值;wijk代表了第i层第j个节点与第i+1层的中第k个节点的边权。若Nij与N(i+1)k之间没有边连接,则w(i+1)jk=0。
4.3)根据上述计算的节点误差值与分值对模型的边权进行更新。权值的更新差值计算方法如公式(7):
w′ijk=wijk+α·ep(i+1)k·Nij; (7)
其中,α表示权值的更新速率,一般情况下设置为0.01;ep(i+1)k表示第i+1层节点k的计算误差;Nij表示第i层节点j的输出值。
通过计算每项权值的更新率判断模型是否达到收敛状态。模型收敛条件如公式(8):
若未达到收敛条件,返回步骤4.1)继续执行。反之,则表示度量元层至要素层的模型权重已计算结束。
第五步,利用线性回归模型对综合健康子模型中的权重进行计算。其中,综合健康子模型是指FCM模型中从顶端的综合健康节点至要素层节点的两层树状结构子模型,用于计算FCM模型中各个要素节点至综合健康节点的权重。具体的处理过程如下:
5.1)对于每个软件项目,依次向综合健康子模型中输入对应的要素分数。计算每个项目综合健康分数,其计算公式如公式(9):
其中,[XjF](i)表示第i个软件第j个维度的要素分数,[X0F](i)≡1。hθ(x(i))表示第i个软件项目的预测综合健康分数,θj表示待训练的模型参数,|F|表示健康要素子模型的数量。初始时均设置为1。
5.2)根据预测的综合健康分数与实际分数误差对模型中的参数进行更新。对于每个参数,计算公式如公式(10):
其中,α表示权值的更新速率,一般情况下设置为0.01。θj表示模型中第j个参数;Q(i)表示第i个软件项目的实际综合健康分数。
当所有θj的变化程度小于某一阈值时,即达到收敛条件,表示要素层至综合健康节点的模型权重已计算结束。反之,返回步骤5.1)继续执行。
第六步,依据训练得到的FCM模型,针对待评估的软件项目,基于已进展的开发数据计算度量元值,并利用FCM模型自底向上计算得到要素分和综合健康分。具体的处理过程如下:
6.1)从训练得到的FCM模型库中选择合适的模型。
6.2)选择特定的软件项目,收集其已进展的项目数据。
6.3)根据上述项目数据,计算该项目的度量元值。
6.4)依据FCM模型,依次计算各健康要素评分和综合健康评分。其中,对于每个健康要素,基于对应的度量元向量,计算上层节点的值,计算方式同上述公式(3);计算要素分数,计算方式同公式(4);计算综合健康分数,计算方式同公式(9)。
本实施例提供的多维度软件项目健康度评估方法,有助于对大型软件众包平台系统中的软件项目进行客观、科学、自动的健康评估。该方法相较于传统方式不仅能基于历史数据智能地训练出最佳的评估模型,而且节省了大量由于专家参与软件健康评审而造成的时间与经济成本。本发明不仅可以有效地监测软件众包平台系统中尚处于开发阶段的软件项目健康度,也可以在软件验收阶段对软件项目进行自动化的质量量化评估。
下面应用本发明对某大型软件众包平台系统进行评估。
本实施例的具体操作平台是i3-3230M 3.3GHz的CPU,8GB RAM,操作系统是Windows7x64,解释器是java 1.7,数据库是Mysql5.5。
本实施例包括以下步骤:
1)在一个正常运作的大型软件众包平台系统中,根据其系统内部数据特点,采用基于XML格式的结构化文件,定义合适的FCM模型框架。
本实施例中共定义了4个维度的健康要素,即质量要素、人员要素、协同要素和进度要素。其中,质量要素包含的特性包括代码可靠性、代码可维护性、代码规范性和代码可编译性,并包含代码安全性等7个度量元;人员质量要素包含的特性包括项目绩效和项目专注度,并包含成员总评平均分等8个度量元;协同要素包含的特性包括协同活跃度和协同效率,并包含成员总评平均分等13个度量元;进度要素包含的特性包括阶段进度,并包含阶段准时完成率等2个度量元。
2)利用平台系统中的软件开发数据训练FCM模型。
a)对该软件众包平台系统中已完成的软件项目数据进行收集。本例中共收集了563个实际的软件项目数据。
b)针对上述563条数据,利用软件项目数据中的软件项目开发源数据计算相应的度量元值。根据实际数据情况,在本实施例中共计算得到了包括协同质量和进度质量在内的共计10个软件度量元值。
c)针对上述563条数据,利用验收双方相互评价数据计算软件项目综合健康得分。
d)从上述软件项目数据中选取数量为N的样本数据,并再从选取的样本数据中随机抽取90%的数据,利用这些数据对应的度量元和质量得分,采用一维卷积神经网络训练相应的模型权重,得到FCM模型。
3)利用上述训练得生成的FCM模型,依次对上述剩余10%的数据进行软件项目健康评估,得到预测的健康度分数。通过对比实际与预测的软件项目健康分数差异,进行本发明的效果评估实验。
a)针对软件项目综合健康评分的预测效果,我们在数据集相同的条件下对多种常用方法进行效果对比实验。表1显示了多种方法的预测准确度对比结果。实验结果表明本发明所使用的方法在预测效果上明显优于多数其它方法。
表1不同模型的预测效果对比结果
b)对于软件项目要素健康评分的评估效果,我们分别通过比较进度要素健康分数和人员要素健康分数的实际值与预测值的差值进行效果分析实验。图4显示了人员要素健康实际值与预测值对比结果,图5显示了进度要素健康实际值与预测值对比结果。结果显示模型预测的要素健康评分与实际评分的差值很小,表明预测效果很好。
c)对于不同的模型参数对评估效果所造成的影响,我们通过调节不同的模型权重更新次数与训练样本数量等2个参数对预测结果进行对比试验。表2显示了模型在不同参数设置下的预测结果。结果显示当模型的迭代次数与样本数量参数越大时,模型预测能达到更好的效果。
表2不同参数的模型预测效果对比结果
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (9)
1.一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,包括以下步骤:
步骤1,对FCM模型框架进行结构定义;
步骤2,根据FCM模型框架,收集已完成历史软件项目的开发源数据,计算得到度量元值;
步骤3,利用已完成历史软件项目在验收时双方相互评价,对每个已完成历史软件项目的综合健康分数和多维度要素健康分数进行计算;
步骤4,采用一维卷积神经网络模型对每个健康要素子模型的权重进行训练;
步骤5,利用线性回归模型对综合健康子模型中的权重进行训练;
步骤6,选择合适的FCM模型,计算待评估的软件项目度量元,再利用FCM模型计算得到软件项目健康度分数。
2.根据权利要求1所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述FCM模型框架为一种四层的树状结构模型,除最上层综合健康度外,依次向下还包括要素层、特性层和度量元层;
所述FCM模型框架中的结构元素由节点和无向边组成,每个节点表示一种软件项目健康特征,层次越高的节点表示的特征内容越抽象,描述的特征范围更宽泛,最上层的父节点表示软件项目的综合健康,节点之间的连接边表示两个特征之间存在一定的影响关系;每个节点仅可与其相邻层次的节点进行连接,模型中的每条边均对应一个权值。
3.根据权利要求2所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述软件项目的开发源数据为软件在开发过程中存在于平台系统中的与某个健康特征相关字段的记录值。
4.根据权利要求3所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述步骤2包括:通过下式计算度量元值:
其中,mij表示第i个软件项目的第j个度量元,rij表示第i个软件的第j个度量元对应的软件项目开发源数据,表示所有软件的第j个度量元所对应的软件项目开发源数据的最小值,表示所有软件的第j个度量元所对应的软件项目开发源数据的最大值;每个度量元值属于[0,1]之间。
5.根据权利要求4所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述步骤3具体包括:
1)利用甲乙方的文本评论数据,采用贝叶斯线性回归模型对软件项目健康度进行分值量化,得到基于文本评论的软件项目综合健康评分Qt;利用甲方和乙方的评价指标进行计算,得到基于评分评价的软件项目综合健康评分Qs;其中,甲方评价指标包括总体评价、需求稳定、验收客观、反馈及时、沟通能力、合作精神和评价;乙方评价指标包括总体评价、技术能力、完成质量、响应速度、如期兑现、沟通能力、合作精神和评价;
基于上述两种评分,计算得到软件项目的综合健康评分,计算公式如下:
其中,Q(i)表示第i个软件项目的实际综合健康评分,γt和γs为权重参数,取0.5;
2)利用甲方评价指标和乙方评价指标作为软件项目要素健康评分标准;其中,质量要素分由完成质量、需求稳定、验收客观进行算术平均分求得;协作要素分由合作精神、沟通能力进行算术平均分求得;人员要素分由技术能力、沟通能力、合作精神进行算术平均分求得;进度要素分由如期兑现、响应速度、反馈及时求算术平均分求得。
6.根据权利要求5所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述一维卷积神经网络模型的卷积神经网络为非全连接结构;所述健康要素子模型为FCM模型中以单个要素层节点作为父节点,依次向下拓展的三层树状结构模型,用于计算模型中度量元层至要素层单个要素节点的权重。
7.根据权利要求6所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述步骤4具体包括:
1)采用一维卷积神经网络模型对每个健康要素子模型的权重进行计算;创建与FCM模型要素层节点数量相同的健康要素子模型;对于每个健康要素子模型,创建一个一维卷积神经网络模型进行权重计算;依次输入与模型输入对应的度量元值,从度量元层开始,按顺序计算上一层的节点值;第i层节点k的计算公式如下:
其中,Nik表示第i层的第k个节点,w(i-1)jk表示第i-1层第j个节点与第i层第k个节点之间的权重,|L|表示模型总层数,|N|i表示第i层的节点数量,且N(i-1)0≡1,Nik(k≠0)与N(i-1)0之间均存在连接;初始时w(i-1)jk=0.5,若Nik与N(i-1)j之间没有边连接,则w(i-1)jk=0;
对要素节点的值进行计算,该节点的计算公式如下:
其中,[XiF]表示第i个维度的要素分值;
2)对要素层的预测误差进行计算,计算公式如下:
ep=ti-opi; (5)
其中,ti表示第i个软件的健康度实际分数,opi表示第i个软件的健康度预测分数,ep表示输出层节点的误差值;
对其余层的预测误差进行计算,其计算公式下:
其中,Nij代表第i层第j个节点输出值,wijk代表第i层第j个节点与第i+1层的中第k个节点的边权,若Nij与N(i+1)k之间没有边连接,则w(i+1)jk=0;
3)根据上述计算的节点误差值与分值对模型的边权进行更新;权值的更新差值计算公式如下:
w'ijk=wijk+α·ep(i+1)k·Nij; (7)
其中,α表示权值的更新速率,设置为0.01;ep(i+1)k表示第i+1层节点k的计算误差;Nij表示第i层节点j的输出值;
通过计算每项权值的更新率判断模型是否达到收敛状态;模型收敛条件计算公式如下:
若未达到收敛条件,返回步骤4中步骤1)继续执行,反之,则表示度量元层至要素层的模型权重已计算结束。
8.根据权利要求7所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述步骤5具体包括:
1)对于每个已完成的历史软件项目,依次向综合健康子模型中输入对应的要素健康分数;计算每个项目综合健康分数,其计算公式如下:
其中,[XjF](i)表示第i个软件第j个维度的要素健康分数,[X0F](i)≡1,hθ(x(i))表示第i个软件项目的预测综合健康分数,θj表示待训练的模型参数,|F|表示健康要素子模型的数量,初始时均设置为1;
2)根据预测的综合健康分数与实际分数误差对模型中的参数进行更新;对于每个参数,计算公式如下:
其中,α表示权值的更新速率,设置为0.01;θj表示模型中第j个参数;Q(i)表示第i个软件项目的实际综合健康分数;
当所有θj的变化程度小于某一阈值时,即达到收敛条件,表示要素层至综合健康节点的模型权重已计算结束,反之,返回步骤5中步骤1)继续执行。
9.根据权利要求8所述的一种基于卷积神经网络的多维度软件项目健康度评估方法,其特征在于,所述步骤6具体包括:
1)从训练得到的FCM模型库中选择合适的模型;
2)选择软件项目,收集其已进展的项目数据;
3)根据所述项目数据,计算该项目的度量元值;
4)依据FCM模型,依次计算各健康要素评分和综合健康评分;其中,对于每个健康要素,基于对应的度量元向量,计算上层节点的值,计算方式同公式(3);计算要素分数,计算方式同公式(4);计算综合健康分数,计算方式同公式(9)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810475407.8A CN108711008B (zh) | 2018-05-17 | 2018-05-17 | 一种基于卷积神经网络的多维度软件项目健康度评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810475407.8A CN108711008B (zh) | 2018-05-17 | 2018-05-17 | 一种基于卷积神经网络的多维度软件项目健康度评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108711008A true CN108711008A (zh) | 2018-10-26 |
CN108711008B CN108711008B (zh) | 2022-03-29 |
Family
ID=63869169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810475407.8A Active CN108711008B (zh) | 2018-05-17 | 2018-05-17 | 一种基于卷积神经网络的多维度软件项目健康度评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108711008B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
CN111143201A (zh) * | 2019-12-16 | 2020-05-12 | 北京京航计算通讯研究所 | 基于Bayes的军用软件质量度量系统 |
CN111142026A (zh) * | 2019-12-31 | 2020-05-12 | 联想(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
CN111444084A (zh) * | 2019-12-16 | 2020-07-24 | 北京京航计算通讯研究所 | 基于Bayes的军用软件质量度量方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279831A (zh) * | 2013-06-27 | 2013-09-04 | 李岩 | 用于评价软件测试质量和开发能力的管理系统实现方法 |
US20160086124A1 (en) * | 2014-09-19 | 2016-03-24 | Tata Consultancy Services Limited | System and method for facilitating quality assurance of a software application |
CN105630666A (zh) * | 2014-11-12 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 软件质量改进方法及装置 |
WO2017142392A1 (en) * | 2016-02-17 | 2017-08-24 | Mimos Berhad | A system and a method to rate a software |
CN107122298A (zh) * | 2017-04-21 | 2017-09-01 | 千寻位置网络有限公司 | 可视化软件开发过程质量的展示方法 |
CN107610123A (zh) * | 2017-10-11 | 2018-01-19 | 中共中央办公厅电子科技学院 | 一种基于深度卷积神经网络的图像美学质量评价方法 |
CN107797931A (zh) * | 2017-11-13 | 2018-03-13 | 长春长光精密仪器集团有限公司 | 一种基于二次评价的软件质量评价方法及系统 |
-
2018
- 2018-05-17 CN CN201810475407.8A patent/CN108711008B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279831A (zh) * | 2013-06-27 | 2013-09-04 | 李岩 | 用于评价软件测试质量和开发能力的管理系统实现方法 |
US20160086124A1 (en) * | 2014-09-19 | 2016-03-24 | Tata Consultancy Services Limited | System and method for facilitating quality assurance of a software application |
CN105630666A (zh) * | 2014-11-12 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 软件质量改进方法及装置 |
WO2017142392A1 (en) * | 2016-02-17 | 2017-08-24 | Mimos Berhad | A system and a method to rate a software |
CN107122298A (zh) * | 2017-04-21 | 2017-09-01 | 千寻位置网络有限公司 | 可视化软件开发过程质量的展示方法 |
CN107610123A (zh) * | 2017-10-11 | 2018-01-19 | 中共中央办公厅电子科技学院 | 一种基于深度卷积神经网络的图像美学质量评价方法 |
CN107797931A (zh) * | 2017-11-13 | 2018-03-13 | 长春长光精密仪器集团有限公司 | 一种基于二次评价的软件质量评价方法及系统 |
Non-Patent Citations (1)
Title |
---|
周惠: "基于目标度量和预估技术的软件过程评估", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
CN111143201A (zh) * | 2019-12-16 | 2020-05-12 | 北京京航计算通讯研究所 | 基于Bayes的军用软件质量度量系统 |
CN111444084A (zh) * | 2019-12-16 | 2020-07-24 | 北京京航计算通讯研究所 | 基于Bayes的军用软件质量度量方法 |
CN111142026A (zh) * | 2019-12-31 | 2020-05-12 | 联想(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108711008B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108711008A (zh) | 一种基于卷积神经网络的多维度软件项目健康度评估方法 | |
Li et al. | Modified failure mode and effects analysis under uncertainty: A rough cloud theory-based approach | |
Raoot et al. | A ‘fuzzy’approach to facilities lay-out planning | |
CN110196814B (zh) | 一种软件质量评价方法 | |
CN107992968B (zh) | 基于集成时间序列分析技术的电能表计量误差预测方法 | |
CN106095684B (zh) | 一种预测性变异测试方法 | |
Chao et al. | Predicting project progress via estimation of S-curve's key geometric feature values | |
CN108647216A (zh) | 基于开发人员社交网络的软件众包任务推荐系统及方法 | |
CN106097204A (zh) | 一种面向冷启动学生用户的工作推荐系统及推荐方法 | |
US20220327398A1 (en) | Technology maturity judgment method and system based on science and technology data | |
CN114692507B (zh) | 基于堆叠泊松自编码器网络的计数数据软测量建模方法 | |
Bal et al. | A comparison of different model selection criteria for forecasting EURO/USD exchange rates by feed forward neural network | |
CN112907026A (zh) | 一种基于可编辑网状指标体系的综合评估方法 | |
CN101561904A (zh) | 一种基于过程数据的软件项目成本测定方法及系统 | |
CN116911962A (zh) | 一种基于数据模型的选品装置及方法 | |
Abdelbari et al. | Learning structures of conceptual models from observed dynamics using evolutionary echo state networks | |
Zong et al. | Embedded software fault prediction based on back propagation neural network | |
CN106960398A (zh) | 高考志愿合理性的评估方法及装置 | |
Liu et al. | The man-hour estimation models & its comparison of interim products assembly for shipbuilding | |
CN116644965A (zh) | 一种项目预算的可视化分析方法及系统 | |
CN114881359A (zh) | 融合GBDT和XGBoost的路面IRI预测方法 | |
CN107229944A (zh) | 基于认知信息粒子的半监督主动识别方法 | |
CN112766683A (zh) | 食品企业信用评定方法、装置及电子设备 | |
Mandel' | Method of analogs in prediction of short time series: an expert-statistical approach | |
Sarmento et al. | Sizing an artificial neural network for modelling piping assembly labor productivity under different conditions |
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 |