|
|
|
进度的合理安排是如期完成软件项目的重要保证,也是合理分配资源的重要依据,因此进度安排是管理工作的一个重要组成部分。软件开发项目的进度安排有如下两种方式:
|
|
|
|
(1)系统最终交付日期已经确定,软件开发部门必须在规定期限内完成。
|
|
|
|
(2)系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定。
|
|
|
|
进度安排的常用图形描述方法有Gantt图(甘特图)和项目计划评审技术(Program Evaluation&Review Technique,PERT)图。
|
|
|
|
|
|
Gantt图是一种简单的水平条形图,它以日历为基准描述项目任务。水平轴表示日历时间线(如时、天、周、月和年等),每个条形表示一个任务,任务名称垂直地列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。下图所示的Gantt图描述了三个任务的进度安排。任务1首先开始,完成它需要6个月时间;任务2在1个月后开始,完成它需要9个月时间;任务3在6个月后开始,完成它需要5个月时间。
|
|
|
|
Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但是其缺点是不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
|
|
|
|
|
|
|
|
|
|
PERT图是一个有向图,图中的箭头表示任务,它可以标上完成该任务所需的时间;图中的节点表示流入节点的任务的结束,并开始流出节点的任务,这里把节点称为事件。只有当流入该节点的所有任务都结束时,节点所表示的事件才出现,流出节点的任务才可以开始。事件本身不消耗时间和资源,它仅表示某个时间点。一个事件有一个事件号和出现该事件的最早时刻和最迟时刻。最早时刻表示在此时刻之前从该事件出发的任务不可能开始;最迟时刻表示从该事件出发的任务必须在此时刻之前开始,否则整个工程就不能如期完成。每个任务还可以有一个松弛时间(slack time),表示在不影响整个工期的前提下,完成该任务有多少机动余地。为了表示任务间的关系,图中还可以加入一些空任务(用虚线箭头表示),完成空任务的时间为0。下图是PERT图的一个实例。不难看出,下图中的松弛时间为0的这些任务是完成整个工程的关键路径,其事件流为1→2→3→4→6→8→10→11。
|
|
|
|
|
|
|
|
PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工程的关键路径。图中的松弛时间则反映了完成某些任务时可以推迟其开始时间或延长其完成所需的时间。但是,PERT图不能反映任务之间的并行关系。
|
|
|