一种基于过程仿真技术进行软件项目进度控制的方法技术

技术编号:3851937 阅读:277 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于过程仿真技术进行软件项目进度控制的方法,属于计算机软件工程领域。本发明专利技术方法为:1)根据输入的项目计划信息,确定任务间的进度约束关系和理想进度安排;2)搜索理想进度安排,确定出项目中的关键任务链和非关键任务链;3)按照任务之间的约束关系,依次为全部的关键任务分配缓冲;4)项目仿真执行模块按照给定的缓冲范围和仿真次数,对缓冲分配结果执行仿真;5)对多次仿真项目执行的平均计划变更点数和平均执行工期进行统计,确定项目计划的最佳进度安排。本发明专利技术能为用户提供最佳工期安排,提高项目缓冲的利用效率,对确保项目计划执行的稳定性,减少计划变更,控制项目成本等方面提供了有力的系统支持。

【技术实现步骤摘要】

本专利技术涉及一种基于项目执行仿真技术的软件项目进度控制方法,该方法特别适用于规模较大,风险较多,不确定性较高的项目缓冲分配和项目进度控制,如大型软件开发项目等,属于计算机软件工程领域。
技术介绍
随着信息技术的应用领域不断扩展,软件产品的规模不断增大,复杂度也越来越高。这导致软件项目控制的难度也越来越大。软件项目进度滞后、成本超支的情况依旧屡见不鲜。近年来,软件开发的主流模式已由小规模的手工作坊式开发转向诸如软件外包等形式的跨地域、跨组织的协作软件开发。软件产品与生倶来的高复杂性导致软件开发过程相对传统工业生产过程具有更高的不确定性。频繁的计划变更将严重影响软件开发效率,增加额外的工作量和沟通成本。同时,计划变更所带来的大量沟通协调工作也会给项目带来新的风险。如何制定出符合项目特点的、稳定的进度安排是确保软件项目成功的关键。因此如何减少计划变更,提高项目执行的稳定性是软件工程领域的热点问题。稳定的项目计划将大大提高协作开发效率,降低开发成本。尤其对于软件外包等协作型软件开发公司而言,稳定的项目进度安排和执行能力将提高其行业竞争力。大规模软件产品开发项目的特点在于其极高的不确定性,由此带来的项目风险直接关系到项目成败。本专利技术风险驱动的项目缓冲分配方法旨在通过综合考虑软件项目的风险因素、任务之间的工作产品约束和人力资源约束(项目中各任务之间的约束关系的介绍参见文献Lizi Xie, A Project Scheduling Method Based on Human Resource Availability, In: Proc.Of the 20th International Conferences on Software Engineering and knowledge engineering, SanFrancisco:Knowledge Systems Institute,2008, Pages:161-166),将有限的可用项目缓冲分配到各个任务中。通过风险暴露度和风险叠加性相结合的方法量化任务的风险权重(关于风险暴露度参见文献Karlsson J, Wohlin C, Regnell B. An evaluation of methods for prioritizingsoftware requirements. Information and Software Technology, 1997, Volume39(14-15),939-947)。在项目规模较大,任务数量较多的大型软件开发项目中,为任务进行合理的缓冲分配和进度安排是很难完成的。本专利技术通过对复杂环境下的项目缓冲自动分配,并使用风险驱动的项目执行仿真对项目进度安排进行仿真执行和分析(利用计算机仿真技术在项目管理中提供决策支持有很多己有成果,参见专利200810119283.6预测需求易变性对软件项目影响的仿真方法及系统,中国科学院软件研究所),对项目执行效果进行有效预测。
技术实现思路
针对上述问题,本专利技术的目地在于提供。该方法通过基于对项目任务的风险影响权重进行合理的量化表示和对任务关系的分析,将有限的可用项目缓冲进行自动的优化分配,实现科学的进度安排;通过计算机模拟技术对项目计划进行模拟执行,预测风险对项目的影响以及计划变更的频率;最终获得最佳的项目工期安排以及对项目执行情况的预测。本专利技术包括一种风险驱动的缓冲分配系统和一种基于过程仿真的项目执行分析系统。本专利技术具有极高的实用价值,能够提高项目的缓冲利用效率,控制计划变更频率,提高项目执行的稳定性。本专利技术的技术方法为,其步骤为1) 输入一项目计划信息,包括项目信息、任务理想工期、人力资源分配信息、任务之间的工作产品约束及风险信息;2) 约束关系生成模块遍历任务集中的每个任务,根据工作产品约束和人力资源分配信息确定任务间的进度约束关系;3) 进度安排生成模块根据任务间的进度约束关系和任务理想工期,生成任务的理想进度安排;4) 关键链分析模块搜索理想进度安排,确定出项目中的关键任务链和非关键任务链;5) 项目缓冲分配模块计算选定关键任务链上每个任务风险缓冲权重,并根据风险缓冲权重计算该选定关键链上每个任务的可分配缓冲时间;6) 项目缓冲分配模块根据任务之间的进度约束关系和时间先后,调整非关键任务链上任务的可用缓冲时间,输出缓冲分配结果;7) 项目仿真执行模块按照给定的缓冲范围和仿真次数,对缓冲分配结果执行仿真;8) 对多次仿真项目执行的平均计划变更点数和平均执行工期进行统计,并自动绘制统计9) 根据统计图确定项目计划的最佳进度安排。所述项目信息包括项目的任务集合、人力资源集合、可用缓冲时间、风险列表;所述风险的特性包括原子性、独立性、叠加性、无时效性。所述进度约束关系包括完成—完成、完成一开始、开始一开始、开始一完成。所述理想进度安排的生成方法为首先系统根据任务之间的约束关系,确定每个任务的前置任务集合和后置任务集合;然后,当某任务的前置任务不为空时则将该任务的计划开始日期设为前置任务的最晚结束日期,如果某任务的前置任务为空时则将该任务的计划开始日期设为项目计划开始日期;将任务的计划结束日期设为计划开始日期与理想执行时间之和。所述关键链分析模块中采用关键路径算法确定出项目中的关键任务链和非关键任务链,其方法为根据所述进度约束关系,将任务集合表示为一个以任务为节点、任务理想工期为各边长的有向无环图;从任务集合的根任务开始,按照任务关系,搜索所有可达项目结束的任务路径;从任务路径中选择任务工期之和最长的一条路径作为项目关键任务链,其它路径作为非关键任务链。所述每个任务风险缓冲权重的计算方法为累计所选关键链上所有风险的暴露度对任务执行工期的影响,以该影响值作为该任务的风险缓冲权重;所述暴露度为风险的影响和概率的乘积。所述方法采用基于离散事件的仿真方法对缓冲分配结果执行仿真。所述对缓冲分配结果执行仿真的方法为1) 根据任务之间的约束关系,确定每个任务的前置任务集合和后置任务集合;2) 取出任务集合中的当前可模拟执行任务集合;3) 对当前可模拟执行任务集合中的每个任务,按照计划开始日期先后模拟风险发生情况,计算模拟执行的实际工期;如果延期天数大于可用缓冲,则记录一次计划变更点,并将任务状态标记为已模拟执行;4) 如果任务的计划结束日期有变更,则取该任务的后置任务集合,判断该变更是否会对其后续任务造成影响,每个后续任务的计划开始日期的变更和计划结束日期的变更均记为一个计划变更点;依次处理,直到最后处理的任务后置任务集合为空。所述判断任务变更是否对其后续任务造成影响的方法为如果当前任务延期,且延期日期晚于后续任务的开始日期,则后续任务需要进行计划变更,如此递归,统计变更影响,直到项目末尾。所述缓冲分配结果以甘特图的形式输出;所述统计图包括计划变更变化趋势图、平 均执行工期变化趋势图和计划变更/执行工期对比趋势图。如图l所示,本专利技术的技术方案主要包括如下两大功能模块A风险驱动的自动化项目缓冲分配模块,该模块接受用户输入的项目信息(如任务信 息、风险信息、人力资源分配信息、可用项目总缓冲天数等),自动按照风险权重将项目 缓冲分配到关键任务之上,输出优化的项目进度安排。该模块内部进行项本文档来自技高网
...

【技术保护点】
一种基于过程仿真技术进行软件项目进度控制的方法,其步骤为: 1)输入一项目计划信息,包括项目信息、任务理想工期、人力资源分配信息、任务之间的工作产品约束及风险信息; 2)约束关系生成模块遍历任务集中的每个任务,根据工作产品约束和人力资源 分配信息确定任务间的进度约束关系; 3)进度安排生成模块根据任务间的进度约束关系和任务理想工期,生成任务的理想进度安排; 4)关键链分析模块搜索理想进度安排,确定出项目中的关键任务链和非关键任务链; 5)项目缓冲分配模块计算选定关键任 务链上每个任务风险缓冲权重,并根据风险缓冲权重计算该选定关键链上每个任务的可分配缓冲时间; 6)项目缓冲分配模块根据任务之间的进度约束关系和时间先后,调整非关键任务链上任务的可用缓冲时间,输出缓冲分配结果; 7)项目仿真执行模块按照给定 的缓冲范围和仿真次数,对缓冲分配结果执行仿真; 8)对多次仿真项目执行的平均计划变更点数和平均执行工期进行统计,并自动绘制统计图; 9)根据统计图确定项目计划的最佳进度安排。

【技术特征摘要】

【专利技术属性】
技术研发人员:王青谢利子
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

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

1