项目进度管理(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语言的一项创新&…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...
