基于双目标特征筛选优化的项目开发工作量估算方法与流程

文档序号:14555918阅读:171来源:国知局
基于双目标特征筛选优化的项目开发工作量估算方法与流程

本发明属于软件项目管理技术领域,具体涉及一种基于双目标特征筛选优化的项目开发工作量估算方法。



背景技术:

随着软件行业越来越成熟,软件的复杂度和项目的规模也在不断地壮大,这给软件项目的管理带来了前所未有的挑战。软件项目经费超支、延期或者项目不能满足用户的预期需求,已经成为软件项目开发时面临的普遍问题。低效的软件项目管理不仅使软件项目无法按期完成,甚至在花费大量金钱和时间后,项目还是被迫取消。因此,如何有效进行项目管理越来越受到企业的重视。计划和控制是确保项目顺利有效执行的两个不可缺少的手段,它们也成了项目管理中的重点。同时,造成项目的超支和延期,不精确的开发工作量估算也是一个重要的原因。

软件开发工作量估算在软件开发的初期或者中期阶段,是软件项目管理中的一个重要活动,其估算目标是软件开发过程中所需要的开发工作量,利用已知的软件项目资源估算当前项目需要的时间,一般工作量的度量单位是人时(person-hours)或者人月(person-months)。

对项目开发工作量的估算会影响到其他项目管理活动,包括资源分配、项目竞标和项目计划等。因此如果对项目开发工作量的估算不精确,会造成难以对项目进行严格的规划、监控和控制。因此项目开发工作量估算的不准确和需求不稳定是造成当前软件项目失控的最主要的两个原因。

如果对项目开发工作量估算过低,则会造成项目在给定的工作量下难以顺利完成,并造成项目成本过高而被取消。而若对项目开发工作量估算过高,则会降低企业的竞争能力。因此,无论是预算过高或者估算过低,都会对软件项目的开发造成不利的影响。所以,针对开发工作量估算的研究意义重大,它对软件项目的管理起着至关重要的作用。本发明因此而生。



技术实现要素:

发明目的:本发明的目的是为了解决现有技术中的不足,提供一种有效的项目开发工作量估算方法,当面对一个新的项目时,可以更为有效的利用历史项目信息,做出更为精准的估算,在估算时考虑了双目标特征筛选优化方法。

技术方案:本发明所述的一种基于双目标特征筛选优化的项目开发工作量估算方法,包括如下步骤:

(1)对企业历史项目进行数据搜集:分析团队开发的历史项目,借助与项目开发工作量存在相关性的度量指标对不同历史项目进行度量,最后搜集历史项目的实际开发工作量;

(2)基于两个优化目标,借助遗传算法,最终构建出多个具备非帕累托支配关系的特征子集,并根据项目主管对优化目标的偏好,从多个具备非帕累托支配关系的特征子集中选出一个特征子集;

(3)给定需要预测的新项目,借助同样的度量指标完成对该项目的度量后,根据步骤(2)中确定的特征子集和相似性度量函数,从历史项目数据集中选出与该新项目最为相似的k个项目,并根据这k个项目的开发工作量,通过计算均值,预测出新项目所需的开发工作量。

进一步的,步骤(1)中的度量指标包括团队经验、项目主管的经验、项目包含的逻辑事务数、功能点、开发环境。

进一步的,步骤(2)具体包括如下步骤:

2-1)初始化种群:

当数据集中含有n个特征,即n个度量指标时,则种群中的染色体可以使用一个n位二进串进行编码,如果第i位的取值为1,表示第i个特征被选择,如果第i位的取值为0,表示第i个特征未被选择;

在种群初始化的时候,会随机生成n个染色体,每个染色体的向量元素随机赋值,赋值为1或者赋值为0,随后基于两个优化目标,计算出每个染色体在这两个优化目标上的适应值;

第1个优化目标:其返回的是数据集中所有历史项目的开发工作量的估算精度,取值越小越好;

首先借助mre指标可以有效度量某个历史项目的实际开发工作量和估算开发工作量间的错误率,其计算公式为:

其中xi表示历史项目i的实际开发工作量,表示历史项目i的估算开发工作量;

随后借助mmre指标计算m个历史项目的平均误差,它的计算公式为:

基于每个染色体对应的特征子集,针对数据集中的每个历史项目,借助步骤(3),得到其估算出的开发工作量,最终可以计算出mmre值,该值即为染色体在第1个优化目标上对应的适应值;

第2个优化目标:返回染色体对应的特征子集规模,其取值越小越好;

2-2)基于上一种群,依次执行交叉算子和变异算子,可以生成新的染色体,其中交叉算子会根据交叉概率随机从上一种群中选出两个染色体,进行交叉并生成两个新的染色体,。变异算子则会根据变异概率从上一种群中随机选出一个染色体,进行变异并生成一个新的染色体;

2-3)将上一种群中的染色体和新的染色体合并,形成集合a,随后基于帕累托支配关系为集合a中的每个染色体计算ndr取值,首先对帕累托支配关系进行定义:

假设有两个候选解wi和wj,则wi帕累托支配wj,当且仅当:在两个优化目标下,解wi均不差于解wj,且至少存在一个优化目标,解wi要优于解wj;

随后基于ndr值选择染色体到新的种群中,首先选择ndr值为1的染色体,接着选择ndr值为2的染色体,当选择的染色体数量等于n的时候,该过程结束;

2-4)重复执行步骤2-2和步骤2-3,当达到种群指定的迭代次数后,返回当前种群中所有不被其他染色体帕累托支配的染色体,每个染色体对应一个特征子集。这些特征子集之间具备非帕累托支配关系;

2-5)根据对优化目标的偏好,可以从多个具备非帕累托支配关系的特征子集中选出一个特征子集。

进一步的,ndr值的计算过程如下:首先从a中识别出所有不被其他染色体帕累托支配的染色体,将它们的ndr值设置为1,并将它们从集合a中移除。随后继续从a中识别出所有不被其他染色体帕累托支配的染色体,将它们的ndr值设置为2,并将它们从集合a中移除。重复执行上述过程,直至集合a为空。

进一步的,步骤(3)中的k取值为3。

进一步的,借助欧氏距离作为项目间的相似性度量方法,从历史项目中选出与需要估算工作量的目标项目最为接近的项目,在计算距离之前,需要对特征取值进行归一化处理,从而使得不同特征的权重保持一致。

有益效果:本发明提供一种有效的项目开发工作量估算方法,当面对一个新的项目时,可以更为有效的利用历史项目信息,做出更为精准的估算,在估算时考虑了双目标特征筛选优化方法。

附图说明

图1是本发明的总体流程图;

图2是某个已经搜集到的数据集截图;

图3是本发明交叉算子的执行示意图;

图4是本发明变异算子的执行示意图。

具体实施方式

为了更详尽的表述上述发明的技术路线,以下本发明人列举出具体的实施例来说明技术效果;需要强调的是,这些实施例是用于说明本发明而不限于限制本发明的范围。

实施例1

本实施例的基于双目标特征筛选优化的项目开发工作量估算方法的总体流程图如图1所示,其特征在于包括如下步骤:

(1)对企业历史项目进行数据搜集。

分析团队开发的历史项目,借助与项目开发工作量存在相关性的度量指标(从数据挖掘的角度来看,度量指标可以视为特征)对不同历史项目进行度量。常用的度量指标包括团队经验、项目主管的经验、项目包含的逻辑事务数、功能点、开发环境等,具体含义如表1所示。

表1常用度量指标的名称及其含义

通过搜集某个软件企业的历史开发项目,最终得到的数据集如图2所示,其中第5个特征effort对应的是历史项目的实际开发工作量(单位为人时)。

(2)基于两个优化目标,借助遗传算法,最终会构建出多个具备非帕累托支配关系的特征子集。

2-1)初始化种群。

当数据集中含有n个特征(即n个度量指标)时,则种群中的染色体可以使用一个n位二进串进行编码,如果第i位的取值为1,表示第i个特征被选择,如果第i位的取值为0,表示第i个特征未被选择。

在种群初始化的时候,会随机生成n个染色体,每个染色体的向量元素随机赋值(即赋值为1或者赋值为0)。随后基于两个优化目标,计算出每个染色体在这两个优化目标上的适应值。

第1个优化目标:其返回的是数据集中所有历史项目的开发工作量的估算精度(主要基于mmre指标),取值越小越好。

首先借助mre指标可以有效度量某个历史项目的实际开发工作量和估算开发工作量间的错误率。其计算公式为:

其中xi表示历史项目i的实际开发工作量,表示历史项目i的估算开发工作量。

随后借助mmre指标计算m个历史项目的平均误差,它的计算公式为:

基于每个染色体对应的特征子集,针对数据集中的每个历史项目,借助步骤(3),可以得到其估算出的开发工作量,最终可以计算出mmre值,该值即为染色体在第1个优化目标上对应的适应值。

第2个优化目标:返回染色体对应的特征子集规模,其取值越小越好,假设选出的特征子集为{f1,f3,f5},则该优化目标的适应值为3。

2-2)基于上一种群,依次执行交叉算子和变异算子,可以生成新的染色体。其中交叉算子会根据交叉概率随机从上一种群中选出两个染色体,进行交叉并生成两个新的染色体。变异算子则会根据变异概率从上一种群中随机选出一个染色体,进行变异并生成一个新的染色体。

其中交叉算子的示意图如图3所示,其在特征3和特征4之间进行了交叉,并生成了两个新的染色体。

变异算子的示意图如图4所示,其在特征4上进行了取值变异,并生成了新的染色体。

2-3)将上一种群中的染色体和新的染色体合并,形成集合a,随后基于帕累托支配关系为集合a中的每个染色体计算ndr(non-dominatedrank)取值。首先对帕累托支配关系进行定义:

假设有两个候选解wi和wj,则wi帕累托支配wj,当且仅当:在两个优化目标下,解wi均不差于解wj,且至少存在一个优化目标,解wi要优于解wj。

借助实例对帕累托支配关系进行解释,例如如果存在三个候选解:

●候选解1在两个优化目标的取值分别为0.8,5。

●候选解2在两个优化目标的取值分别为0.7,4。

●候选解3在两个优化目标的取值分别为0.6,6。

这里需要注意的是优化目标1和优化目标2均是取值越小越好。

因此根据定义,不能看出候选解2帕累托支配候选解1,因为其在优化目标1和优化目标2上取值更好。

但候选解3不能帕累托支配候选解1,因为其在优化目标1上取值更好,但在优化目标2上取值更差。

ndr值的计算过程如下:首先从a中识别出所有不被其他染色体帕累托支配的染色体,将它们的ndr值设置为1,并将它们从集合a中移除。随后继续从a中识别出所有不被其他染色体帕累托支配的染色体,将它们的ndr值设置为2,并将它们从集合a中移除。重复执行上述过程,直至集合a为空。

随后基于ndr值选择染色体到新的种群中,首先选择ndr值为1的染色体,接着选择ndr值为2的染色体,当选择的染色体数量等于n的时候,该过程结束。

2-4)重复执行步骤2-2和步骤2-3,当达到种群指定的迭代次数后,返回当前种群中所有不被其他染色体帕累托支配的染色体。每个染色体对应一个特征子集。这些特征子集之间具备非帕累托支配关系。

2-5)根据对优化目标的偏好,可以从多个具备非帕累托支配关系的特征子集中选出一个特征子集。例如若项目主管对优化目标1更加偏重,则选择在优化目标1上估算精度更高的特征子集。若项目主管对优化目标2更加偏重,则选择在优化目标2上规模更小的特征子集。

(3)给定需要预测的新项目,借助同样的度量指标完成对该项目的度量后,根据步骤2-5)确定的特征子集和相似性度量函数,可以从历史项目数据集中选出与该新项目最为相似的k(k=3)个项目,并根据这k个项目的开发工作量,通过计算均值,可以预测出新项目所需的开发工作量。假设选中的最为相似的3个历史项目对应的开发工作量(单位为人时)分别是100,200和300,则新项目所需的开发工作量为:

相似性度量函数可以测量项目之间的相似度,本发明借助欧氏距离作为项目间的相似性度量方法。借助项目相似性度量方法,可以从历史项目中选出与需要估算工作量的目标项目最为接近的项目。

在计算距离之前,一般需要对特征取值进行归一化处理,从而使得不同特征的权重保持一致。

下面将根据一个案例进行介绍。

表2简单实例

欧氏距离是聚类分析中用的最广泛的距离,它与各变量的量纲有关,没有考虑指标间的相关性,也没有考虑各变量方差的不同。其取值越小越好,越小说明两者的距离越近。项目a和项目b间相似度计算公式为:

其中δ(fa,i,fb,i)的计算公式为:

其中maxi和mini分别是特征i在数据集中的最大值和最小值。wi是特征i对应的权重,fa,i和fb,i分别表示项目a和项目b在特征i上的取值。

假设特征的权重取值均为1,依次计算项目p0与项目p1的相似度:

项目p0与项目p2的相似度:

显然,项目p0与项目p2间的相似度更高。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1