第9章软件项目的时间管理第2页软件项目时间管理概述1进度计划图2项目进度估算3编制项目进度计划4软件项目计划的编写5第3页掌握工程进度/工期等概念熟悉项目时间管理的内容掌握进度计划的编制方法与技术掌握网络计划技术熟悉软件项目计划的编写本章学习目标第4页9.1软件项目时间管理概述一.基本概念时间是一种特殊的资源,以其单向性、不可重复性、不可替代性而有别于其他资源。项目时间管理又称为进度管理,是指为保证项目各项工作及项目总任务按时完成所需要的一系列的工作与过程。第5页1.项目活动:是指为完成工程项目而必须进行的具体的工作。项目活动是编制进度计划、分析进度状况和控制进度的基本工作包。2.工程进度:进度是指活动或工作进行的速度,工程进度是对执行的活动和里程碑制定的工作计划日期表,它也是跟踪项目进展状态的依据。第6页3.工期开发工期是指工程项目从正式开工到全部建成投产或交付使用所经历的时间。合同工期是指完成合同范围工程项目所经历的时间,它从接到开工通知的日期算起,直到完成合同规定的工程项目的时间。确定工期有两个前提:一是确定交付日期,然后安排计划;二是确定使用资源,然后安排计划。第7页4.活动之间的顺序关系或ABABABAB结束-开始结束-结束开始-开始开始-结束第8页5.活动之间依赖关系(1)强制性依赖关系:是工作任务中固有的依赖关系,是一种不可违背的逻辑关系。(2)软逻辑关系。软逻辑关系是由项目管理人员确定的项目活动之间的关系,是人为的、主观的,是一种根据主观意志去调整和确定的项目活动的关系,也可称为指定性相关或偏好相关。(3)外部依赖关系:是项目活动与非项目活动之间的依赖关系。第9页二、项目时间管理的内容项目时间管理就是采用科学的方法确定目标进度,编制进度计划和资源供应计划,进行进度控制,在与质量、费用目标协调的基础上,实现项目工期目标。包括分析确定为达到项目目标所必须进行的各种作业活动;项目活动内容的安排;估算工期,对工作顺序、活动工期和所需资源进行分析并制定项目进度计划;对项目进度的管理与控制等。这些项目时间管理的过程与活动既相互影响,又相互关联。第10页1.项目活动定义将项目工作分解为更小、更易管理的工作包(活动或任务),这些小的活动应该是能够保障完成交付产品的可实施的详细任务。项目活动定义是一个过程,它涉及确认和描述一些特定的活动。完成这些活动就意味着完成了WBS结构中的项目细目,通过活动定义这一过程可使项目目标体现出来。2.活动排序是通过识别项目活动清单中各项活动的相互关联与依赖关系,并据此对项目各项活动的先后顺序进行合理安排与确定的项目时间管理工作。在产品描述、活动清单的基础上,要找出项目活动之间的依赖关系和特殊领域的依赖关系、工作顺序。3.活动工期估算是根据项目范围、资源状况计划列出项目活动所需要的工期。估算的工期应该现实、有效并能保证质量。第11页4.安排进度表项目的进度计划意味着明确定义项目活动的开始和结束日期,这是一个反复确认的过程。进度表的确定应根据项目网络图、估算的活动日期、资源需求、资源共享情况、项目执行的工作日历、进度限制、最早和最晚时间、风险管理计划、活动特征等统一考虑。进度限制有两种形式:一种是加强日期形式:以活动之间前后关系限制活动的进度,例如,一项活动不早于某项活动的开始或不晚于某项活动的结束;另一种是关键事件或主要里程碑形式,以定义为里程碑的事件作为要求的时间进度的决定性因素,制定相应时间计划。第12页5.进度控制与进度管理进度控制主要是监督进度的执行情况,及时发现和纠正偏差、错误。在控制中要考虑影响项目进度变化的因素、项目进度变更对其他部分的影响因素、进度变更时应采取的实际措施。进度管理是指编制工程项目进度计划、实施计划、检查实施效果、进度协调和采取措施等的总称。第13页三、项目时间管理的特点软件项目具有规模大、建设的一次性和结构与技术复杂等特点,无论是进度编制,还是进度控制,均有它的特殊性,主要表现在以下几方面:(1)进度管理是一动态过程。在进度控制中要根据进度目标和实际进度,不断调整进度计划,并采取一些必要的控制措施,排除影响进度的障碍,确保进度目标的实现。(2)项目进度计划和控制是一复杂的系统工程。进度计划按工程单位可分为整个项目总进度计划、单位工程进度计划、分部分项工程进度计划等;按生产要素可分为投资计划、设备供应计划等。因此进度计划十分复杂,而进度控制更加复杂,需管理整个计划系统,而绝不仅限于控制项目实施过程中的实施计划。第14页(3)时间管理有明显的阶段性。由于阶段工作内容不一,因而相应有不同的控制标准和协调内容。每一阶段完成后都要对照计划作出评价,并根据评价结果作出下一阶段的工作进度安排。(4)时间管理风险性大。由于进度管理是一个不可逆转的工作,因而风险较大。在管理中既要沿用前人的管理理论知识,又要借鉴同类工程进度管理的经验和成果,还要根据本工程特点对进度进行创造性的科学管理。第15页9.2进度计划图一.甘特图是表示项目各阶段任务开始时间与结束时间的图形,它把计划和进度安排组织在一起。用水平线段表示阶段任务;线段的起点和终点分别为对应于任务的开始时间和结束时间;线段的长度表示完成任务所需要的时间。第16页优点:表明了各任务的计划进度和当前进度,能动态地反映软件项目的开发和进展的情况。缺点:不能反映某一项任务的进度变化对整体项目的影响,它把各项任务看成独立的工作,没有考虑项目之间存在着复杂的逻辑的关系。第17页二、网络图网络图是活动排序的一个输出,它可展示项目中的各个活动之间的逻辑关系,表明项目任务将如何以什么顺序进行。1.单代号网络图也称为节点法。构成单代号网络图的基本特点是用节点表示活动(任务),箭线表示各活动(任务)之间的逻辑关系。单代号工作位于节点上,也就是说每一个节点表示一个工作,用箭头表示工作的先后顺序和相互关系。第18页2.双代号网络图也称为箭线法。在双代号网络图中,活动用箭头表示,对活动的描写在箭线上。节点表示事件。由于可以使用前后两个事件的编号来表示这项活动的名称,故称双号网络图。一个节点事件表示前一道工序的结束,同时也表示后一道工序的开始。第19页虚活动是为了表明相互依存的逻辑关系,消除活动与活动之间含混不清的现象而设置的,它既不消耗资源,也不占用时间。用一个虚箭头表示。在绘制用箭头表示活动的网络图中,有两个基本规则可以用来识别活动:第一,每个节点有唯一的编号,即图中不会有相同的节点号;第二,每个活动必须由唯一的紧前事件号组成。第20页3.绘制网络图1)项目分解明确项目工作的名称、范围和内容等。2)工作关系分析在深入了解项目、对项目资源和空间有充分考虑的基础上,通过比较、优化等方法进行工作关系分析,以确定工作之间合理、科学的逻辑关系,明确工作的紧前和紧后的关系,并形成项目工作列表。3)编制网络图根据活动一览表和网络原理可以绘制网络图。第21页活动紧前活动工期估计:天1需求分析计划—32流程优化173编写需求规格词汇表224绘制业务流程225抽象业务类426建立数据模型527将分析图示加入规格说明文档3,618需求规格测试739需求规格确认83例:第22页编制网络图9.2进度计划图第23页编制网络图时要注意以下几个问题:一个网络图只有一个开始点和一个结束点。如果几项活动同时开始或者同时结束,在双号网络图中可以将这几项活动的开始节点合并为一个节点;而在单号网络图中可以设置一个虚拟开始(或者结束)活动,作为该网络图的开始节点(或者结束节点)。网络图是有方向的,不应该出现循环回路。一对节点不能同时出现两项活动。如果有这种情况,必须引入虚活动。网络图中不能出现无箭头箭线和双箭头箭线。网络图中不能出现无节点的箭线。在同一个网络图中的所有节点,不能出现相同的编号。第24页9.3项目进度估算一、基于规模的进度估算1.定额估算法:比较基本的估算项目历时的方法,公式为:T=Q/(R×S)其中:T:活动的持续时间,可以用小时、日、周等表示。Q:活动的工作量,可以用人月、人天等单位表示。R:人力或设备的数量,可以用人或设备数等表示。S:开发(生产)效率,以单位时间完成的工作量表示。此方法适合规模比较小的项目。第25页例如,小于10000LOC(代码行)或者小于6个人月的项目。假设一个软件项目的规模估算是Q=6人月,如果有5个开发人员,即R=5人,而每个开发人员的开发效率是S=1.2,则时间进度估算结果是T=6/(5×1.2)=1月,即这个项目需要1个月完成。第26页2.经验导出模型根据大量的软件项目的实际数据统计而得出的模型。经验导出模型有几种具体公式,根据项目的规模和特点参数略有差别。例如:1)Walston-Felix模型为D=2.4×E0.352)基本COCOMO模型为D=a×Eb,其中b是0.32~0.38之间的参数。E表示人月工作量。可以根据项目的具体情况选择合适的参数。例如,一个项目的规模估计是E=65人月,如果模型中的参数a=3,b=1/3,则D=3×651/3=12月,即65人月的软件规模,估计需要12个月完成。第27页二、网络计划技术工程评价技术(PERT)和关键路径法(CPM),其基本原理一致,即用网络图来表达项目中各项活动的进度和它们之间的相互关系,并在此基础上,进行网络分析,计算网络中各项时间参数,确定关键活动与关键路线,利用时差不断地调整与优化网络,以求得最短周期。因这两种方法都是通过网络图和相应的计算来反映整个项目的全貌,所以又叫做网络计划技术。第28页1.活动时间估计可根据乐观工期(t0),最可能工期(tm),悲观工期(tp),计算出期望工期t。t=(t0+4tm+tp)/6在用节点表示活动的网络图中,活动的工期估计,一般在节点图框的右下角表示出来。在用箭头表示的活动图中,活动的工期估计标在箭线的下方。第29页9.3项目进度估算活动紧前活动乐观时间最可能时间悲观时间工期估计1需求分析计划—23432流程优化1471073编写需求规格词汇表222224绘制业务流程212325抽象业务类412326建立数据模型522227将图加入规格说明3,611118需求规格测试722839需求规格确认82343第30页9.3项目进度估算活动期望时间T方差标准差1需求分析计划30.1090.332流程优化7113编写需求规格词汇表2004绘制业务流程20.1090.335抽象业务类20.1090.336建立数据模型2007将图加入规格说明1008需求规格测试3119需求规格确认30.1090.33项目2.443.32第31页2.关键路径关键路径法是一种运用特定的、有顺序的网络逻辑和估算出的项目活动工期,确定项目每项活动的最早与最晚开始和结束时间,并做出项目工期网络计划的方法。关键路径法关注的核心是项目活动网络中关键路径的确定和关键路径总工期的计算,其目的是使项目工期能够达到最短。1—2—3—7—8—9,总共需要时间为3+7+2+1+3+3=161—2—4—5—6—7—8—9,总共需要时间为3+7+2+2+2+1+3+3=23天。第32页这些路径中,1—2—4—5—6—7—8—9是最长的,需要花费时间23天,这意味着23周是整个网络能够完工的关键时间,1—2—4—5—6—7—8—9就是关键路径9.3项目进度估算第33页3.分析关键路径的方法(1)事件的时间如果某一事件为某一活动或若干活动的箭尾事件时,事件最早时间为各活动最早可能开始的时间。TE(j)TE(1)=0TE(j)=MAX{TE(i)+T(i,j)}(j=2,…,n)式中:TE(j)箭头事件的最早时间;TE(i)箭尾事件的最早时间;T(i,j)作业时间。第34页如果某一事件为某一活动或者若干活动的箭头事件时,事件最早时间为各活动的最早可能结束时间。TL(n)=TE(n)(n是结束事件)TL(i)=MIN{TL(j)-T(i,j)}(i=n-1,…,1)式中:TL(j)箭头事件的最迟时间;TL(i)箭尾事件的最迟时间;T(i,j)为相应活动的作业时间。第35页(2)活动的时