基于过程建模与仿真技术的过程优化方法技术领域
本发明涉及一种过程优化方法,具体地说,是涉及一种基于相关过程模型的建
立,通过仿真技术优化过程的方法。
背景技术
软件企业向高成熟度进化的过程中,过程改进的侧重点从建立组织的标准过
程、进行基本的项目管理和工程管理逐步向理解和稳定过程性能、定量项目管理
和过程优化的方向转移。然而,软件企业在高成熟度过程改进的实践中常常会遇
到概念和实施方法等方面的困惑。一方面,越来越多的企业采用CMMI(Capability
MaturityModelIntegration,能力成熟度模型集成)指导企业的过程改进,另一方
面,作为一种过程改进框架,CMMI只定义了为达到各个能力成熟度等级需要满
足的目标以及建议执行的有效实践,然而没有具体说明如何在不同的软件组织中
进行具体实施,这导致软件组织在高成熟度的相关概念和实践上常常不能得到一
致的理解。因此,与高成熟度相关的过程性能构建和应用等技术的研究上还存在
较为薄弱的环节。可见,过程的优化及其相关方法研究有着重大的现实意义。
发明内容
本发明的目的在于提供一种基于过程建模与仿真技术的过程优化方法,该
方法为软件企业进行过程改进提供了过程模型建立和仿真的方法。使软件企业可
以在自身的历史数据的基础上建立过程模型,在真实的执行过程之前,通过仿真
在大量组合中寻求优化,能够在过程改进中提高资源的利用率。
为实现上述目的,本发明采用了以下技术方案:
基于过程建模与仿真技术的过程优化方法,包括如下步骤:
A.通过组合项目已定义过程建立过程模型;
B.基于历史度量数据建立项目级和组织级过程资源模型;
C.以组织级过程资源模型为基础生成与工期和工作量相关的过程性能基线
和过程性能模型;
D.根据过程性能基线在工具中定义过程变量和设置变量的默认范围,根据过程性能
模型的公式在工具中设定相应的公式;
E.在过程模型的仿真执行中排除过程中存在的瓶颈;
F.建立过程优化准则;
G.对过程模型进行仿真,在过程的模拟执行中进行一组与工期、工作量和质量相关
的参数的传递,并根据过程模拟执行的当前状态和参数之间的关联关系获得动态的执行结
果,根据动态执行结果和所建立的过程优化准则选择不同的优化方案。
所述的基于过程建模与仿真技术的过程优化方法中,所述步骤B中,
过程资源模型为:
1)生命周期某阶段花费的时间与项目总周期的比例;
2)生命周期某阶段花费的工作量与项目总工作量的比例;
3)生命周期某阶段某种任务类型花费的工作量与该阶段总工作量的比例;
项目级过程资源模型的建立方法为:
1)Rproject={RTime,REffort,RType};
2)RTime={rTime1,rTime2,...,rTimei,...,rTimen};
3)REffort={rEffort1,rEffort2,...,rEfforti,...,rEffortn};
4)RType={rType11,rType12,...,rTypeij,...,rTypenm};
5)rTimei=((TiEnd-TiBegin)/(TnEnd-T1Begin))×100%;
6 ) - - - r E f f o r t i = ( Σ j = 1 m E i j / Σ i = 1 n Σ j = 1 m E i j ) × 100 % ; ]]>
7 ) - - - r T y p e i j = ( E i j / Σ j = 1 m E i j ) × 100 % . ]]>
其中:n为项目生命周期阶段总数;m为项目中任务类型总数;Rproject为项
目级资源模型;RTime为生命周期某阶段花费的时间与项目总周期的比例;REffort
为生命周期某阶段花费的工作量与项目总工作量的比例;RType为生命周期某阶
段某种任务类型花费的工作量与该阶段总工作量的比例;TiBegin为生命周期阶段i
的开始时间;TiEnd为生命周期阶段i的结束时间;Eij为生命周期阶段i中在任务
类型j上花费的工作量;rTimei为生命周期阶段i花费的时间与项目总周期的比例;
rEfforti为生命周期阶段i中花费的工作量与项目总工作量的比例;rTypeij为生命周期
阶段i中在任务类型j上花费的工作量与该阶段i总工作量的比例;
组织级过程资源模型的建立方法为:
1 ) - - - R o r g = { R T i m e , R E f f o r t , R T y p e } ; 2 ) - - - R T i m e = { r ^ T i m e 1 , r ^ T i m e 2 , ... , r ^ T i m e i , ... , r ^ T i m e n } ; 3 ) - - - R E f f o r t = { r ^ E f f o r t 1 , r ^ E f f o r t 2 , ... , r ^ E f f o r t i , ... , r ^ E f f o r t n } ; 4 ) - - - R T y p e = { r ^ T y p e 11 , r ^ T y p e 12 , ... , r ^ T y p e i j , ... , r ^ T y p e n m } ; 5 ) - - - r ^ T i m e i = r ‾ T i m e i ; ]]>
6 ) - - - r ^ E f f o r t i = r ‾ E f f o r t i ; ]]>
7 ) - - - r ^ T y p e i j = r ‾ T y p e i j ; ]]>
8 ) - - - r ‾ T i m e i = 1 p Σ k = 1 p r T i m e i k ; ]]>
9 ) - - - r ‾ E f f o r t i = 1 p Σ k = 1 p r E f f o r t i k ; ]]>
10 ) - - - r ‾ T y p e i j = 1 p Σ k = 1 p r T y p e i j k ; ]]>
11)rTimeik=((TiEnd-TiBegin)k/(TnEnd-T1Begin)k)×100%;
12 ) - - - r E f f o r t i k = ( Σ j = 1 m E i j k / Σ i = 1 n Σ j = 1 m E i j k ) × 100 % ; ]]>
13 ) - - - r T y p e i j k = ( E i j k / Σ j = 1 m E i j k ) × 100 % . ]]>
其中:n为项目生命周期阶段总数;m为项目中任务类型总数;p为样本容
量,即同一类型项目中项目的总数;Rorg为组织级资源模型;(TiEnd-TiBegin)k为项
目k中生命周期阶段i花费的时间;Eijk为项目k中生命周期阶段i中在任务类型
j上花费的工作量;rTimeik为项目k中生命周期阶段i花费的时间与项目总周期的
比例;rEffortik为项目k中生命周期阶段i中花费的工作量与项目总工作量的比例;
rTypeijk为项目k中生命周期阶段i中在任务类型j上花费的工作量与该阶段i总工
作量的比例。
所述的基于过程建模与仿真技术的过程优化方法,所述步骤C中,与工
期相关的过程性能基线为:
阶段i工期比例基线上限=阶段i工期比例基线均值+3倍工期标准差;
阶段i工期比例基线下限==阶段i工期比例基线均值-3倍工期标准
差;
与工作量相关的过程性能基线为:
阶段i工作量比例基线上限=阶段i工作量比例基线均值+3倍工作量
标准差;
阶段i工作量比例基线下限=阶段i工作量比例基线均值-3倍工作量
标准差。
4、根据权利要求1的基于过程建模与仿真技术的过程优化方法,其特征
在于,所述步骤D中,根据过程性能基线在工具中定义过程变量和设置
变量的默认范围,根据过程性能模型的公式在工具中设定相应的公式,
过程性能模型的公式定义为:
1)总工期=∑当前阶段之前各阶段的实际工期+∑目标总工期*当前阶段
之后各阶段(包括当前阶段)的工期比例基线均值;
2)总工作量=∑当前阶段之前各阶段的实际工作量+∑目标总工作量*当
前阶段之后各阶段(包括当前阶段)的工作量比例基线均值;
所述步骤F中,过程优化准则包括:
1)准则1(成本优先):选择成本最小的前m个过程;
2)准则2(进度优先):选择进度最短的前m个过程;
3)准则3(质量优先):选择质量最优的前m个过程;
4)准则4(综合考评):为三个目标设定权值,按加权算法,选择加权最优
的前m个过程;
5)准则5(客户目标):选择同时满足客户需求的前三个优化准则的过程。
本发明提出了基于过程建模与仿真技术的过程优化方法。企业以自己的历
史数据为基础建立过程资源模型。本发明提出了在资源模型的基础上生成过程性
能基线与过程性能模型的方法作为优化的基础,然后通过过程模型仿真进行优
化。由于复杂过程存在反馈路径、概率执行路径,所以瓶颈的排除必须使用仿真
技术。除此之外,在真实的执行过程之前,通过仿真在大量组合中寻求优化,能
够有效降低过程优化的成本。
本发明的优点是:本发明使用软件企业自身的历史数据建立模型,使得所
建立的模型符合软件企业的特征;本发明中提出的项目级和组织级过程资源模型
的建立方法可以通过简单的数据收集和计算获得对工期和工作量分布的直观展
示;本发明提出的由资源模型自动转换并生成过程性能基线和模型的方法比手工
收集数据、建立过程性能基线和模型的方法降低了工作的复杂程度和工作量投
入;由于有一些被优化的过程为复杂的过程,复杂过程存在反馈路径和概率执行
路径,所以只通过直观的过程建模无法排除过程瓶颈,本发明采用的仿真技术可
以有效的发现这些过程瓶颈,包括通过仿真结果发现过程中的不可达节点、死锁
和死循环。除此之外,通过在真实的执行过程之前,对过程进行大量的仿真执行,
可以获得大量的过程组合,应用本发明提出的优化准则,能够通过工具自动地筛
选出过程组合中的较优组合,从而寻求优化,比软件企业通过试点的方法真实的
执行过程优化过程,降低了过程改进的成本,提高资源的利用率。
附图说明
图1是本发明过程优化方法的实现流程图;
图2是项目已定义过程的一个实例;
图3是以确定后的项目已定义过程为基础建立的过程模型的一个实例,该实
例中存在反馈路径和概率执行路径;
图4是活动中的变量与公式设置;
图5是存在反馈路径和概率执行路径过程的仿真结果;
图6是存在死锁过程的一个实例;
图7是存在死锁过程的仿真结果;
图8是仿真结果的一个实例;
图9是所设置的优化准则;
图10是筛选后的仿真结果。
具体实施方式
下面将结合附图对本发明作进一步的说明。
本发明的过程模型的建立和优化是通过企事业过程建模系统EPMS(EnterpriseProcess
ModelingSystem)创建的。EPMS由过程模型建造环境PMBE(ProcessModelBuilding
Environment)和过程模型模拟环境PMSE(ProcessModelSimulationEnvironment)两部分
组成。PMBE是一个图形化的过程编辑器。通过使用一套预定义的图符,用户可以快速地构
造过程模型。它支持按照可视化过程建模语言VPML(VisualProcessModelingLanguage)
来建立过程模型,支持对过程模型中图符对象之间连接的自动语法检查。用PMBE构造的
过程是按层次结构组织的。PMSE是一个图形化的过程模拟器。在使用PMBE完成过程模
型的构造之后,通过对模型设置参数和公式,可使用PMSE对模型进行方针执行,检查在
所创建的模型中,是否存在不可达路径,是否存在活锁(死循环)和死锁(竞争资源而不可
得),并可以通过所设定的优化准则,自动地筛选其中的较优组合,同时提供与过程执行有
关的花费、周期、质量和资源利用等方面的度量数据和图表。过程方针是对过程模型进行分
析、验证、改进和优化的实用方法。
使用EPMS创建一个过程模型的步骤为:首先,用户应通过PMBE来构造一个过程模
型,并进行完整性检查。然后,为该过程模型创建一个过程实例,并在PMSE中,为该过
程实例设置参数(如活动持续时间、活动持续时间的分布、分支概率等)和公式,参数及其
默认值来自于过程性能基线、公式来自于过程性能模型。通过该过程实例对该过程模型进行
仿真,获得大量的过程组合,可以应用优化准则,能够自动地筛选其中的较优组合,为决策
者提供决策的基础,从而寻求过程的优化。
如图1所示,软件企业可以通过以下步骤A至G来进行过程的优化。
A.建立过程模型:
通过组合项目已定义过程建立过程模型。软件企业的各个过程由不同的子过程所组
成,在进行过程的优化之前,要通过选择和组合这些子过程建立项目的已定义过
程作为过程建模和优化的基础,组合后的过程称为项目已定义过程。在组成项目
已定义过程时,要考虑所选择的子过程之间的相互作用,以确定项目已定义过程
的选择是否合理。如图2所示,当项目选择其子过程组成项目的已定义过程时,
对于需求阶段的评审和测试有两种选择。当增加需求阶段评审的工作量(10%)
时,由于前期质量有所提高,因此可以减低测试阶段的工作量(13%),所以选
择第二种子过程组成项目已定义过程可以使总工作量满足项目定量目标中工作
量目标的要求。即,通过分析,如果所选子过程(或是已优化的过程)最终能够
产生符合客户需要的结果,那么就确定已定义过程由这些子过程构成。
确定后的项目已定义过程通过EPMS建模:使用图形化的过程编辑器,基于一套预定
义的图符,快速地构造过程模型。同时通过过程模型中图符对象之间连接关系的预定义语义,
进行自动的语法检查。图3是用EPMS建模工具建立的同行评审的过程模型,具体地说,
图3是图2中的需求开发完成之后对需求进行评审的过程模型。
B.建立项目级和组织级过程资源模型:
基于历史度量数据建立项目级和组织级过程资源模型。过程资源模型的定义
为:
1)生命周期某阶段花费的时间与项目总周期的比例;
2)生命周期某阶段花费的工作量与项目总工作量的比例;
3)生命周期某阶段某种任务类型花费的工作量与该阶段总工作量的比例。
为了建立资源模型需要对项目的这些度量数据进行收集。一种可操作性很强
的历史度量数据的收集方法是,在项目实际的实施过程中每天填写日志,可以保
证度量数据的及时、准确。
在日志的设计和填写中,需要注意的问题包括:
1)软件企业统一定义日志格式,日志内容要求覆盖资源模型的度量。
2)在组织级对日志中的系统类型、产品规模、生命周期类型等度量的具体
含义和数据表示单位需要进行统一定义。
3)在组织级对日志中的任务类型、工作量花费等度量的具体含义和数据表
示单位进行统一定义。
4)应用自动化工具进行日志填写有助于数据的收集,并会使分析更一致、
更及时、更准确。
5)日志填写、总结和分析的频率建议分别为:每天、每周和每月。
6)在应用度量数据构建资源模型之前,还要对所收集的度量数据的异常性
进行判断和处理。
资源模型分为项目级资源模型和组织级资源模型,后前以前者为基础建立。
项目级过程资源模型的建立方法如下:
1)Rproject={RTime,REffort,RType};
2)RTime={rTime1,rTime2,...,rTimei,...,rTimen};
3)REffort={rEffort1,rEffort2,...,rEfforti,...,rEffortn};
4)RType={rType11,rType12,...,rTypeij,...,rTypenm};
5)rTimei=((TiEnd-TiBegin)/(TnEnd-T1Begin))×100%;
6 ) - - - r E f f o r t i = ( Σ j = 1 m E i j / Σ i = 1 n Σ j = 1 m E i j ) × 100 % ; ]]>
7 ) - - - r T y p e i j = ( E i j / Σ j = 1 m E i j ) × 100 % . ]]>
其中:n为项目生命周期阶段总数;m为项目中任务类型总数;Rproject为项
目级资源过程模型;TiBegin为生命周期阶段i的开始时间;TiEnd为生命周期阶段i的
结束时间;Eij为生命周期阶段i中在任务类型j上花费的工作量,Eij通过将日志
中该任务类型在该阶段每天花费的工作量的度量数据相加获得;rTimei为生命周期
阶段i花费的时间与项目总周期的比例;rEfforti为生命周期阶段i中花费的工作量
与项目总工作量的比例;rTypeij为生命周期阶段i中在任务类型j上花费的工作量
与该阶段i总工作量的比例。
组织级过程资源模型的建立方法如下:
1)Rorg={RTime,REffort,RType};
2 ) - - - R t i m e = { r ^ T i m e 1 , r ^ T i m e 2 , ... , r ^ T i m e i , ... , r ^ T i m e n } ; ]]>
3 ) - - - R E f f o r t = { r ^ E f f o r t 1 , r ^ E f f o r t 2 , ... , r ^ E f f o r t i , ... , r ^ E f f o r t n } ; ]]>
4 ) - - - R T y p e = { r ^ T y p e 11 , r ^ T y p e 12 , ... , r ^ T y p e i j , ... , r ^ T y p e n m } ; ]]>
5 ) - - - r ^ T i m e i = r ‾ T i m e i ; ]]>
6 ) - - - r ^ E f f o r t i = r ‾ E f f o r t i ; ]]>
7 ) - - - r ^ T y p e i j = r ‾ T y p e i j ; ]]>
8 ) - - - r ‾ T i m e i = 1 p Σ k = 1 p r T i m e i k ; ]]>
9 ) - - - r ‾ E f f o r t i = 1 p Σ k = 1 p r E f f o r t i k ; ]]>
10 ) - - - r ‾ T y p e i j = 1 p Σ k = 1 p r T y p e i j k ; ]]>
11)rTimeik=((TiEnd-TiBegin)k/(TnEnd-T1Begin)k)×100%;
12 ) - - - r E f f o r t i k = ( Σ j = 1 m E i j k / Σ i = 1 n Σ j = 1 m E i j k ) × 100 % ; ]]>
13 ) - - - r T y p e i j k = ( E i j k / Σ j = 1 m E i j k ) × 100 % . ]]>
其中:n为项目生命周期阶段总数;m为项目中任务类型总数;p为样本容
量,即同一类型项目中项目的总数;Rorg为组织级过程资源模型;(TiEnd-TiBegin)k为
项目k中生命周期阶段i花费的时间;Eijk为项目k中生命周期阶段i中在任务类
型j上花费的工作量;rTimeik为项目k中生命周期阶段i花费的时间与项目总周期
的比例;rEffortik为项目k中生命周期阶段i中花费的工作量与项目总工作量的比
例;rTypeijk为项目k中生命周期阶段i中在任务类型j上花费的工作量与该阶段i
总工作量的比例。
C.以组织级过程资源模型为基础生成与工期和工作量相关的过程性能基线
和过程性能模型。
过程性能基线的自动生成方法如下:
2)阶段i工期比例基线上限=均值+3倍工期标准差;
3)阶段i工期比例基线下限=均值-3倍工期标准差;
6)阶段i工作量比例基线上限=均值+3倍工作量标准差;
7)阶段i工作量比例基线下限=均值-3倍工作量标准差;
过程性能模型的计算方法如下:
1)总工期=∑各阶段工期之和;
2)总工作量=∑各阶段工作量之和;
以上公式在进行过程仿真时,随着当前过程之前过程的实际执行,会被修订
为:
3)总工期=∑当前阶段之前各阶段的实际工期+∑目标总工期*当前阶段之
后各阶段(包括当前阶段)的工期比例基线均值;
4)总工作量=∑当前阶段之前各阶段的实际工作量+∑目标总工作量*当前
阶段之后各阶段(包括当前阶段)的工作量比例基线均值;
即已执行的过程使用实际数据,未执行的过程使用目标数据,从而在过程执
行中预测过程执行结束后的情况,在过程执行中生成的预测数据也可以作为优化
的组合之一。
D.根据过程性能基线定义过程变量和设置变量的默认范围、根据过程性能
模型定义公式。图4是图2中的设计完成之后对详细设计进行评审的过程模型。
在EPMS所建立的过程模型中,对于活动(子过程)可以为其设置变量、变量
的默认值和公式,图4所示,通过EPMS建立的过程模型中包含了“活动”,图中使用
椭圆图符表示过程中的活动:准备设计评审、实施设计评审、设计评审结论形成以及设计缺
陷修改等。对于任意一个活动,在工具中都可以设置与其相关的变量、变量的范围以及公式
作为仿真的基础。在仿真时会使用这些变量的默认值随机变量值,通过公式计算过程中其他
活动对该活动的影响,从而仿真出不同的活动组合在工期、工作量和质量方面的执行结果。
这张图举例说明了对于活动中变量和公式的设置。图4所示的过程模型中,可将其中
的变量设置为该阶段的工期、工作量,其默认值均值为与该阶段有关的工期比例
基线的均值和工作量比例基线的均值,默认上下限为与该阶段有关的工期和、工作量
的过程性能基线的上下限。将其中的公式设置为与总工期和总工作量相关的过程
性能模型。过程性能基线均值和上下限的计算方法以及过程性能模型的公式参见
步骤C的说明。除此之外,还可以根据软件企业已有的有关质量的过程性能基
线和模型建立与质量相关的参数、参数的默认值和公式。
E.在过程模型的仿真执行中排除过程中存在的瓶颈。由于有一些被优化的
过程为复杂的过程,复杂过程存在反馈路径和概率执行路径,所以只通过直观的
过程建模无法排除过程瓶颈,需要通过仿真的方式来进行排除。
仿真执行所建立的已定义过程,可以通过对仿真结果的判断发现其中的不可
达节点、死锁和死循环,进行修正。不可达节点是指在有向连通图之内,无法建
立达到某点的条件;死循环可能是由于循环条件设置有误;死锁是指并行路径中
互相等待对方释放资源。项目已定义过程中由于存在反馈路径和概率执行路径,
并且这些路径设置有误导致存在不可达节点和死循环。例如如图2所示,在“形
成评审结论”活动之后存在“返工”和“执行评价”两个概率事件。由于两个事
件的概率设置存在缺陷,即“返工”活动的概率为“10”,即100%;“执行评价”活动
的概率为“0”,即0%。因此整个过程不可达节点和死循环。可以通过图5所示的
报告检测出来,图5的报告显示,执行评价这一活动从未被执行,属于不可达节
点,而另外一条路径“返工”在反复的被执行,只有当模拟时间达到上限时才停
止,属于死循环。同样图6和图7表示了死锁的出现及其相关的报告,“测试结
果分析”和“质量综合”两个活动在互相等待对方释放“测试经理”这一角色资
源,导致死锁的产生,在报告中这两个活动被执行次数都是0。
F.建立过程优化准则。过程优化准则通常包括:
1)准则1(成本优先):选择成本最小的前m个过程;
2)准则2(进度优先):选择进度最短的前m个过程;
3)准则3(质量优先):选择质量最优的前m个过程;
4)准则4(综合考评):为三个目标设定权值,按加权算法,选择加权最优
的前m个过程;
5)准则5(客户目标):选择同时满足客户需求的前三个优化准则的过程。
G.对过程模型进行仿真,在过程的模拟执行中进行一组与工期、工作量和质量相关
的参数的传递,并根据过程模拟执行的当前状态和参数之间的关联关系获得动态的执行结
果,根据动态执行结果和所建立的过程优化准则选择不同的优化方案。例如图8、图9和
图10所示,图8展示了过程仿真执行的所有可能组合的结果,图9设定了工作
量、工期等最小为最优的优化准则,图10为在所有的仿真结果中通过所建立的
优化准则筛选出3种结果提供给决策者使用。为了实现仿真,在VPML中定义
输出与和分支的仿真行为如下:当有一个输出连接到“输出与”连接符的活动完
成时,信息被传送到“输出与”连接符并且通过它向下层传送;分支的选择是由
分支上的概率值所确定的。公式计算的实现采用了公式解析器,在活动的活跃事
件中计算公式,并根据变量的范围确定当前计算哪个公式;模拟功能的实现包括
模拟的初始化、执行、单步、动画。
在实际使用本发明时,软件企业只需要按照每天填写日志的方法收集工作量
和工期的基础数据、根据所选择的项目已定义过程在EPMS的PMBE中建立可
视化的过程模型,就可以由PMSE执行仿真,给出筛选后优化结果报告,用于
为过程改进的决策者提供决策依据。
下面,将通过本发明的优化方法与目前常用的两种过程优化方法进行比较,
如下表所示。
由上表可以总结出,由于本发明可以通过资源模型的建立自动生成过程性能
基线和模型、直观可视的使用过程模型、可仿真大量的过程参数组合、自动排除
过程瓶颈、使用优化准则给出初步筛选的过程组合,故通过本发明优化过程具有
可视、自动、易学易用和效率高的优点。
本发明支持过程模型的虚拟执行,使用所采集的度量数据,生成模拟结果的
文本表达和图形显示,支持过程优化。这种动态分析(产品流、信息流、资金流、
人员流等的分析,在考虑资源共享/冲突基础上的并行性分析),必须采用过程仿
真。除此之外:本发明以图形和文本方式显示分析结果;以决策者为主体,采用
交互式优化方式;提供部分仿真分析支持工具。