(软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划
文章目录
- 一:相关概念
- (1)任务集合
- (2)项目管理者的工作
- A:目标
- B:方法
- (3)进度安排
- A:定义
- B:流程
- 二:估算开发时间
- (1)利用成本估算模型估算开发时间
- (2)特殊情况
- A:描述
- B:原因
- (3)项目组规模与项目组总生产率的关系
- A:通信路径
- B:平均生产力
- C:总生产率
- 三:甘特图(Gantt)
- (1)例子
- (2)甘特图的优缺点
- 四:工程网络
- (1)定义
- (2)表示
- 五:估算工程进度
- (1)完善工程网络
- (2)最早时刻EET
- (3)最迟时刻LET
- 六:关键路径
- (1)定义
- (2)特点
- 七:机动时间
- (1)定义
- (2)计算
- (3)表示
一:相关概念
(1)任务集合
一个有效的软件过程应该定义一个适用于当前项目的任务集合。一个任务集合包括一组软件工程工作任务、里程碑和可交付的产品。为一个项目所定义的任务集合,必须包括为获得高质量的软件产品而应该完成的所有任务,但是同时又不能让项目组承担不必要的工作
(2)项目管理者的工作
A:目标
定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,保证及时发现拖延进度的情况
B:方法
管理者必须制定一个足够详细的进度表,以便监督项目进度并控制整个项目
(3)进度安排
A:定义
软件项目的进度安排通过把工作量分配给特定的软件工程任务并规定完成各项任务的起止日期,从而将估算出的项目工作量分布于计划好的项目持续期内。进度计划将随着时间的流逝而不断演化
B:流程
- 在项目计划的早期,制定一个宏观的进度安排表,标识出主要的软件工程活动和这些活动影响到的产品功能
- 随着项目的进展,把宏观进度表中的每个条目都精化成一个详细进度表,标识出完成一个活动所必须实现的一组特定任务,并安排好实现这些任务的进度
二:估算开发时间
(1)利用成本估算模型估算开发时间
- Walston_Feilix模型:T=2.5E0.35T=2.5E^{0.35}T=2.5E0.35
- 原始的COCOMO模型:T=2.5E0.38T=2.5E^{0.38}T=2.5E0.38
- COCOMO2模型:T=3.0E0.33+0.2×(b−1.01)T=3.0E^{0.33+0.2×(b-1.01)}T=3.0E0.33+0.2×(b−1.01)
- Putnam模型:T=2.4E13T=2.4E^{\frac{1}{3}}T=2.4E31
其中E是以人月为单位的开发工作量,T是以月为单位的开发时间
(2)特殊情况
A:描述
随着开发小组规模的扩大,个人生产率将下降,以致开发时间与从事开发工作的人数并不成反比关系
B:原因
- 小组变得更大时,每个人需要用更多时间与组内其他成员讨论问题、协调工作,因此增加了通信开销
- 如果在开发过程中增加小组人员,最初一段时间内项目组总生产率不仅不会提高反而会下降。因为新成员在开始时不是生产力,且在他们学习期间需花费小组其他成员的时间
- Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期
(3)项目组规模与项目组总生产率的关系
A:通信路径
项目组成员之间的通信路径数,由项目组人数和项目组结构决定。通信路径数大约在PPP~P22\frac{P^{2}}{2}2P2的范围内变化
B:平均生产力
某一个组员与其他组员通信的路径数在1~(PPP-1)的范围内变化。如果不与任何人通信时个人生产率为LLL,而且每条通信路径导致生产率减少1,则组员个人平均生产率为
Lr=L−1(P−1)rL_{r}=L-1(P-1)^{r}Lr=L−1(P−1)r
- 取中,r(0<r ≤\leq≤ 1)是对通信路径数的度量
C:总生产率
对于一个规模为PPP的项目组,项目组的生产率为
Ltot=P(L−1(P−1)r)L_{tot}=P(L-1(P-1)^{r})Ltot=P(L−1(P−1)r)
三:甘特图(Gantt)
甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。其通过条状图来显示项目、进度和其他时间相关的系统进展的内在关系随着时间进展的情况
(1)例子
假设有一座陈旧的矩形木板房需要重新油漆。这项工作必须分3步完成:首先刮掉旧漆,然后刷上新漆,最后清除溅在窗户上的油漆。假设一共分配了15 名工人去完成这项工作,然而工具却很有限:只有5把刮旧漆用的刮板,5把刷漆用的刷子,5把清除溅在窗户上的油漆用的小刮刀。怎样安排才能使工作进行得更有效呢?
每道工序需要的时间如下表所示
甘特图如下
- 在时间为零时开始刮第1面墙上的旧漆;
- 两小时后刮旧漆的工人转去刮第2面墙,同时另5名工人开始给第1面墙刷新漆;
- 当给一面墙刷完新漆之后,第3组的5名工人立即清除溅在这面墙窗户上的漆。
从上图可以看出,12小时后刮完所有旧漆,20小时后完成所有墙壁的刷漆工作,再过2小时后清理工作结束。因此全部工程在22小时后结束
(2)甘特图的优缺点
优点
- 很形象地描绘任务分解情况,以及每个子任务(作业)的开始时间和结束时间
- 容易掌握、绘制
缺点
- 不能显式地描绘各项作业彼此间的依赖关系
- 进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象
- 计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费
四:工程网络
(1)定义
工程网络可以描绘任务分解情况以及每项作业的开始时间和结束时间,它还显式地描绘各个作业彼此间的依赖关系
(2)表示
- 用箭头表示作业,作业通常既消耗资源又需要持续一定时间
- 用圆圈表示事件(开始或结束),事件是明确定义的时间点,并不消耗时间和资源
- 用虚线箭头表示虛拟作业,虚拟作业是为了显式地表示作业之间的依赖关系
五:估算工程进度
(1)完善工程网络
- 把每个作业估计需要使用的时间写在表示该项作业的箭头上方。
- 为每个事件计算最早时刻EET和最迟时刻LET,分别写在表示事件的圆圈的右上角和右下角
(2)最早时刻EET
事件的最早时刻是该事件可以发生的最早时间。通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计算
- 考虑进入该事件的所有作业
- 对于每个作业都计算它的持续时间与起始事件的EET之和
- 选取上述和数中的最大值作为该事件的最早时刻EET
(3)最迟时刻LET
事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。最后一个事件的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算
- 考虑离开该事件的所有作业
- 从每个作业的结束事件的最迟时刻中减去该作业的持续时间
- 选取上述差数中的最小值作为该事件的最迟时刻LET
六:关键路径
(1)定义
由最早时刻和最迟时刻相同的事件定义了关键路径。关键事件必须准时发生,组成关键作业的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束
(2)特点
- 处于关键路径之外的任务进度拖后,不会影响整个项目的完成时间
- 处于关键路径之中的任务进度拖后,则整个项目的完成日期就会拖后
七:机动时间
(1)定义
不在关键路径上的作业有一定程度的机动余地:实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预定的持续时间长一 些,而并不影响工程的结束时间
(2)计算
(3)表示
工程网络中每个作业的机动时间写在该项作业的箭头下面的括号里。在制定进度计划时仔细考虑和利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表
(软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划相关推荐
- (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算
文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...
- (软件工程复习核心重点)第五章详细设计-第五节:程序复杂度的定量度量
文章目录 一:价值(了解) 二:McCabe方法 (1)流图 A:定义 B:把程序流程图映射为流图 C:PDL翻译为流图 (2)环形复杂度 A:定义 B:计算方法 三:Halstead方法(了解) ( ...
- (软件工程复习核心重点)第四章总体设计-第四节:描绘软件结构的图形工具
文章目录 一:层次图和HIPO图 二:结构图 (1)定义 (2)符号 A:基本符号 B:特殊符号 一:层次图和HIPO图 层次图用于描绘软件的层次结构,其中一个矩形框代表一个模块,方框间的连线表示调用 ...
- (软件工程复习核心重点)第三章需求分析-第五节:验证软件需求
文章目录 一:验证需求正确性的四个方面 二:验证软件需求的方法 三:用于需求分析的软件工具 (1)要求(了解) (2)PSL/PSA系统 一:验证需求正确性的四个方面 一致性:所有需求必须是一致的,任 ...
- (软件工程复习核心重点)第三章需求分析-第四节:其他图形工具
文章目录 一:层次方框图 二:Warnier图 三:IPO图 一:层次方框图 用树形结构的一系列矩形框描绘数据的层次结构 优点:随着结构的逐步精细,对数据结构的描绘也越来越详细 二:Warnier图 ...
- (软件工程复习核心重点)第十二章软件项目管理习题
选择题 填空题 功能点技术信息域特性有 输入项数 输出项数 查询数 主文件数 外部接口数 一个任务集合包括 一组软件工程工作任务 里程碑 可交付的产品 COCOMO2的三层模型 应用系统组成模型 早期 ...
- (软件工程复习核心重点)第四章总体设计-第一节:总体设计基本概念和设计过程
文章目录 一:总体设计的概念 (1)定义 (2)主要任务 (3)步骤 (4)必要性(了解) 二:设计过程 (1)系统设计阶段 1:设想供选择的方案 2:选取合理的方案 3:推荐最佳方案 (2)结构设计 ...
- (软件工程复习核心重点)第十二章软件项目管理-第四节:软件配置管理和能力成熟度模型
文章目录 一:软件配置管理 (1)相关概念 A:软件配置管理定义 B:目的 C:与维护的区别 (2)软件配置 A:软件配置项 B:基线 C:软件工具 (3)软件配置管理过程 A :标识软件配置中的对象 ...
- (软件工程复习核心重点)第十二章软件项目管理-第三节:人员组织和质量保证
文章目录 一:人员组织 (1)必要性 (2)典型的组织方式 A:民主制程序员组 ①:定义 ②:要求 ③:优点 ④:缺点 B:主程序员组 ①:定义 ②:核心人员及其分工 ③:特点(优点) ④:缺点 ⑤: ...
最新文章
- django forms 错误处理
- python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
- dmp标签_京东dmp人群标签的使用,直接决定了你快车的盈利
- 排序算法(Java实现)
- STATISTICS TIME ON
- WebSocket入门
- skiplist原理与实现
- 辩论界人机大战:IBM 人工智能和人类辩手几乎平手
- 这个机器人不学数据集,“纯玩”get各类家务技能,LeCun觉得很赞
- Node.js入门(二)
- Ubuntu各个版本的介绍
- C语言实现24点小游戏,C语言解24点游戏程序
- 《计算机组成原理》(微课版) 第1章 计算机系统概述
- wget 下载文件出错
- Github Actions 云编译 OpenWRT LEDE 固件
- 山东大学计算机文化复习纲要
- Win10 + Ubuntu 双系统完美避坑删除 Ubuntu 教程
- windows10完全卸载windows自带的skype
- jupyter 下进行markdown
- Android N开发 你需要知道的一切
热门文章
- 我们前端忙成狗 人家后端写sql?
- 一个程序员的日常,简直太欢乐了!
- python文件按行读取变为嵌套列表_迭代两个嵌套的2D列表,其中list2具有list1的行号...
- 第二期临床基因组家系数据分析实战,快速发表SCI文章
- 衡量人体健康的“十大新标杆”
- 使用ssh公钥实现ssh免密码登录
- 省选+NOI 第三部分 树上问题
- P3156 【深基15.例1】询问学号(20分)--python3实现
- 1.4编程基础之逻辑表达式与条件分支 01判断数正负
- 小程序保存base64类型图片和普通图片实例