软件项目管理 7.4.2.进度计划编排-关键路径法
【公众号@ “项目管理研究所” 将会第一时间更新文章并分享《行业分析报告》】
归档于软件项目管理初级学习路线
第七章 软件项目进度计划
《初级学习路线合集 》
前言
大家好,这节我们学习软件项目管理—进度计划编排–关键路径法。
基本概念
- 最早开始时间(Early start)
- 最晚开始时间(Late start)
- 最早完成时间(Early finish)
- 最晚完成时间(Late finish)
例如:我们看这个任务是10天,最早开始时间ES=1,最早完成时间EF=11,最晚开始时间LS=5,那么对应最晚完成时间LF=15。
浮动时间
浮动时间是一个任务的机动性,它是一个任务在不影响其它任务或者项目完成的情况下可以延迟的时间量。
例如:下图这个刚才的任务,可以1号开始,也可以5号开始,有4天的浮动,这就是浮动,这个浮动基本就是个总浮动的概念,我们一般说的浮动也是总浮动。
总浮动与自由浮动
如下图示的任务有4天的总浮动,但是不一定可以自由的使用。
总浮动是在不影响项目最早完成时间的前提下,一个任务可以延迟的时间。
自由浮动是在不影响后置任务最早开始时间的前提下,一个任务可以延迟的时间量。他说明了总浮动的自由性,所以小于等于总浮动。
例如:他的后置任务最早开始时间是13,所以自由浮动时间为2.
关键路径
- 网络图中最长的路径
- 关键路径是决定项目完成的最短时间。
- 时间浮动为0(Float=0)的路径
- 关键路径上任何活动延迟,都会导致整个项目完成时间的延迟
- 关键路径可能不止一条
我们看一个项目网络图:关键路径是A,项目完成的时间是100天。
我们将这个网络图改为甘特图的形式,项目在100天内完成,A任务没有浮动,是关键路径。但是B任务相对来说灵活点,是有浮动的,最晚可以第90天开始。
我们先看第一个任务A,从第0天开始,说明任务A的最早开始时间是第0天,那么他的最早结束时间是100。
所以ES=0可以推导出EF=100,从左向右,顺时针推导。A的最晚完成时间是第100天,历时是100,所以LF=100,LS=0,从右向左,逆时针推导。
我们再来看任务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©=EF(B)+lag=15,则EF=ES+历时5天=20。
逆向推导最晚结束时间和最晚开始时间,从右向左。首先推导任务C,LF=100,LS=95。
B的LF=LS©-Lag(5)=90.则B的LS(最早开始时间)=LF(90)减去历时10天为80。
因此我们总结公式如下:
其中S代表后置任务,P代表前置任务。比如ES(S)代表后置任务的最早开始时间。
B的总浮动为80天,但是不一定很自由,为了不影响后置任务C的最早开始时间,则B的自由浮动时间FF为0。
由此我们总结出,正推法确定最早开始时间和最早完成时间。逆推法确定最晚结束时间和最晚开始时间。
正推法
按照时间顺序计算最早开始时间和最早完成时间的方法,称为正推法。
正推法步骤如下:
- 确定项目的开始时间,网络图中第一个任务的最早开始时间是项目的开始时间;
- ES+Duration=EF
- EF+Lag=ES(s),当一个任务有多个前置任务时,选择前置任务中最大的EF加上Lag作为其ES。
- 依次类推,从左到右,从上到下,计算每个路径的所有任务的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.
逆推法
按照逆时间顺序计算最晚开始时间和最晚结束时间的方法,称为逆推法。
逆推法步骤如下:
- 首先确定项目的结束时间,网络图中最后一个任务最晚完成时间是项目的结束时间;
- LF-Duration=LS
- LS-Lag=LF(p),当一个任务有多个后置任务时,选择其后置任务中最小LS减Lag作为其LF
- 依次类推,从右到左,从上到下,计算每个任务的最晚开始时间LS和最晚结束时间LF
我们继续通过逆推法来推导这个项目各个任务的最晚结束时间和最晚开始时间。
首先确定项目完成时间,为了保证项目在最短时间内完成,最后任务H的完成时间是19,因为最后的任务在关键路径上,所以是没有浮动的。
H的最晚结束时间为19,所以LS=17。则前置任务G的LF=17,LS=14,以此类推…自上而下,从右到左。
图中任务B有两个后置任务,则需要选择后置任务中最小的LS减去Lag作为其LF,所以选择任务D的LS=11,因为没有Lag,所以任务B的LF=11.
我们继续看网络图的关键路径,关键路径是没有浮动的路径,是最紧凑的路径,图中A->C->G->H是没有浮动的,所以是关键路径,那么他也一定是最长的路径,这个长度是18.
所以通过关键路径确定项目的完成时间是18。
总结
总之 关键路径方法主要是通过正推方法和逆推方法进行任务编排,正推方法确定每个任务的最早开始时间和最早完成时间,逆推方法确定每个任务的最晚完成时间和最晚开始时间。
到这里,第七章 第四节 第二小节 关键路径法就讲解完毕了!下一节介绍时间压缩法~
如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~
软件项目管理 7.4.2.进度计划编排-关键路径法相关推荐
- 软件项目管理 7.4.1.进度计划编排-超前与滞后方法
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 <初级学习路线合集 > ...
- 软件项目管理 7.4.5.进度计划编排-敏捷计划
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 <初级学习路线合集 > ...
- 软件项目管理 7.4.3.进度计划编排-时间压缩法
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 <该文章图片解析有问题,点 ...
- 软件项目管理 7.4.4.进度计划编排-资源优化法
[公众号@ "项目管理研究所" 将会第一时间更新文章并分享<行业分析报告>] 归档于软件项目管理初级学习路线 第七章 软件项目进度计划 <初级学习路线合集 > ...
- (软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划
文章目录 一:相关概念 (1)任务集合 (2)项目管理者的工作 A:目标 B:方法 (3)进度安排 A:定义 B:流程 二:估算开发时间 (1)利用成本估算模型估算开发时间 (2)特殊情况 A:描述 ...
- 致远项目管理SPM系统之进度计划管理概述
卷首语 致远SPM系统进度计划管理是项目管理的核心业务,是站在企业层面对现行组织中所有的项目进行筛选.评估.计划.执行与控制的项目管理方式. 致远SPM系统支持对不同层级的项目进行直接监控和干预,对多 ...
- IT软件项目管理实战教程-(启动、计划、实施、控制和收尾)
IT软件项目管理实战教程 课程分类:Java 适合人群:中级 课时数量:32课时 用到技术:IT软件项目配置.IT软件项目模板的制定 涉及项目:IT软件企业项目甘特图案.IT软件项目可行性报告分析.基 ...
- 项目管理:项目总体进度计划的客观规律
找到一边不错的文章,总结的挺不错的,现分享给大家,尤其是初入这个领域的盆友 源文件:项目总体进度计划的客观规律,希望别被封 <-_-> 业主/总包方根据项目进展的总体需求及投资计划的比重, ...
- project2021软件安装教程-项目管理-横道图-进度计划安装包
目录 简介 安装与配置 总结 简介 Project 2021,这是一款项目风险管理办公室软件,软件界面非常简洁明了,功能看上去一目了然,即便你是新手小白使用起来也是可以很快上手.Project的具体 ...
最新文章
- 「高并发秒杀」linux安装软件有哪几种方式
- MVC 事物同时保存,更新数据库
- Redis集群搭建-韩国庆
- Nifi出现Failed to send StandardFlowFileRecord xxxx to Hbase due to Failed 3 actions解决
- 一个PHP使用重新整理数组的小笔记
- C语言(CED)判断一个数是否是2的整数幂的简便方法!
- 计算机科学与技术的专业论述,关于计算机科学专业的论文题目 计算机科学专业论文题目怎样定...
- 数仓ETL系统:给强大的“心脏”配上“超级流水线”
- linux oracle11g客户端安装
- html在新网页输出结果是,JavaScript考试试卷
- 稀疏表示(Sparse Representations)
- C#带命令行参数调用外部程序
- 计算机基本办公软件应用技能有哪些,办公人员应掌握哪些办公软件技能
- 仿滴滴打车时间选择器开始结束时间
- 自动提交flag-python
- 计算机开机键英语字母,电脑开机黑屏显示英文字母
- C++PrimerPlus 第六章 分支语句和逻辑运算符(复习题)
- Android 开发中遇到的 bug(4)
- 专业工业无线串口服务器,MWP-3010R工业无线串口服务器
- January 11th Monday 2010
热门文章
- Doris之ROLLUP
- 计算机毕设Python+Vue养老院管理信息系统(程序+LW+部署)
- redis05_springboot+mybatis整合redis cluster
- 用户定向拉新及拉新策略建议
- ffmpeg 设置 改变 默认 音轨 声道 顺序 shell 懒人系列-23
- stable diffusion webui 使用
- COMUUU让音乐回归:人人都可玩转音乐,更在音乐中找寻知音
- Android Studio创建Java项目
- Codeforces Round #636 (Div. 3) 题解
- windows xp professional 序列号(密钥)及百度网盘下载地址