软件|软件项目管理 7.4.2.进度计划编排-关键路径法( 二 )



我们再来看任务B的最早开始时间和任务A一样 , 都是第0天开始 , ES=0 , 历时为10 , 从左向右 , 推出B的最早完成时间为第10天 , 则EF=10 。
B的最晚完成时间LF=100 , 从右向左 , 逆时针推导 , B的最晚开始时间为LF-10=90 , 则LS=90.

接下来说浮动 , 刚才说了B有浮动 , 很明显看出来有90天浮动 , 那么这个浮动是总浮动 , TF=LS-ES=90 , 或者TF=LF-EF=90 。
因此我们得出如下图公式:
翻译其中一条:EF(最晚结束时间)=ES(最早开始时间)+duration(历时)

刚才那个项目的任务A和任务B都没有任务后置的 , 所以就不牵扯到自由浮动的问题 。
现在在任务B的后面加一个任务C , 任务C的历时是5 , 并且B和C之间加一个延迟Lag , 这个Lag=5 , 既B任务完成5天后 , C这个任务才能开始 。

看这个项目关键路径还是A , B和C路径是有浮动的 , 但是B任务有了后置任务C之后就不自由了 。
那么任务A这个路径没有变化 , ES和LS还是和刚才一样 , 如图所示:

那么任务C和任务B这条路径 , 正向推导最早开始时间和最早结束时间 , 从左到右 。 对于任务B而言ES=0 , 推导出EF=10.
任务C则ES(c)=EF(B)+lag=15 , 则EF=ES+历时5天=20 。

逆向推导最晚结束时间和最晚开始时间 , 从右向左 。 首先推导任务C , LF=100 , LS=95 。
B的LF=LS(c)-Lag(5)=90.则B的LS(最早开始时间)=LF(90)减去历时10天为80 。

因此我们总结公式如下:其中S代表后置任务 , P代表前置任务 。 比如ES(S)代表后置任务的最早开始时间 。
【软件|软件项目管理 7.4.2.进度计划编排-关键路径法】

B的总浮动为80天 , 但是不一定很自由 , 为了不影响后置任务C的最早开始时间 , 则B的自由浮动时间FF为0 。
由此我们总结出 , 正推法确定最早开始时间和最早完成时间 。 逆推法确定最晚结束时间和最晚开始时间 。
正推法按照时间顺序计算最早开始时间和最早完成时间的方法称为正推法 。
正推法步骤如下:
  1. 确定项目的开始时间网络图中第一个任务的最早开始时间是项目的开始时间;
  2. ES+Duration=EF
  3. EF+Lag=ES(s)当一个任务有多个前置任务时 , 选择前置任务中最大的EF加上Lag作为其ES 。
  4. 依次类推 , 从左到右 , 从上到下 , 计算每个路径的所有任务的ES和最早完成时间EF
我们看个例子:这是项目的网络图 , 而且确定了每个活动的历时 , 现在用正推方法来确定每个任务的ES和EF 。

我们先确定项目的开始时间 , 那么任务A的开始时间是1 , 历时为7 , 则EF(最早结束时间)=8 。
A和C任务之间没有Lag , 所以C的ES为8 , 因为历时为6 , 所以EF为14 。 以此类推...从左到右 , 从上到下 。
图中任务E有两个前置任务 , 则需要选择前置任务中最大的EF加上Lag作为其ES , 所以选择任务D的EF=7因为没有Lag , 所以任务E的ES=7.

逆推法按照逆时间顺序计算最晚开始时间和最晚结束时间的方法称为逆推法 。
逆推法步骤如下: