![cover](https://img-blog.csdnimg.cn/img_convert/e2906ac5a72608c40071623dce96766f.png)
软件项目管理–进度计划
软件项目管理CPM关键路径法
软件项目管理–进度计划
项目初始–项目计划–项目执行控制–项目结束
项目计划:
- 范围计划
- 成本计划
- 进度计划
- 质量计划
- 配置管理计划
- 人员与沟通计划
- 风险计划
- 合同计划
- 集成计划
软件项目进度计划
进度计划的重要性
- 按时完成项目是项目经理最大的挑战之一
- 时间是项目规划中灵活性最小的因素
- 进度问题是项目冲突的主要原因
本章要点
- 进度管理基本概念
- 任务历时估算
- 进度计划编排
- 项目进度模型
- 案例分析
- 课程实践
进度的定义
进度是对执行的活动和里程碑制定的工作计划日期表
任务定义
确定未完成项目的各个交付成果所必须进行的诸项具体活动
项目任务的关联关系
- 项目各项活动之间存在相互联系和相互依赖关系
- 根据这些关系安排任务之间的顺序
前置活动–>后置活动
四种关系
-
结束开始
-
结束-结束
-
开始-开始
-
开始-结束
任务之间管理关系的依据
- 强制性依赖关系
- 是工作任务中固有的依赖关系,是一种不可违背的逻辑关系。又被称为硬逻辑关系或内在的相关性,它是由客观规律和物质条件的限制造成的。例如,需求分析一定要在软件设计之前完成,测试活动,一定要在编码任务之后执行
- 软逻辑关系石油项目管理人员确定的项目活动之间的关系,是人为的、主观的,是一种根据主观意志去调整和确定的项目活动关系,也可以指定行相关,或者偏好相关或软相关。例如安排计划的时候,哪个模块先做,哪个模块后座,那个任务先做好一些,那个任务同时做好一些,都可以由项目经理确定
- 外部依赖关系,是项目活动与非项目互动之间的依赖关系,例如,环境测试依赖与外部提供的环境设备等
用鸡蛋炒韭菜解释三种逻辑关系:
韭菜要先切后炒,叫硬逻辑关系;
韭菜鸡蛋单炒,一般人最佳实践先炒鸡蛋,这叫软逻辑关系;
要做这道菜却没鸡蛋,等鸡下蛋后,才能做,这叫外部逻辑关系。
硬逻辑:必须先盖下层,才能盖上层
外部逻辑:依赖于其他因素,如只有天气合适,才适合滑雪
软逻辑:可以先高尔夫,再游泳,也可反之进行
进度管理图示
- 网络图
- 是活动排序的一个输出
- 展示项目中各个活动以及活动之间的逻辑关系
- 网络图不仅用在项目计划中,而且可以进行项目跟踪
- 常用的网络图
- PDM(precedence diagramming method)优先图法,节点法(单代号)网络图
- ADM(Arrow Diagramming Method) 箭线法(双代号)网络图
- 甘特图
- 里程碑图
- 资源图
- 构成PDM网络图的基本特点是节点BOX,节点表示活动。用箭线表示个活动之间的逻辑关系,可以方便的表示活动之间的各种逻辑关系
ADM图例
ADM也称为双代号项目网络图
在打磨中,,箭线表示活动,两个代号唯一确定一个任务,代号表示前一任务的结束,同时也表示后一任务的开始
ADM图例,虚活动
虚活动
- 为了定义活动
- 为了表示逻辑关系
- 不消耗资源的
关于网络图,下面哪个是不正确的?( )
A.网络图可用于安排计划
B.网络图展示任务之间的逻辑关系
C.网络图可用于跟踪项目
D.网络图可用于详细的时间管理
里程碑图示
里程碑事件的工期一般设置为( )。
A.1
B.2
C.0
D.4
项目估算方法有哪些
要估算项目的时间,需要哪些估算步骤
任务历时估算
估计任务、路径、项目的持续时间
历时估算的基本方法
- 定额估算法
- 经验导出模型
- CPM(关键路径法估计)
- PERT(工程评估评审技术)
- 基于承诺的进度估计
- Jones的一阶估算准则
定额估算法
T=Q/(R*S)
T=活动历时
Q:任务工作量
R:人力资源
S:工作效率
例如 Q=6人/天 R=2人 S=1 T=3天
例如Q=6人天 R=2人 S=1.5 T=2天
经验导出模型
D=a*E^b
D=进度(以月单位)
E=工作量(以人月单位)
a:2-4之间
b:1/3左右,依赖与项目的自然属性
建议掌握模型:Walston-Felix模型 D=2.4*E^0.35
基本COCOMO:D=2.5*E^b
方式 | b |
---|---|
有机 | 0.38 |
半有机 | 0.35 |
嵌入式 | 0.32 |
基本COCOMO举例
一个33.3KLOC的软件项目,属于中等规模、半有机形的项目,采用基本COCOMO估算进度?
1)采用基本COCOMO模型估算的规模E=152pm
2)采用基本COCOMO模型估算的进度D=2.5*152^0.35=14.5
经验导出模型举例
假设:导出模型D=3*E^1/3
E=65人月—> D=3*65^1/3=12人月
CPM(关键路径法估计)
- 确定项目网络图
- 每个任务有单一的历时估算
- 确定网络图中任务的逻辑关系
- 关键路径是网络图中最长的路径
- 关键路径可以确定项目完成时间
PERT(工程评估评审技术)
program evaluation and review technique
利用网络顺序图逻辑关系
项目中某项单独的活动,存在很大的不确定性
加权算法估算任务历时
利用网络图逻辑关系,确定路径、项目历时
它是基于对某项任务的乐观、悲观以及最可能的概率时间估计
采用加权平均得到期望值E=(0+4m+p)/6
- o是最小估算值(乐观optimistic)
- p是最大估算值(悲观pessimistic)
- m是最大可能估算(Most likely)
pert的风险性
PERT的风险指标
- 标准差sigema=(最大估算值-最小估算值)/6
- 方差=[(最大估算值-最小估算值)/6]^2
- 例如sigema=(24-8)/6=2.67
PERR评估存在多个活动的一条路径
- 期望值=E=E1+E2+E3+…EN
- 方差sige=s12+s22+…+sn
- 标准差=方差开根号
标准差概率理论
平均历 时E=13.5, δ =1.07 | ||||
---|---|---|---|---|
范围 | 概率 | 从 | 到 | |
T1 | ± δ | 68.3% | 12.43 | 14.57 |
T2 | ± 2 δ | 95.5% | 11.36 | 15.64 |
T3 | ± 3 δ | 99.7% | 10.29 | 16.71 |
问题:项目在14.57内天完成的概率是多少?
基于承诺的进度估计
- 要求开发人员做出进度承诺
- 不进行中间的工作量(规模)估计
优点:
- 有利于开发者对进度的关注
- 有利于开发者在接受承诺之后的士气高扬
缺点:
- 易于产生大的估算误差
历时估算的基本方法
- 定额估算法
- 经验导出模型
- CPM(关键路径估计)
- PERT(工程评估评审技术)
- 基于承诺的进度估计
- ones的一阶估算准则
jones的一阶估算准则
- 幂次表
- 估算项目功能点
- 从幂次表中选择合适的幂次将功能点升幂
jones的一阶估算准则—幂次表
软件类型 | 最优级 | 平均 | 最差级 |
---|---|---|---|
系统软件 | 0.43 | 0.45 | 0.48 |
商业软件 | 0.41 | 0.43 | 0.46 |
封装商品软件 | 0.39 | 0.42 | 0.45 |
如果某平均水平的商业软件fp=350
粗略的进度=350^0.43=12月
( )可以显示任务的基本信息,使用该类图能方便的查看任务的工期、开始时间、结束时间以及资源的信息。
A.甘特图
B.网络图
C.里程碑图
D.资源图
下列说法正确的是()
A.时间是项目规划中灵活性最小的因素。
B.项目各项活动之间不存在相互联系与相互依赖关系。
C.在ADM网络图中,箭线表示的是任务之间的逻辑关系,节点表示的是活动。
D.通过缩短非关键路径的活动周期可以缩短项目周期。
项目功能点估算,用例估算以及代码行等估算与项目时间估算的关系?
进度编制的基本方法–关键路径法
- 最早开始时间(early start)
- 最晚开始时间(late start)
- 最早完成时间(early finish)
- 最晚完成时间(late finish)
- 总浮动(total float)
- 自由浮动(free float)
- 超前(lead)
- 滞后(lag)
最早开始时间(early start)es
最晚开始时间(late start)ls
最早完成时间(early finish)ef
最晚完成时间(late finish)lf
浮动时间(float)
浮动时间是一个任务的机动性,他是一个任务在不影响其他任务或者项目完成的情况下可以延迟的时间量
总浮动与自由浮动
- 总浮动(total float)在不影响项目最早完成时间的前提下,一个任务可以延迟的时间
- 自由浮动(ff free float)在不影响后置任务最早开始时间的前提下,一个任务可以延迟的时间
关键路径
- 时间浮动为0的路径
- 网络图中最长的路径
- 关键路径是决定项目完成的最短时间
- 关键路径上的任何活动延迟,都会导致整个项目完成的时间的延迟
- 关键路径可能不止一条
下面的公式您一定要学会!
任务滞后:lag
正推法(foward pass)
按照时间顺序计算最早开始时间和最早完成时间的方法,称为正推法
1)确定项目的开始时间
2)从左到右,从上到下
3)计算每个人物的最早开始时间ES和最早完成时间EF
- 网络图中第一个任务的最早开始时间是项目的开始时间
- ES+DURATION=EF
- EF+Lag=ES
- 当一个任务有多个前置任务时,选择前置任务中最大的EF加上lag作为其ES
正推法实例
逆推法
按照逆时间顺序计算最晚开始时间和最晚结束时间的方法
-
确定项目的结束时间
-
从右到左,从上到下
-
计算每个人物的最晚开始时间LS和最晚开始时间LF
- 网络图中最后一个任务最晚完成时间是项目的结束时间
- lf-duration=ls
- ls-lag=lf
- 当一个任务有多个后置任务时,选择其后置任务中最小ls-lag作为其lf
( )可以显示任务的基本信息,使用该类图能方便的查看任务的工期、开始时间、结束时间以及资源的信息。
A.甘特图
B.网络图
C.里程碑图
D.资源图
作为项目经理,你需要给一个软件项目做计划安排,经过任务分解后得到任务A,B,C,D,E,F,G,假设各个任务之间没有滞后和超前,下图是这个项目的PDM网络图。通过历时估计已经估算出每个任务的工期,现已标识在PDM网络图上。假设项目的最早开工日期是第0天,请计算每个任务的最早开始时间,最晚开始时间,最早完成时间,最晚完成时间,同时确定关键路径,并计算关键路径的长度,计算任务F的自由浮动和总浮动.
-
总浮动时间:总浮动时间是指在不延误项目完成日期或违反制约因素的前提下,某进度可以推迟的总时间量(从其最早开始日期算起)
-
总浮动时间=最晚开始时间-最早开始时间=最晚完成时间-最早完成时间
-
浮动时间(float)=时差-总浮动时间=路径浮动时间
-
自由浮动时间是指可以不推迟任何后续活动的最早开始时间的情况下可以推迟的时间
-
自由浮动时间=(后续活动的最早开始时间-本活动的最早完成时间)
-
自由浮动时间=活动浮动时间
-
自由浮动和总浮动:总浮动是整个路径上有效,总浮动有当前活动的最晚-最早既可以得到ls-es,总浮动不会影响到整个项目的结束时间
-
自由浮动是不影响到下游获得最早开始时间能够有的浮动,自由浮动需要上下两个活动才能够计算es1-ef0
-
注意:总浮动的值是大于等于自由浮动的值的,注意浮动是可以为负值的
浮动时间(float)=时差=总浮动时间=路径浮动时间
自由浮动时间=(后续活动的最早开始时间)-(本活动的最早完成时间)
进度编排的基本方法
时间压缩法
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)