摘要:VERT方法初的运用对象大多数属于国防系统研制的计划管理和风险决策分析。近年来,高技术研制项目已广泛渗入民用产品和一般工业企业, VERT方法的应用已扩展到各行各业,IT行业也不例外,显示出VERT的广阔应用前景。我们旨在将VERT方法引入软件领域,为项目管理人员进行项目风险分析提供一种行之有效的方法。
1, 引言
风险评审技术(Venture Evaluation Review Technique,简称VERT)是一种以管理系统为对象,以随机网络仿真为手段的风险定量分析技术。在软件项目研制过程中,管理部门经常要在外部环境不确定和信息不完备的条件下,对一些可能的方案做出决策,于是决策往往带有一定的风险性,这种风险决策通常涉及到三个方面,即时间(或进度)、费用(投资和运行成本)和性能(技术参数或投资效益),这不仅包含着因不确定性和信息不足所造成的决策偏差,而且也包含着决策的错误。 VERT正是适应某些高度不确定性和风险性的决策问题而开发的一种网络仿真系统。在80年代初期,VERT首先在美国大型系统研制计划和评估中得到应用。VERT在本质上仍属于随机网络仿真技术,按照工程项目和研制项目的实施过程,建立对应的随机网络模型。根据每项活动或任务的性质,在网络节点上设置多种输入和输出逻辑功能,使网络模型能够充分反映实际过程的逻辑关系和随机约束。同时,VERT还在每项活动上提供多种赋值功能,建模人员可对每项活动赋给时间周期、费用和性能指标,并且能够同时对这三项指标进行仿真运行。因此,VERT仿真可以给出在不同性能指标下,相应时间周期和费用的概率分布、项目在技术上获得成功或失败的概率等等。这种将时间、费用、性能(简称T、C、P)联系起来进行综合性仿真,为多目标决策提供了强有力的工具。 VERT技术是在PERT、GERT和Q-GERT的基础上发展起来的。在70年代初期,美国人在GERT网络技术的基础上发展了网络数学分析器MATHNET(Mathematical Network Analyzer),它可以把离散事件活动、活动时间和费用综合起来构成一个概率特征进行计算和分析。随后又开发了网络统计分析器STATNET(Statistical Network Analyzer)和网络求解分析器(Solving Network Analyzer)等网络技术。与此同时还对MATHNET进行了修改,重新命名为风险数据系统和费用分析法RISCA(Risk Information System Cost Analysis),同时也开发了全面风险评估和费用估算网络TRACENET(Total Risk Accessing Cost Analysis),从而进入了风险评估邻域。然而这些系统尚不能评定与性能有关的风险度,特别是研究和开发中技术性能指标能否达到规定的风险度。到72年,由Gerald L.Moeller等研究开发VERT技术,才使风险度估计成为可能。此后,经过改进和扩充,形成现在的VERT,为实际应用打下了基础。
2, 建模要素和逻辑功能
2.1建模要素
VERT网络的建模要素是活动(弧)和节点,其仿真过程可以想象成一定的时间流、费用流和性能流通过各项活动,并受到节点逻辑的控制流向相应的活动中。每次仿真运行,相当于这些流从源节点出发,经过相应的节点和活动,执行相应的事件,后到达网络的终节点。由于网络中可以选用具有各种逻辑功能不同的节点,可能导致三种流只经过网络中的部分节点和弧,并到达某个终止节点。因此,必须对网络作多次重复的仿真运行,才能使整个网络中所包含的各个节点和活动都有机会得到实现,得出相应的概率分布,而每次仿真运行不过是对网络实现的一次抽样。 VERT网络中活动和节点都有时间、费用和性能三种参数。每个活动上既可赋给弧本身所具有的三种参数,该项活动本身所需要的时间周期、消耗的费用及经过本活动所产生的性能参数。同时,每项活动上还具有累积的三种参数。根据活动在网络中的位置,从源节点开始,时间流、费用流和性能流经过一定的路径,到达该活动时,所有途经活动上三项参数的累计总和。例如,在网络中某项活动完成时,在该活动上可以得到从软件项目开始到此活动完成时刻的周期、累计费用和到此时已达到的性能值。 由于VERT网络中包含概率型和条件型两种逻辑功能,因此在仿真运行时有些活动能成功地实现(以概率为1得到实现),而有些活动则不能成功地实现,这表示前一段过程的失败。例如进行某项设计工作,如果经过设计、试制、试验等各个阶段,其结果不能达到设计性能要求,这时,在完成试验活动以后,时间和费用的累计值却被置零,表示该项设计试制工作的失败。
2.2弧(活动)的类别
按照活动在VERT网络中所取的作用,可大致分为四类。
(1)普通弧(活动) 这类弧是VERT网络中的直接组成部分,普通弧上都带有时间、费用和性能的参数值。它们的参数值一般是以概率分布的形式表示。
(2)自由弧(活动) 自由活动不在VERT网络中直接表示出来,但是网络中的其它活动可以引用它们的参数,自由弧上所赋的时间、费用和性能值可以通过一定的数学关系式进行调用。
(3)传送弧(活动) 传送活动是VERT网络的组成部分,它仅作为各种参数通道,对于某些节点之间的关系具有时间上的和先后次序的约束。传送弧上不赋时间、费用和性能参数值,或可理解为三项参数值均等于零,因而被传送的参数流不发生增值。
(4)排放弧(活动) 对于某些被取消的节点,如果已有活动引入该节点,则在VERT网络中可能出现流量的堵塞现象。在这种情况下,可在该节点的输出端设置一个排放活动,使流量通过这个活动传出系统。 在仿真运行中,各类活动都可以处于不同的状态。当该活动能成功地实现时,则参数流通过本活动输出至下一节点,这种状态称为成功完成状态。如果某项活动处于非成功完成状态,则该活动的时间和费用值仍通过本弧输出至下一节点,但没有性能值输出。如果某项活动处于被取消状态,则活动不能被执行,因而也没有参数流通过,不消耗任何时间和费用,更不会产生任何性能。
2.3节点的类别
VERT网络中的节点表示前接活动的结束和后接活动的开始,节点被称为总过程中的一个里程碑。VERT节点具有丰富的逻辑功能,从而可以在仿真运行中决定要启动哪些输出弧或是否要启动本节点等。根据节点的逻辑功能,VERT节点可分为两大类,即组合节点和单个节点。组合节点由输入逻辑和输出逻辑组成,而单个节点只包含一种单个逻辑。下面分别对上述二种节点进行说明。
组合节点