基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法技术

技术编号:39803789 阅读:10 留言:0更新日期:2023-12-22 02:35
本发明专利技术公开了一种基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法,所述方法包括以下步骤:

【技术实现步骤摘要】
基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法


[0001]本专利技术属于计算智能和敏捷软件项目开发调度优化
,更具体地说,涉及一种基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法


技术介绍

[0002]近年来,软件行业成为了国民经济发展的重要支柱产业
。《
国家信息化发展战略纲要

等相关文件的出台进一步优化了软件产业的发展环境,深化了产业合作,提升了产业创新能力和发展质量

随着互联网和大数据等技术的日趋成熟,软件的应用已渗透到诸多应用领域之中

软件的开发与应用,吸引了高水平的人才,推动了高质量的就业,带动了高效益的生产和回报,这也使得软件项目的开发规模日益庞大,用户需求复杂多样

软件项目开发主要分为瀑布开发模型和敏捷开发模型两种

瀑布开发模型把软件严格划分为需求分析

设计

编码

测试等生命周期,更注重项目文档,往往在开发中后期才能初具雏形,适用于需求稳定的项目

敏捷开发模型更加重视用户需求,采用“小而精”的团队和“短频快”的开发周期,通过迭代和增量式的方法对项目进行拆分,使得软件开发更加灵活,能够及时响应用户需求变化,动态调整开发方案

因此,对动态敏捷软件开发的研究非常有必要

[0003]敏捷软件项目调度是敏捷软件开发的重要环节,直接决定了软件项目开发的成败,并且影响企业的经济效益和市场竞争

早期研究大多采用动态规划等精确求解方法或启发式方法对软件项目任务进行分配

精确求解方法在理论上能求得最优解,但受限于时间和空间复杂度,通常只适用于小规模问题

启发式方法能够快速构造可行解,却无法保证解的质量

随着软件项目调度问题规模日益增大和模型的复杂化,基于搜索的软件工程得到了迅速发展

它将软件工程中的复杂问题建模为基于搜索的优化问题,采用元启发式算法搜索问题的决策空间,如粒子群优化算法,进而辅助管理者或开发者做出最终决策

粒子群优化算法是
Kennedy

Eberhart

1995
年提出的一种模拟鸟群随机搜索食物的元启发式算法

它通过初始化阶段

个体评价阶段

速度和位置更新阶段产生较优后代,从而实现种群的进化

该算法具有搜索速度快,精度高的优点,被广泛应用于工程实践中的多种组合优化问题

目前,对敏捷软件项目调度的研究只考虑了对用户故事的选择和调度这一单一调度问题,且并未考虑到其动态特性和周期性的特点


技术实现思路

[0004]为了解决上述问题,本专利技术提出了一种基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法,能够在每个调度周期高效地生成适应当前环境的方案

[0005]基于本专利技术的一个方面,一种基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法,包括如下步骤:
[0006]S1
:初始化敏捷软件开发中的用户故事和开发者属性;
[0007]S2
:考虑用户故事的新增和开发者工作时长的不确定性,构建敏捷软件项目的动
态周期性调度模型;
[0008]S3
:采用双指标分组学习粒子群算法求解第
l
个冲刺的最优调度方案;
[0009]S4
:若到达下一个冲刺周期,但并未达到项目截止时间,则检测并更新用户故事信息和开发者状态,然后基于问题特征生成启发式的新初始种群并通过双指标分组学习粒子群算法寻优得到该冲刺的最优调度方案;否则,按当前调度方案执行项目

[0010]在上述技术方案是基础上,本专利技术还提供以下可选技术方案:
[0011]进一步的,所述动态敏捷软件项目要求在
L
个冲刺内完成
(l=1,2,...,L)
,每个冲刺进行敏捷软件项目和人力资源的调度;
[0012]根据用户的需求,敏捷软件项目被描述为
n
个初始用户故事
us
i
(i

1,2,...,n)
,构成待开发用户故事集合
pb
l
,且用户故事包括的属性值有故事点

价值点和工作量;
[0013]其中,所述用户故事
us
i
的故事点
sp
i
是对用户故事工作量和难度等综合评定的一个估算值,用户故事
us
i
的价值点
vp
i
是指完成用户故事获得的价值量,用户故事
us
i
的工作量
eff
i
表示完成用户故事需要花费的时长;
[0014]其中,用户故事
us
i
能够分解成
tn
i
个具体的任务
t
ij
(j

1,2,...,tn
i
)
,完成一个任务仅需一个技能;
[0015]用户故事
us
i
中任务
t
ij
包括的属性有完成任务所需技能
ts
ij
和所需时长
th
ij

[0016]敏捷开发公司共有
R
个开发团队
Team
r
(r

1,2,...,R)
,每个团队中有
m
个开发者
e
k
(k

1,2,...,m)
,开发者
e
k
掌握的几项技能组成技能集合
es
k

每个冲刺开始前,开发团队首先对当前待开发的各用户故事
(
包括未完成的故事和新增故事,每个冲刺最多有一个新增故事
)
进行任务分解,得到各项任务所需的工作时长和技能;其后根据故事间的优先级关系
(
新增故事需在当前冲刺内完成
)
和团队工作速度
v
l
等选择当前冲刺计划完成的故事,并进行开发者

任务分配

[0017]其中,团队速度
v
l
是指团队在一个冲刺可完成的故事点数,对于由
m
个开发者构成的团队,设第一个冲刺的初始团队速度为
V(V
可取为该团队在历史项目中的平均开发速度
)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于双指标分组学习粒子群算法的动态敏捷软件项目调度方法,其特征在于,所述方法包括如下步骤:
S1
:初始化敏捷软件开发中的用户故事和开发者属性;
S2
:考虑用户故事的新增和开发者工作时长的不确定性,构建敏捷软件项目的动态周期性调度模型;
S3
:采用双指标分组学习粒子群算法求解第
l
个冲刺的最优调度方案;
S4
:若到达下一个冲刺周期,但并未达到项目截止时间,则检测并更新用户故事信息和开发者状态,然后基于问题特征生成启发式的新初始种群并通过双指标分组学习粒子群算法寻优得到该冲刺的最优调度方案;否则,按当前调度方案执行项目
。2.
根据权利要求1所述的方法,其特征在于,所述
S3
中,敏捷软件项目要求在
L
个冲刺内完成
(l

1,2,...,L)
,每个冲刺进行敏捷软件项目和人力资源的调度;根据用户的需求,敏捷软件项目被描述为
n
个初始用户故事
us
i
(i

1,2,...,n)
,构成待开发用户故事集合
pb
l
,且用户故事包括的属性值有故事点

价值点和工作量;其中,所述用户故事
us
i
的故事点
sp
i
是对用户故事工作量和难度等综合评定的一个估算值,用户故事
us
i
的价值点
vp
i
是指完成用户故事获得的价值量,用户故事
us
i
的工作量
eff
i
表示完成用户故事需要花费的时长;其中,用户故事
us
i
能够分解成
tn
i
个具体的任务
t
ij
(j

1,2,...,tn
i
)
,完成一个任务仅需一个技能;用户故事
us
i
中任务
t
ij
包括的属性有完成任务所需技能
ts
ij
和所需时长
th
ij
;敏捷开发公司共有
R
个开发团队
Team
r
(r

1,2,...,R)
,每个团队中有
m
个开发者
e
k
(k

1,2,...,m)
,开发者
e
k
掌握的几项技能组成技能集合
es
k

每个冲刺开始前,开发团队首先对当前待开发的各用户故事
(
包括未完成的故事和新增故事,每个冲刺最多有一个新增故事
)
进行任务分解,得到各项任务所需的工作时长和技能;其后根据故事间的优先级关系
(
新增故事需在当前冲刺内完成
)
和团队工作速度
v
l
等选择当前冲刺计划完成的故事,并进行开发者

任务分配

其中,团队速度
v
l
是指团队在一个冲刺可完成的故事点数,对于由
m
个开发者构成的团队,设第一个冲刺的初始团队速度为
V(V
可取为该团队在历史项目中的平均开发速度
)
;团队在第
l(l≥2)
个冲刺的速度由以下两个因素决定:各开发者在当前冲刺和前一冲刺的最大工作时长之和的比率,以及团队在前一个冲刺的故事点总和

团队速度的计算方法如式所示:其中,表示团队在第
(l

1)
个冲刺中实现的用户故事点数之和
。3.
根据权利要求1所述的方法,其特征在于,所述考虑用户故事的新增和开发者工作时长的不确定性具体是:在实际软件开发过程中,由于用户需求的变更,随时会产生新的用户
故事;此外,软件开发人员流动性大,不可控因素较多,同一开发者在不同冲刺中的最大工作时长可能发生变化;为体现敏捷开发过程中的动态特性,所建模型考虑用户故事的新增和开发者工作时长的不确定性两类动态因素
。4.
根据权利要求1所述的别方法,其特征在于,所述敏捷软件项目的动态周期性调度模型包含两个紧耦合的子问题:用户故事选择,从待开发用户故事列表中选择用户故事进入冲刺中;任务分配,将每个团队需要完成的故事分解成任务,并按照所需技能和时间...

【专利技术属性】
技术研发人员:申晓宁许新苏徐继勇佘娟毛鸣健
申请(专利权)人:南京信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1