风险评审技术(VentureEvaluationReviewTechnique,简称VERT)是一种以管理系统为对象,以随机网络仿真为手段的风险定量分析技术。在软件项目研制过程中,管理部门经常要在外部环境不确定和信息不完备的条件下,对一些可能的方案做出决策,于是决策往往带有一定的风险性,这种风险决策通常涉及到三个方面,即时间(或进度)、费用(投资和运行成本)和性能(技术参数或投资效益),这不仅包含着因不确定性和信息不足所造成的决策偏差,而且也包含着决策的错误。风险评审技术(ven‘ureevalua‘ionandreviewteehnique,vERT)研究风险决策问题的一种随机网络仿真技术。亦称风险协调技术。能针对系统的各种随机因素,构造出适当的网络模型,并通过仿真来评估系统研制或开发等过程的风险程度,为决策提供依据。1973年,美国学者G.L.默勒研制出最早的风险评审技术模型,并将其应用于武器系统研制过程的凤险分析。随后,风险评审技术又在作战指挥、军事演习及其他领域得到广泛应用。中国从20世纪80年代开始对风险评审技术进行研究和开发,并将其应用于航空航天及军事指挥等领域。在风险评审技术网络模型中,弧(箭线)表示活动(工作),弧上同时带有反映完成此项活动所需时间、费用及所能产生自注:图中每个节点都有输入端和输出端。“与”型输入要求在输出弧启动之前全邵偷入弧皆实现。“或”型输入当输入弧有一个实时,便启动偷出逻解。“全体型偷出同时启动全部输出弧。“滤波”型输出按照一定的条件在全邵输出弧中选择启动某些弧。“初始”型偷入与“终止”型输出分别用在网络的起始点与终止点。飞机研制过程的VERT网络模型示意图的性能三方面的参数,这些参数均为随机变量,可用一定的概率分布来加以描述;节点可表示决策点、一项活动的阶段性完成点或仿真决策过程中的风险分析点。风险评审技术网络模型的节点类型很多,能提供十几种逻辑功能,用户可根据实际过程的需要,选择相应的节点逻辑,联成网络模型,然后按照仿真软件的要求编成仿真程序,在计算机上重复进行仿真实验。仿真过程中,仿真软件将对每一项活动的性能、时间及费用作出评估,通过风险分析给出系统各部分成功与失败的概率,并进行综合分析,给出整个系统的风险度指标。VERT一3是一种广泛应用的随机网络仿真软件,它的功能比较齐全,通过仿真可以给出网络模型中周期最长、费用最大并且性能最低(或三项指标的加权综合值最低)的“关键路线”和这三项指标(或其加权综合值)达到最佳状态的“最优路线”。用户可在关键路线和最优路线之间进行参数调整,以期达到满意的结果。例如,研制某型飞机的过程,可绘成一个风险评审技术网络模型。飞机所能达到的性能及所需的费用与时间之间存在某种非线性的函数关系。当限定研制周期或费用时,通过仿真实验,运行仿真软件,能给出采用某一研制方案时因时间不够或经费不足而使飞机性能指标达不到要求的概率(即风险度),并为方案的改进提供依据。[1]编辑本段发展VERT正是适应某些高度不确定性和风险性的决策问题而开发的一种网络仿真系统。在20世纪80年代初期,VERT首先在美国大型系统研制计划和评估中得到应用。VERT在本质上仍属于随机网络仿真技术,按照工程项目和研制项目的实施过程,建立对应的随机网络模型。根据每项活动或任务的性质,在网络节点上设置多种输入和输出逻辑功能,使网络模型能够充分反映实际过程的逻辑关系和随机约束。同时,VERT还在每项活动上提供多种赋值功能,建模人员可对每项活动赋给时间周期、费用和性能指标,并且能够同时对这三项指标进行仿真运行。因此,VERT仿真可以给出在不同性能指标下,相应时间周期和费用的概率分布、项目在技术上获得成功或失败的概率等等。这种将时间、费用、性能(简称T、C、P)联系起来进行综合性仿真,为多目标决策提供了强有力的工具。VERT技术是在PERT、GERT和Q-GERT的基础上发展起来的。在20世纪70年代初期,美国人在GERT网络技术的基础上发展了网络数学分析器MATHNET(MathematicalNetworkAnalyzer),它可以把离散事件活动、活动时间和费用综合起来构成一个概率特征进行计算和分析。随后又开发了网络统计分析器STATNET(StatisticalNetworkAnalyzer)和网络求解分析器(SolvingNetworkAnalyzer)等网络技术。与此同时还对MATHNET进行了修改,重新命名为风险数据系统和费用分析法RISCA(RiskInformationSystemCostAnalysis),同时也开发了全面风险评估和费用估算网络TRACENET(TotalRiskAccessingCostAnalysis),从而进入了风险评估邻域。然而这些系统尚不能评定与性能有关的风险度,特别是研究和开发中技术性能指标能否达到规定的风险度。到72年,由GeraldL.Moeller等研究开发VERT技术,才使风险度估计成为可能。此后,经过改进和扩充,形成现在的VERT,为实际应用打下了基础。[2]编辑本段建模要素VERT网络的建模要素是活动(弧)和节点,其仿真过程可以想象成一定的时间流、费用流和性能流通过各项活动,并受到节点逻辑的控制流向相应的活动中。每次仿真运行,就相当于这些流从源节点出发,经过相应的节点和活动,执行相应的事件,最后到达网络的终节点。由于网络中可以选用具有各种逻辑功能不同的节点,可能导致三种流只经过网络中的部分节点和弧,并到达某个终止节点。因此,必须对网络作多次重复的仿真运行,才能使整个网络中所包含的各个节点和活动都有机会得到实现,得出相应的概率分布,而每次仿真运行不过是对网络实现的一次抽样。VERT网络中活动和节点都有时间、费用和性能三种参数。每个活动上既可赋给弧本身所具有的三种参数,该项活动本身所需要的时间周期、消耗的费用及经过本活动所产生的性能参数。同时,每项活动上还具有累积的三种参数。根据活动在网络中的位置,从源节点开始,时间流、费用流和性能流经过一定的路径,到达该活动时,所有途经活动上三项参数的累计总和。例如,在网络中某项活动完成时,在该活动上可以得到从软件项目开始到此活动完成时刻的周期、累计费用和到此时已达到的性能值。由于VERT网络中包含概率型和条件型两种逻辑功能,因此在仿真运行时有些活动能成功地实现(以概率为1得到实现),而有些活动则不能成功地实现,这表示前一段过程的失败。例如进行某项设计工作,如果经过设计、试制、试验等各个阶段,其结果不能达到设计性能要求,这时,在完成试验活动以后,时间和费用的累计值却被置零,表示该项设计试制工作的失败。[2]编辑本段弧(活动)类别按照活动在VERT网络中所取的作用,可大致分为四类。普通弧(活动)这类弧是VERT网络中的直接组成部分,普通弧上都带有时间、费用和性能的参数值。它们的参数值一般是以概率分布的形式表示。自由弧(活动)自由活动不在VERT网络中直接表示出来,但是网络中的其它活动可以引用它们的参数,自由弧上所赋的时间、费用和性能值可以通过一定的数学关系式进行调用。传送弧(活动)传送活动是VERT网络的组成部分,它仅作为各种参数通道,对于某些节点之间的关系具有时间上的和先后次序的约束。传送弧上不赋时间、费用和性能参数值,或可理解为三项参数值均等于零,因而被传送的参数流不发生增值。排放弧(活动)对于某些被取消的节点,如果已有活动引入该节点,则在VERT网络中可能出现流量的堵塞现象。在这种情况下,可在该节点的输出端设置一个排放活动,使流量通过这个活动传出系统。在仿真运行中,各类活动都可以处于不同的状态。当该活动能成功地实现时,则参数流通过本活动输出至下一节点,这种状态称为成功完成状态。如果某项活动处于非成功完成状态,则该活动的时间和费用值仍通过本弧输出至下一节点,但没有性能值输出。如果某项活动处于被取消状态,则活动不能被执行,因而也没有参数流通过,不消耗任何时间和费用,更不会产生任何性能。[2]编辑本段节点类别风险评审技术网络中的节点表示前接活动的结束和后接活动的开始,节点被称为总过程中的一个里程碑。VERT节点具有丰富的逻辑功能,从而可以在仿真运行中决定要启动哪些输出弧或是否要启动本节点等。根据节点的逻辑功能,VERT节点可分为两大类,即组合节点和单个节点。组合节点由输入逻辑和输出逻辑组成,而单个节点只包含一种单个逻辑。编辑本段组合节点输入逻辑1)初始逻辑(INIT)。用作网络流的始点,具有初始逻辑的组合节点称为初始节点,它只设输出活动弧,而没有输入弧。在同一个网络中可以设置多个初始节点,但各个初始节点上由使用者赋予的T、C、P值必须一致,一般都赋为零。“与”逻辑(AND)这种输入逻辑规定只当该节点的所有输入弧都成功完成之后,汇合的输入网流才能通过节点,并按输出逻辑确定的方式传送到输出弧,则此节点处于成功完成状态。当有一个或一个以上的输入弧处于不成功完成状态或被取消状态,则此节点也处于被取消状态,流入节点的网流从“排放弧”流出,该节点的输出弧均处于被取消状态。当节点处于成功完成状态,节点上的时间按所有引入弧上的最大时间确定,费用值是该节点所有前导弧上的费用累计值,性能也分别是所有前导弧上的综合性能的总和。当节点处于被取消状态,节点的时间和费用值按成功节点所述办法确定,节点的性能值约定取成零。“部分与”逻辑(PAND)根据节点输入弧的状态,“部分与”逻辑可对此节点进行以下处理。如果至少有一个输入弧处于成功完成状态,此节点即处于成功完成状态。如果所有输入活动处于被取消状态,则此节点也处于被取消状态,且其输出活动也全部被取消。如果输入活动中虽然没有成功完成状态的弧,但却存在非成功完成状态的弧,或非成功完成和被取消状态的活动并存,则应启动排放活动,流量通过该活动输出。这时,节点处于成功完成状态。节点上的时间、费用和性能值的计算方法和带AND输入逻辑的节点完全一致。“或”逻辑(OR)“或”逻辑要求有一个且仅有一个输入弧成功完成时,就将输入流转移到输出弧上去,并按输出逻辑输出,节点处于成功完成状态。然而这个逻辑不需要等待,即不需等待所有输入弧到来或被取消,只要有一条输入弧成功完成,网流便立即通过节点,被送至输出弧以便继续加工。当该节点所有输入弧没有成功完成时,网流将从排放弧流出,节点处于被取消状态。带有OR逻辑节点的时间和性能值,取作首先成功完成的输入弧的累计时间值和累计性能值,而费用值取该节点所有前导弧的费用累计值。当节点处于被取消状态,节点的时间和费用按前面办法计算,其性能取为零。编辑本段输出逻辑全部逻辑(ALL)如果节点已被启动,参数流就可以通过,并且ALL逻辑无条件地将此节点的所有输出弧启动。风险评审技术蒙特卡洛逻辑(MC)此输出逻辑要求对各输出弧的启动赋以一定的概率值,在一次仿真运行中只有一个输出活动按所赋概率值被随机启动,而其余输出活动均被取消。此节点各输出活动的启动概率之和应等于1。当作多次仿真运行时,各输出活动与被启动的次数与所赋启动概率值相对应。滤波1逻辑(FILTER1)这种输出逻辑按使用者在输出弧上的时间、费用或性能作为约束条件,能够激发一条或者一组输出弧的加工,这些约束条件是由本节点上的时间、费用、性能的上、下界构成的。如果节点的参数落在某输出弧上设定的参数界限内,此弧将被激发或加工,否则,此弧在剩下的迭代阶段中将被取消。节点的输出弧,除一条必须无约束的排放弧外,其余的都应该有约束条件,仅当所有的约束弧都不被加工时,这条排放弧才被启动。FILTER1附设有“扣除”功能,就是在检查输出弧的约束条件之前,临时修改节点的时间、费用和性能值。修改的方法是从节点的时间、费用和性能值扣除前面某个已加工节点的相应参数值,在约束检查完后再将节点的时间、费用和性能值还原。滤波2逻辑(FILTER2)本节点输出活动所提出的约束条件是已成功完成的输入弧的数量,在仿真运行中,到达本节点的成功完成输入弧的数量若符合上述约束条件规定的上下限,此输出弧即被启动,否则输出弧不被启动。各个输出弧上可以规定不同的约束条件。但是