项目进度管理(4-2)关键链法和关键路径法的区别和联系
1 关键链法和关键路径法的主要区别
1.1 关键链法和关键路径法的关注焦点不同
- 关键路径法(CPM):关注项目中最长的路径,也就是所需时间最长的路径,这被称为关键路径。关键路径决定了项目的最早完成时间。
- 关键链法(CCM):关注资源约束和资源分配的影响,强调资源的有效利用和优化,以减少资源瓶颈导致的项目延期。
1.2 任务时长估算不同
- 关键路径法(CPM):任务时长估算通常是基于确定性的,即每个任务有确定的持续时间。
- 关键链法(CCM):关键链法鼓励使用更乐观的估算,以减少人为保守估算造成的项目延期。它假设资源得到了适当的分配和管理,从而可以更快地完成任务。
1.3 缓冲区管理不同
- 关键路径法(CPM):通常会使用任务间的浮动时间来设置缓冲时间,以应对延误。
- 关键链法(CCM):引入了项目缓冲和资源缓冲,以减轻资源约束和不确定性带来的影响。项目缓冲用于保护项目结束时间,资源缓冲用于保护资源约束点。
1.4 资源分配不同
- 关键路径法(CPM):通常忽略资源分配,只关注任务的时长和顺序。
- 关键链法(CCM):强调资源约束,任务的分配和调度基于资源的有效利用,以最大程度地减少资源瓶颈。
1.5 目标不同
- 关键路径法(CPM):目标是尽可能地缩短项目的总持续时间。
- 关键链法(CCM):目标是在资源约束下,尽可能地减少项目的延期风险。
总的来说,关键链法更加关注资源约束和优化,强调以更乐观的方式进行任务时长估算,以及引入缓冲区来保护项目进度。相比之下,关键路径法更加关注任务的时间和顺序,以实现最短的项目完成时间。选择使用哪种方法取决于项目的性质、资源限制以及团队的实际需求。
2 关键链法和关键路径法的联系
- 时间管理: 关键路径法和关键链法都是时间管理工具,旨在帮助项目管理者合理规划任务的时间,确保项目按时完成。
- 任务依赖: 两种方法都考虑任务之间的依赖关系,关键路径法着重于确定最长的依赖路径,而关键链法关注资源约束下的依赖关系。
- 项目控制: 关键路径法和关键链法都有助于项目控制和进度管理,但侧重点不同。关键路径法强调确保关键路径上的任务按时完成,而关键链法注重在资源约束下减少项目延期风险。
总之,关键链法和关键路径法在项目管理中有各自的优势和应用场景。关键路径法适用于那些不受资源限制的项目,而关键链法更适用于资源约束和不确定性较高的项目,通过优化资源利用和缓冲管理,提高项目的进度控制能力。
3 关键链法和关键路径法中其他问题总结
3.1 三点估算法 是否可以用在 关键链法中?
一般情况下 三点估算法是用在 关键路径法中的,但是这里要注意:三点估算法并不限于关键路径法中,它可以在项目管理的各种方法中使用,包括关键路径法、关键链法以及其他时间管理技术。三点估算法的主要目的是提供更准确的任务时长估计,以考虑不确定性和风险,从而更好地规划项目排程。
在关键路径法中,三点估算法通常用于计算任务的最早开始时间和最晚开始时间,以确定任务的浮动时间和关键路径。这有助于确定项目的最短完成时间。
在关键链法中,三点估算法也可以用来估算关键链任务的时长,以考虑资源约束和不确定性。关键链法强调使用更乐观的任务时长估算,以减少人为保守估算可能导致的问题,而三点估算法可以为乐观估算提供支持。
总之,三点估算法是一个通用的时间管理工具,可以在各种项目管理方法中使用,以提高任务时长估计的准确性,从而更好地应对不确定性和风险。无论是关键路径法还是关键链法,三点估算法都可以为项目管理提供有价值的支持。
3.2 关键链任务 和 关键路径法中的关键任务有啥区别?
让我通过一个案例来说明关键路径法中的关键任务和关键链法中的任务之间的区别。考虑一个软件开发项目,需要完成以下几个子任务:A、B、C、D、E、F、G。每个子任务的预计完成时间和任务关系图如下(粉色为空节点,只为表达完整节点关系而引入):

@1 关键路径法中的关键任务:
在关键路径法中,我们需要构建项目的网络图,然后找出最长路径。最长路径上的任务就是关键路径上的关键任务,它们决定了项目的最短完成时间。假设根据依赖关系,任务顺序如下:A -> B -> C、D并行 -> E、F并行 -> G。计算得出最长路径为:A -> B -> C -> E -> G,时长为 5 + 3 + 6 + 7 + 5 = 26天。因此,关键路径上的关键任务是 A、B、C、E、G。
@2 关键链法中的任务:
在关键链法中,我们考虑资源约束和缓冲管理。假设在该项目中,资源约束主要在任务 C 和任务 E 上。任务 C 需要特定的技能,而任务 E 需要特定的软件环境。这两个任务是关键链上的任务。此外,考虑乐观估算和缓冲,我们可能对任务的时长进行调整,比如任务 C 被乐观估算为 4 天,任务 E 被乐观估算为 6 天。因此,关键链法中的任务是 C 和 E。
@3 两者区别:
- 在关键路径法中,关键任务是决定最短完成时间的任务,通常是最长路径上的任务。在上述案例中,关键路径法中的关键任务是 A、B、C、E、G。
- 在关键链法中,关键任务是受资源约束影响的任务,可能与关键路径上的任务不同。在上述案例中,关键链法中的任务是 C 和 E,这是因为它们受到资源限制的影响。
通过这个案例,我们可以看到关键路径法和关键链法中的关键任务不同,前者注重项目的最短时间,后者关注资源约束和任务优先级。
相关文章:
项目进度管理(4-2)关键链法和关键路径法的区别和联系
1 关键链法和关键路径法的主要区别 1.1 关键链法和关键路径法的关注焦点不同 关键路径法(CPM):关注项目中最长的路径,也就是所需时间最长的路径,这被称为关键路径。关键路径决定了项目的最早完成时间。关键链法&…...
基于Java+SpringBoot+Vue前后端分离医院后台管理系统设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
二维数组传参
在C语言中,可以通过指针来传递二维数组。二维数组实际上是一个连续的内存块,可以使用指针来表示二维数组的行和列。以下是一个示例: #include <stdio.h>void myFunction(int arr[][3], int rows) {for (int i 0; i < rows; i) {fo…...
AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频
大家好,我是风雨无阻。 前一篇,我们详细介绍了使用 SadTlaker制作数字人视频案例,感兴趣的朋友请前往查看:AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程。 对于没有安装 SadTlaker 插件的朋友…...
ProPlot 基本语法及特点
文章目录 简介多子图绘制处理共享轴标签“跨度”轴标签多子图序号的绘制 更简单的颜色条和图例更加美观的颜色和字体 简介 科研论文配图多图层元素(字体、坐标轴、图例等)的绘制条件提出了更高要求,我们需要更改 Matplotlib 和 Seaborn 中的…...
element-template-admin get请求正常 post请求超市问题
最近搞全栈,想写个增删改查连接element-template-admin框架,postman测get和post请求都正常,到框架里直接超时,看网络请求一直是padding状态,后来经查阅资料,发现是这个template框架的问题 解决方案&#x…...
Promise.all和promise.race的应用场景举例
Promise.all( ).then( )适用于处理多个异步任务,且所有的异步任务都得到结果时的情况。 <template><div class"box"><el-button type"primary" plain click"clickFn">点开弹出框</el-button></div> &…...
go学习-指针 标识符
指针,以及标识符 1.指针 (1).基本介绍 1)基本数据类型,变量存的值,也叫值类型 2)获取变量的地址用&,比如 var num int ,获取num的地址:&num 3)指针类型&…...
LeetCode--HOT100题(42)
目录 题目描述:108. 将有序数组转换为二叉搜索树(简单)题目接口解题思路代码 PS: 题目描述:108. 将有序数组转换为二叉搜索树(简单) 给你一个整数数组 nums ,其中元素已经按 升序 排列…...
YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)
YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测k折交叉验证法) 0.引言 k折交叉验证(K-Fold Cross-Validation)是一种在机器学习中常用的模型评估技术,用于估计模型的性…...
leetcode算法题--表示数值的字符串
原题链接:https://leetcode.cn/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/description/?envTypestudy-plan-v2&envIdcoding-interviews 题目类型有点新颖,有限状态机 // CharType表示当前字符的类型 // State表示当前所处的状态 type State…...
Docker安装及Docker构建简易版Hadoop生态
一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统:首先打开终端,更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker:使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…...
使用Burp Suite进行Web应用渗透测试
使用Burp Suite进行Web应用渗透测试是一种常见的方法,可以帮助发现Web应用程序中的安全漏洞和弱点。 步骤: 准备工作: 首先,确保已经安装了Burp Suite,并配置浏览器以使用Burp Suite作为代理。 配置代理:…...
Github的使用指南
首次创建仓库 1.官网创建仓库 打开giuhub官网,右上角点击你的头像,随后点击your repositories 点击New开始创建仓库 如下图为创建仓库的选项解释 出现如下界面就可以进行后续的git指令操作了 2.git上传项目 进入需上传项目的所在目录,打开…...
mongodb 添加加点 stateStr 停在 STARTUP
解决办法 PRIMARY 节点是的host 是否是内网IP,如果是内网IP 需要切换成外网IP 即可;...
c语言中编译过程与预处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…...
TP-LINK 路由器设置内网穿透
TP-LINK 路由器设置内网穿透 开发中经常遇到调用第三方软件回调调试的情况,例如微信开发,支付回调等测试,用内网穿透是一种简单的方式也是偷懒的方式。 以TP-LINK路由器为例实现内网穿透 登录路由器 2.找到路由器虚拟服务器,添加…...
A 题国际旅游网络的大数据分析-详细解析与代码答案(2023 年全国高校数据统计与调查分析挑战赛
请你们进行数据统计与调查分析,使用附件中的数据,回答下列问题: ⚫ 问题 1: 请进行分类汇总统计,计算不同国家 1995 年至 2020 年累计旅游总人数,从哪个国家旅游出发的人数最多,哪个国家旅游到达的人数最多…...
《深入理解Java虚拟机》读书笔记: 类加载器
类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新&…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
