《软件项目开发计划.ppt》由会员分享,可在线阅读,更多相关《软件项目开发计划.ppt(126页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 6 章章 软件项目开发计划软件项目开发计划 2THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章教学目标本章教学目标:1.编写项目计划书编写项目计划书2.project2007 编制项目计划编制项目计划验收方式验收方式练习方式练习方式:1.个人行为个人行为考核方式考核方式:2.小组行为小组行为3THE SCHOOL OF SOFTWARE ENGINEERING OF HUST前言前言:制定与定义制定与定义WBS属于范围规划的任务,确定项属于范围规划的任务,确定项目范围,是项目执行的重要依据目范围,是项目执行的重要依据,是是范围定义范围定义过程的输出
2、过程的输出.4THE SCHOOL OF SOFTWARE ENGINEERING OF HUST6.1 软件项目分解软件项目分解项项目目分分解解目目的的 明明确确项项目目所所包包含含的的各各项项工工作作;项项目目分分解解的的结结果果就就是是WBS(任务分解结构)图(任务分解结构)图项项目目分分解解意意义义 WBS(任任务务分分解解结结构构)图图是是实实施施项项目目、创创造造最最终终产产品品或或服服务务所所必必须须进进行行的的全全部部活活动动的的一一张张清清单单,也也是是进进度度计计划划、人人员员分分配配、预预算算计划的基础计划的基础项项目目分分解解内内容容 项项目目分分解解就就是是先先把把复
3、复杂杂的的项项目目逐逐步步分分解解成成一一层层一一层层的的要要素(工作),直到具体明确为止素(工作),直到具体明确为止项项目目分分解解工工具具 项项目目分分解解的的工工具具是是工工作作分分解解结结构构原原理理,它它是是一一个个分级的树型结构,是一个对项目工作由粗到细的分解过程分级的树型结构,是一个对项目工作由粗到细的分解过程5THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS Work Breakdown Structure主要是将一个项目分解成易于管主要是将一个项目分解成易于管理的几个部分或几个细目,以便确保找出完成项目工作范围
4、所需的所有工理的几个部分或几个细目,以便确保找出完成项目工作范围所需的所有工作要素它是一种在项目全范围内分解和定义各层次工作包的方法作要素它是一种在项目全范围内分解和定义各层次工作包的方法WBS Work Breakdown Structure结构层次越往下层则项目组成部结构层次越往下层则项目组成部分的定义越详细,分的定义越详细,WBS最后构成一份层次清晰,可以具体作为组织项目实最后构成一份层次清晰,可以具体作为组织项目实施的工作依据施的工作依据WBS Work Breakdown Structure通常是通常是一种面向一种面向“成果成果”的的“树树”,其最底层是细化后的,其最底层是细化后的“
5、可交付成果可交付成果”,该树组织确定了项目的整个范围。,该树组织确定了项目的整个范围。但但WBS的形式并不限于的形式并不限于“树树”状,还有多种形式。状,还有多种形式。6THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS分解类型分解类型基于可交付成果的划分基于可交付成果的划分上层一般为可交付成果为导向上层一般为可交付成果为导向下层一般为可交付成果的工作内容下层一般为可交付成果的工作内容基于工作过程的划分基于工作过程的划分上层按照工作的流程分解上层按照工作的流程分解下层按照工作的内容划分下层按照工作的内容划分7THE SCHOOL
6、OF SOFTWARE ENGINEERING OF HUST WBS制作的方法制作的方法使用指导方针使用指导方针:根据颁布的编制根据颁布的编制WBS的指导方针的指导方针/样样本本/模板,制定模板,制定WBS。类比法类比法:借助类似产品的借助类似产品的WBS,用它作为起点,制,用它作为起点,制定新项目的定新项目的WBS。由上至下法由上至下法:从项目最大的单位开始,逐步将它们分从项目最大的单位开始,逐步将它们分解成下一级的多个子项。解成下一级的多个子项。由下至上法由下至上法:让项目组人员一开始就尽可能地确定项让项目组人员一开始就尽可能地确定项目有关的各项具体任务,然后再将各项具体任务进行目有关的
7、各项具体任务,然后再将各项具体任务进行整合,并归总到整合,并归总到WBS的上一级内容当中。的上一级内容当中。8THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解基于可交付成果的划分基于可交付成果的划分WBS举例举例:信息网络工程信息网络工程信息网络工程信息网络工程结构化布线结构化布线网络平台建设网络平台建设布线设计布线设计采购采购布线布线验收验收方案设计方案设计采购采购网络平台实施网络平台实施验收验收0 0 0 0级级级级1 1 1 1级级级级2 2 2 2级级级级9THE SCHOOL OF SOFTWARE ENGINEERING
8、OF HUST软件项目分解软件项目分解基于工作过程的划分基于工作过程的划分WBS举例举例:网络系统工程网络系统工程网络系统网络系统培训培训设备准备设备准备设设备备采采购购设设备备验验收收交交接接网络系统设计网络系统设计布布线线设设计计平平台台设设计计工程实施工程实施布布线线实实施施网网络络集集成成软件开发软件开发软软件件需需求求确确定定系系统统设设计计编编码码测测试试0 0级级级级1 1级级级级2 2级级级级10THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS表达形式表达形式层次结构图和锯齿列表(清单)层次结构图和锯齿列表(清单
9、)图形显示图形显示 锯齿列表锯齿列表 10系统系统11元素元素A1.1.1任务任务1.1.2任务任务12元素元素B1.0系统系统11元元素素A12元素元素B1.1.1任任务务1.1.2任任务务11THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS工作编码工作编码 由高层向下层用多位码编排,要求每项工作有唯一的编码。由高层向下层用多位码编排,要求每项工作有唯一的编码。1000110011101111111211131120112111221123120012THE SCHOOL OF SOFTWARE ENGINEERING OF
10、HUST软件项目分解软件项目分解WBS工作编码举例工作编码举例:企业经营评价系统项目企业经营评价系统项目网络网络1430软件软件1410硬件硬件1420系统开系统开发发1400测试测试1500实施实施1600系统设系统设计计1300问题界问题界定定1100企业经营评价系统项目企业经营评价系统项目1000系统分系统分析析1200文档文档1440包装软包装软件件1411培训培训1610验收验收1630系统转系统转换换1620定制软定制软件件14120 0级级级级1 1级级级级2 2级级级级3 3级级级级13THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目
11、分解软件项目分解项目工作分解结构表项目工作分解结构表项目名称:项目名称:项目负责人:项目负责人:单位名称:单位名称:制表日期:制表日期:工作分解结构工作分解结构任务编码任务编码任务名称任务名称主要活动描述主要活动描述负责人负责人1000110012001x001x101x111x12项目负责人审核意见:项目负责人审核意见:签名:签名:日期:日期:14THE SCHOOL OF SOFTWARE ENGINEERING OF HUST15THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS分解的一般步骤分解的一般步骤总项目总项目子项目
12、或主体工作任务子项目或主体工作任务主要工作任务主要工作任务次要工作任务次要工作任务小工作任务或工作元素小工作任务或工作元素16THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解WBS分解注意事项分解注意事项WBS分解的规模和数量因项目而异分解的规模和数量因项目而异收集与项目相关的所有信息收集与项目相关的所有信息参看一下类似的项目的参看一下类似的项目的WBS,与相关人员讨论与相关人员讨论可以参照相关可以参照相关模板模板最低层是可控的和可管理的,但是避免不必要的过细,最好不要超最低层是可控的和可管理的,但是避免不必要的过细,最好不要超过过7
13、 7层,层,软件项目推荐分解到软件项目推荐分解到40小时的任务小时的任务每个每个Work package必须有一个提交物必须有一个提交物17THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解定义任务完成的标准定义任务完成的标准每个每个WBS必须有利于责任分配必须有利于责任分配可以准备可以准备WBS的字典的字典最后与相关人员进行评审最后与相关人员进行评审18THE SCHOOL OF SOFTWARE ENGINEERING OF HUST案例一案例一:校园图书管理信息系统的校园图书管理信息系统的WBS各小组代表上台各小组代表上台老师点评
14、老师点评软件项目分解软件项目分解19THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分解软件项目分解 生活案例讨论生活案例讨论假如您要在自己的家里举行一次生日宴会,请按假如您要在自己的家里举行一次生日宴会,请按WBS为你制定一份工为你制定一份工作的分解计划?作的分解计划?代表发言代表发言假如贵公司进行成立假如贵公司进行成立10周年庆典活动,如果请你负责此次活动,你将周年庆典活动,如果请你负责此次活动,你将如何分析此次活动所应包含的工作?如何分析此次活动所应包含的工作?代表发言代表发言20THE SCHOOL OF SOFTWARE ENGINEERI
15、NG OF HUST 6.2 软件项目估算概念软件项目估算概念软件项目估算软件项目估算 是指预测构造软件项目所需要的工作量以及是指预测构造软件项目所需要的工作量以及任务经历时间的过程。主要包括三个方面:任务经历时间的过程。主要包括三个方面:规模(即工作量)的估算规模(即工作量)的估算 确定每个软件功能所必须执行的一系列确定每个软件功能所必须执行的一系列软件工程任务软件工程任务 进度的估算进度的估算 估计任务的持续时间,即历时估计估计任务的持续时间,即历时估计 成本的估算成本的估算 确定完成软件项目规模相应付出的代价确定完成软件项目规模相应付出的代价 21THE SCHOOL OF SOFTWA
16、RE ENGINEERING OF HUST软件项目估算概念软件项目估算概念估算方法估算方法规模估算方法规模估算方法 代码行(代码行(LOC,Lines of Code)估算法、功能点()估算法、功能点(FP,Function Points)估算法和计划评审技术()估算法和计划评审技术(PERT,Program Evaluation and Review Technique)估算法)估算法进度估算方法进度估算方法 基于规模的进度估算、工程评价技术、关键路径法、专基于规模的进度估算、工程评价技术、关键路径法、专家估算方法、类推估算方法、模拟估算方法、进度表估算方法、基于承家估算方法、类推估算方法
17、、模拟估算方法、进度表估算方法、基于承诺的进度估算方法和诺的进度估算方法和Jones的一阶估算准则等的一阶估算准则等 成本估算方法成本估算方法 自顶向下(类比)估算法、自下而上估算法、参数估算自顶向下(类比)估算法、自下而上估算法、参数估算法、专家估算法、猜测估算法等法、专家估算法、猜测估算法等 22THE SCHOOL OF SOFTWARE ENGINEERING OF HUST6.3 软件项目规模估算软件项目规模估算估算的步骤估算的步骤 在技术允许的条件下,应从最详细的工作分解结构开始在技术允许的条件下,应从最详细的工作分解结构开始精确定义度量的标准精确定义度量的标准估计底层每一模块的规
18、模,汇总已得到总体的估算估计底层每一模块的规模,汇总已得到总体的估算适当考虑偶然因素的影响适当考虑偶然因素的影响 23THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件规模估算的假设和思路:软件规模估算的假设和思路:软件的规模和其外延成正比软件的规模和其外延成正比 外延包括外延包括:功能功能,数据数据,用户操作界面数用户操作界面数,显示界面显示界面数等等数等等 不同的功能点实现的困难度不同不同的功能点实现的困难度不同,但从整个项目来说但从整个项目来说,平均的困难度差不多平均的困难度差不多 规模估算的目标:是决定工作量的大小。对于成本模规模估算的目标:是决定
19、工作量的大小。对于成本模型,规模是计算软件项目的工作量、成本和进度的主型,规模是计算软件项目的工作量、成本和进度的主要输入要输入 规模估算的责任者:程序员、软件工程师、系统分析规模估算的责任者:程序员、软件工程师、系统分析员负责决定软件项目的规模员负责决定软件项目的规模24THE SCHOOL OF SOFTWARE ENGINEERING OF HUST规模估算的入口准则规模估算的入口准则:在规模估算之前,软件功能需在规模估算之前,软件功能需求必须被定义。在项目早期定义需求可能是非常困难求必须被定义。在项目早期定义需求可能是非常困难任务。然而,在对需求一无所知的情况下,精确的估任务。然而,在
20、对需求一无所知的情况下,精确的估算出项目的成本和进度是不可能的。如果知道部分需算出项目的成本和进度是不可能的。如果知道部分需求,那么估算基于已知的需求并且相信每一个人都相求,那么估算基于已知的需求并且相信每一个人都相信估算仅仅是基于那些已知的需求,如果使用了增量信估算仅仅是基于那些已知的需求,如果使用了增量或演进的开发策略,那么估算基于增加的已定义需求。或演进的开发策略,那么估算基于增加的已定义需求。25THE SCHOOL OF SOFTWARE ENGINEERING OF HUST规模估算输入规模估算输入:软件需求说明书(软件需求说明书(SRS)历史规模数据历史规模数据 *软件产品规模估
21、算应该主要基于历史数据和经验。软件产品规模估算应该主要基于历史数据和经验。历史规模数据可以从组织软件过程数据库中找到。而历史规模数据可以从组织软件过程数据库中找到。而且,两个或更多的具有类似经验的软件工程师应该开且,两个或更多的具有类似经验的软件工程师应该开展自顶向下展自顶向下/自底向上规模估算,步骤如下:自底向上规模估算,步骤如下:26THE SCHOOL OF SOFTWARE ENGINEERING OF HUST基于定义每个计算机软件模块的需求开发系统的高级架构图基于定义每个计算机软件模块的需求开发系统的高级架构图基于每个计算机软件模块开发功能基于每个计算机软件模块开发功能WBS 根据
22、相似项目经验和历史数据,为每一个软件模块手工估算出最底层(自根据相似项目经验和历史数据,为每一个软件模块手工估算出最底层(自底向上)可能详细的代码行或功能点,规模估算工具可以作为第二个输入底向上)可能详细的代码行或功能点,规模估算工具可以作为第二个输入估算出期望的规模加上标准偏差,即:规模的最低值和最高值来反映名义估算出期望的规模加上标准偏差,即:规模的最低值和最高值来反映名义值的不确定性。在项目的早期阶段,最低和最高估算结果之间的范围可能值的不确定性。在项目的早期阶段,最低和最高估算结果之间的范围可能是是30-50%,例如:概念阶段。如果缺乏经验或有较高的技术风险,范围将,例如:概念阶段。如
23、果缺乏经验或有较高的技术风险,范围将会更大会更大具有类似经验的软件工程师应该评审并优化估算结果直至达成一致意见。具有类似经验的软件工程师应该评审并优化估算结果直至达成一致意见。经验表明,规模估算经常偏低,故最低规模估算结果应该给与特别审查经验表明,规模估算经常偏低,故最低规模估算结果应该给与特别审查27THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目规模估算软件项目规模估算LOC估算法估算法 代码行可以分为无注释的源代码行(代码行可以分为无注释的源代码行(NCLOC,Non-Commented Source Lines Of Code)和注释的源代码
24、行)和注释的源代码行(CLOC:Commented Source Lines Of Code),源代码的总行),源代码的总行数数LOC即为即为NCLOC与与CLOC之和之和FP估算法估算法 功能点度量是在需求分析阶段基于系统功能的一种规模功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过研究初始应用需求来确定各种输入、输出、估计方法,该方法通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量查询、外部文件和内部文件的数目,从而确定功能点数量28THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目规
25、模估算软件项目规模估算规模的单位规模的单位LOC(Lines of Code)源代码程序长度的测量源代码程序长度的测量FP(Function Point)用系统的功能数量来测量用系统的功能数量来测量人月人月人天人天人年人年29THE SCHOOL OF SOFTWARE ENGINEERING OF HUST 功能点功能点FPs估算估算(特别适合(特别适合MIS系统)系统)面向功能的软件度量是对软件和软件开发过程的间接面向功能的软件度量是对软件和软件开发过程的间接度量。面向功能度量的关注点在于程序的度量。面向功能度量的关注点在于程序的“功能性功能性”和和“实用性实用性”,而不是对,而不是对LO
26、C计数。一种典型的生产计数。一种典型的生产率度量法叫做功能点度量,该方法利用软件信息域中率度量法叫做功能点度量,该方法利用软件信息域中的一些计数度量和软件复杂性估计的经验关系式而导的一些计数度量和软件复杂性估计的经验关系式而导出功能点出功能点FPs(Function Points)。)。30THE SCHOOL OF SOFTWARE ENGINEERING OF HUST功能点估算信息域特征的确定:功能点估算信息域特征的确定:面向功能的软件度量是对软件和软件开发过程的间接面向功能的软件度量是对软件和软件开发过程的间接度量。面向功能度量的关注点在于程序的度量。面向功能度量的关注点在于程序的“功
27、能性功能性”和和“实用性实用性”,而不是对,而不是对LOC计数。一种典型的生产计数。一种典型的生产率度量法叫做功能点度量,该方法利用软件信息域中率度量法叫做功能点度量,该方法利用软件信息域中的一些计数度量和软件复杂性估计的经验关系式而导的一些计数度量和软件复杂性估计的经验关系式而导出功能点出功能点FPs(Function Points)。)。功能点通过填写表功能点通过填写表1所示的表格来计算。首先确定五所示的表格来计算。首先确定五个信息域的特征,并在表格中相应位置给出计数。信个信息域的特征,并在表格中相应位置给出计数。信息域的值以如下方式定义:息域的值以如下方式定义:用户输入数:各个用户输入是
28、面向不同应用的输入用户输入数:各个用户输入是面向不同应用的输入数据,对它们都要进行计数。输入数据应有别于查询数据,对它们都要进行计数。输入数据应有别于查询数据,它们应分别计数。数据,它们应分别计数。31THE SCHOOL OF SOFTWARE ENGINEERING OF HUST用户输出数:各个用户输出是为用户提供的面向应用的输出信用户输出数:各个用户输出是为用户提供的面向应用的输出信息,它们均应计数。这里的输出是指报告,屏幕信息,错误信息,它们均应计数。这里的输出是指报告,屏幕信息,错误信息等,在报告中的各数据项不应再分别计数。息等,在报告中的各数据项不应再分别计数。用户查询数:查询是
29、一种联机输入,它导致软件以联机输出的用户查询数:查询是一种联机输入,它导致软件以联机输出的方式生成某种即时的响应。每一个不同的查询都要计数。方式生成某种即时的响应。每一个不同的查询都要计数。文件数:每一个逻辑主文件都应计数。这里的逻辑主文件,是文件数:每一个逻辑主文件都应计数。这里的逻辑主文件,是指逻辑上的一组数据,它们可以是一个大的数据库的一部分,指逻辑上的一组数据,它们可以是一个大的数据库的一部分,也可以是一个单独的文件也可以是一个单独的文件外部接口数:对所有被用来将信息传送到另一个系统中的机器外部接口数:对所有被用来将信息传送到另一个系统中的机器可读写的接口可读写的接口(即磁带或磁盘上的
30、数据文件即磁带或磁盘上的数据文件)均应计数。均应计数。32THE SCHOOL OF SOFTWARE ENGINEERING OF HUST预测性对象点预测性对象点(Predictive Object Points)估算:估算:预测性对象点是特意为面向对象软件设计的,是通过预测性对象点是特意为面向对象软件设计的,是通过系统计算面向对象的特征进行度量。系统计算面向对象的特征进行度量。POPs方法的核心是每类加权方法数(方法的核心是每类加权方法数(Weighted Methods per Class WMC)。这种方法测量每个顶)。这种方法测量每个顶层类(或者说,每个在用户的视野中清楚的对象)并
31、层类(或者说,每个在用户的视野中清楚的对象)并且根据类的行为(方法)类型不同进行加权。一旦得且根据类的行为(方法)类型不同进行加权。一旦得到到WMC的值,的值,POPs方法将把它和有关按类分对象组方法将把它和有关按类分对象组的信息和对象类之间的关系进行联合计算。的信息和对象类之间的关系进行联合计算。(自己去查)(自己去查)33THE SCHOOL OF SOFTWARE ENGINEERING OF HUST6.5 软件项目进度估算软件项目进度估算1估算的准备知识估算的准备知识2 软件项目分阶段交付软件项目分阶段交付3 进度安排的整体过程进度安排的整体过程4 进度中的并行性进度中的并行性5 活
32、动清单活动清单6 软件项目的网络图软件项目的网络图7 进度安排的方法进度安排的方法8 9 34THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目分阶段交付软件项目分阶段交付35THE SCHOOL OF SOFTWARE ENGINEERING OF HUST进度安排的整体过程进度安排的整体过程 软件项目工作量经验数据软件项目工作量经验数据36THE SCHOOL OF SOFTWARE ENGINEERING OF HUST进度中的并行性进度中的并行性 软件过程中可执行的并行过程软件过程中可执行的并行过程37THE SCHOOL OF SOFTWAR
33、E ENGINEERING OF HUST 活动清单活动清单38THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目的网络图软件项目的网络图软件项目的网络图 39THE SCHOOL OF SOFTWARE ENGINEERING OF HUST进度安排的方法进度安排的方法 甘特图40THE SCHOOL OF SOFTWARE ENGINEERING OF HUST2.项目进度管理的过程项目进度管理的过程41THE SCHOOL OF SOFTWARE ENGINEERING OF HUST6.6 软件项目进度计划软件项目进度计划 进度计划定义进度计划
34、定义 进度是对执行的活动和里程碑制定的工作计划日期表。它决定是进度是对执行的活动和里程碑制定的工作计划日期表。它决定是否达到预期目的,它是跟踪和沟通项目进展状态的依据,也是跟踪变更否达到预期目的,它是跟踪和沟通项目进展状态的依据,也是跟踪变更对项目影响的依据。对项目影响的依据。软件活动定义是一个过程,它涉及确认和描述一些特定的活动软件活动定义是一个过程,它涉及确认和描述一些特定的活动 为了进一步制定切实可行的进度计划,必须对活动(任务)进行适当的为了进一步制定切实可行的进度计划,必须对活动(任务)进行适当的顺序安排顺序安排 按时完成项目是项目经理最大的挑战之一;时间是项目规划中灵活性最按时完成
35、项目是项目经理最大的挑战之一;时间是项目规划中灵活性最小的因素小的因素进度问题是项目冲突的主要原因,尤其在项目的后期进度问题是项目冲突的主要原因,尤其在项目的后期42THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划项目进度(时间)管理过程项目进度(时间)管理过程活动定义活动定义(Activity definition)活动排序活动排序(Activity sequencing)活动历时估计活动历时估计(Activity duration estimating)制定进度计划制定进度计划(Schedule development)进
36、度控制进度控制(Schedule control)-项目跟踪项目跟踪43THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划活动定义活动定义(Activity definition)确定为完成项目的各个交付成果所必须进行的诸项具体活动确定为完成项目的各个交付成果所必须进行的诸项具体活动完成完成WBS中的细目和子细目中的细目和子细目活动排序活动排序(Activity sequencing)对活动进行适当的顺序安排对活动进行适当的顺序安排.项目各项活动之间存在相互联系与相互依赖关系项目各项活动之间存在相互联系与相互依赖关系根据这些关系
37、安排各项活动的先后顺序根据这些关系安排各项活动的先后顺序44THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划任务任务(活动活动)之间的关系之间的关系进度管理图示进度管理图示网络图、甘特图、里程碑图、资源图网络图、甘特图、里程碑图、资源图开始开始-结束结束ABAB结束结束-开始开始结束结束-结束结束ABAB开始开始-开始开始45THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划网络图网络图 展示项目中的各个活动以及活动之间的逻辑关系;展示项目中的各个活动以及活动之
38、间的逻辑关系;网络图是活网络图是活动排序的一个输出;网络图可以表达活动的历时动排序的一个输出;网络图可以表达活动的历时常用网络图常用网络图 PDM:节点法节点法(单代号单代号)网络图、网络图、ADM:箭线法箭线法(双代号双代号)网络图、网络图、CDM:条件箭线图法条件箭线图法在网络图中一个活动用一个方框、节点或者其他方式表示在网络图中一个活动用一个方框、节点或者其他方式表示每一个活动被各种关系线相连接着每一个活动被各种关系线相连接着将项目中的各个活动的逻辑关系表示出来将项目中的各个活动的逻辑关系表示出来网络图开始于一个任务、工作、活动、里程碑网络图开始于一个任务、工作、活动、里程碑网络图结束于
39、一个网络图结束于一个 任务、工作、活动、里程碑任务、工作、活动、里程碑有些活动前置任务或者后置任务有些活动前置任务或者后置任务46THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划PDM(Precedence diagram)构成构成PDM网络图的基本特点是节点网络图的基本特点是节点(Box)节点节点(Box)表示活动表示活动(工序工序,工作工作)用箭线表示各活动用箭线表示各活动(工序工序,工作工作)之间的逻辑关系之间的逻辑关系.可以方便的表示活动之间的各种逻辑关系可以方便的表示活动之间的各种逻辑关系没有时标没有时标在软件项目中
40、在软件项目中PDM比比ADM更通用更通用47THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划PDM网络图的关系网络图的关系开始开始活动活动1 1活动活动3 3活动活动2 2结束结束48THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划软件项目的软件项目的PDM图例图例开开始始需求需求获取获取项目项目规划规划需求需求确认确认项目项目计划计划评审评审总体总体设计设计详细详细设计设计系统系统测试测试集成集成测试测试编码编码结结束束49THE SCHOOL OF SOF
41、TWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划ADM(Arrow diagram )ADM也称为也称为AOA (activity-on-arrow)或者双代号项目网络或者双代号项目网络图图在在ADM网络图中网络图中,箭线表示活动箭线表示活动(工序工序 工作工作)节点节点Node(圆圈(圆圈:circle)表示前一道工序的结束)表示前一道工序的结束,同时也表示同时也表示后一道工序的开始后一道工序的开始只适合表示结束只适合表示结束-开始的逻辑关系开始的逻辑关系可以有时标可以有时标50THE SCHOOL OF SOFTWARE ENGINEERING OF HU
42、ST软件项目进度计划软件项目进度计划ADM图例图例总体设计总体设计需求确认需求确认需求获需求获取取系统系统测试测试集成集成测试测试编码编码详细设详细设计计计划评审计划评审项目规划项目规划1 12 23 36 69 98 87 75 54 451THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划CDM(condition diagram)CDM网络图也称为条件箭头图法网络图网络图也称为条件箭头图法网络图CDM允许活动序列相互循环与反馈允许活动序列相互循环与反馈从而在绘制网络图的过程中会形成许多条件分支从而在绘制网络图的过程中会形成
43、许多条件分支而在而在PDM、ADM中是绝对不允许的中是绝对不允许的52THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划甘特图甘特图显示基本的任务信息显示基本的任务信息可以查看任务的工期、开始时间和结束时间以及资源的信息可以查看任务的工期、开始时间和结束时间以及资源的信息只有时标,没有活动的逻辑关系只有时标,没有活动的逻辑关系有两种表示方法(棒状、三角形)有两种表示方法(棒状、三角形)53THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划甘特图甘特图-实例实例54
44、THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划里程碑图里程碑图里程碑显示项目进展中的重大工作完成里程碑显示项目进展中的重大工作完成里程碑不同于活动里程碑不同于活动活动是需要消耗资源的活动是需要消耗资源的里程碑仅仅表示事件的标记里程碑仅仅表示事件的标记SpecificationDesign08/9811/98Testing02/995/99AvailableCoding9/0011/00Announce里程碑图示里程碑图示55THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软
45、件项目进度计划资源图资源图56THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划编制项目进度计划编制项目进度计划确定项目的所有活动及其开始和结束时间确定项目的所有活动及其开始和结束时间监控项目实施的基础,它是项目管理的基准监控项目实施的基础,它是项目管理的基准计划是三维的,考虑时间,费用和资源计划是三维的,考虑时间,费用和资源编制项目进度计划步骤编制项目进度计划步骤进度编制进度编制资源调整资源调整成本预算成本预算计划优化调整计划优化调整形成基线计划形成基线计划57THE SCHOOL OF SOFTWARE ENGINEERIN
46、G OF HUST软件项目进度计划软件项目进度计划进度编制的基本方法进度编制的基本方法关键路径法关键路径法正推法正推法逆推法逆推法时间压缩法时间压缩法赶工(赶工(Crash)快速跟进(快速跟进(Fast tracking:搭接)搭接)资源调整尝试法资源调整尝试法 58THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划关键路径法关键路径法关键路径法关键路径法(CPM:Critical Path Method)CPM是根据指定的网络顺序逻辑关系和单一的历时估算,计算每一是根据指定的网络顺序逻辑关系和单一的历时估算,计算每一个活动的单
47、一的、确定的最早和最迟开始和完成日期个活动的单一的、确定的最早和最迟开始和完成日期计算网络图中完成时间最长的路径计算网络图中完成时间最长的路径计算浮动时间计算浮动时间59THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划进度编制的基本术语(进度时间参数)进度编制的基本术语(进度时间参数)最早开始时间最早开始时间(Early start)最晚开始时间最晚开始时间(Late start)最早完成时间最早完成时间(Early finish)最晚完成时间最晚完成时间(Late finish)自由浮动(自由浮动(Free Float)总浮
48、动(总浮动(Total Float)超前超前(Lead)滞后滞后(Lag)60THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件项目进度计划软件项目进度计划浮动时间浮动时间(Float)浮动时间是一个活动的机动性浮动时间是一个活动的机动性,它是一个活动在不影响其它活动或者项它是一个活动在不影响其它活动或者项目完成的情况下可以延迟的时间量目完成的情况下可以延迟的时间量Float00:时间安排比较合理:时间安排比较合理Float=0=0:比较紧张:比较紧张Float0C-G-HCp Path:18Finish70THE SCHOOL OF SOFTWARE E
49、NGINEERING OF HUST根据所示的网络图,回答下列问题:根据所示的网络图,回答下列问题:(1)指出关键路径,并确定项目的工期;)指出关键路径,并确定项目的工期;(2)计算活动)计算活动I的最早开工时间和最早完工时间;的最早开工时间和最早完工时间;(3)计算活动)计算活动B的最迟开工时间和最迟完工时间;的最迟开工时间和最迟完工时间;(4)计算活动)计算活动D的自由时差。的自由时差。(设活动(设活动A、B、C的最早开工时间的最早开工时间ES=0,活动活动L的最迟完工时间的最迟完工时间LF=27)71THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件
50、项目进度计划软件项目进度计划检查网络图检查网络图确保网络图完整确保网络图完整是否正确标示了是否正确标示了critical path?是否有哪个任务存在很大的是否有哪个任务存在很大的float,需要重新规划,需要重新规划是否有不合理的空闲时间是否有不合理的空闲时间熟悉并分析网络图熟悉并分析网络图critical path上有什么风险?上有什么风险?Float有多大?有多大?那些任务有那种类型的那些任务有那种类型的Float。应该确保你的目标被满足应该确保你的目标被满足是否需要增加里程碑是否需要增加里程碑那些任务有提交物那些任务有提交物工作可以在期望的时间内完成吗?工作可以在期望的时间内完成吗?提