《十三章软件工程管理》由会员分享,可在线阅读,更多相关《十三章软件工程管理(50页珍藏版)》请在金锄头文库上搜索。
1、第十三章第十三章 软件工程管理软件工程管理 本章开始软件项目管理有关内容。所谓本章开始软件项目管理有关内容。所谓管理管理就是通就是通过计划、组织和控制等一系列活动,合理地配置和使用过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。各种资源,以达到既定目标的过程。软件项目管理先于软件项目管理先于任何技术活动之前开始,且贯穿于软件的整个生命周期任何技术活动之前开始,且贯穿于软件的整个生命周期之中之中。 软件项目管理过程软件项目管理过程从一组称为项目计划的活动开始从一组称为项目计划的活动开始。软件计划的目的软件计划的目的( (或者说软件计划的主要活动或者说软件计划的主要
2、活动) )包括包括确定软件范围确定软件范围进行可行性分析进行可行性分析确定资源确定资源进度安排进度安排影响软件计划的因素影响软件计划的因素项目复杂度项目复杂度项目规模项目规模问题结构化程度问题结构化程度 软件计划与项目特点有关,从软件计划角度看项目软件计划与项目特点有关,从软件计划角度看项目大致可分为如下几种类型:大致可分为如下几种类型:新概念开发项目新概念开发项目:涉及到新的概念和技术的使用:涉及到新的概念和技术的使用新的应用开发新的应用开发:没有新的技术应用,但对开发人员来说:没有新的技术应用,但对开发人员来说 是一个新的领域是一个新的领域应用增强型开发应用增强型开发:开发人员在这中领域已
3、经开发过系统:开发人员在这中领域已经开发过系统再生再生(reengineering)(reengineering)工程工程:在已有系统进行重新开发,:在已有系统进行重新开发, 增强部分功能等增强部分功能等 软件计划最详尽地描述了软件过程,它软件计划最详尽地描述了软件过程,它包包括采用的生命周期模型、开发组织的组织结构、括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、所用的技术和责任分配、管理目标和优先级、所用的技术和CASECASE工具,以及详细的进度、预算和资源分配工具,以及详细的进度、预算和资源分配。 整个计划的基础整个计划的基础是是工作量估算工作量估算和和完成期限完
4、成期限估算估算。第一项计划活动是。第一项计划活动是“估算估算”。13.1 13.1 度量软件规模度量软件规模一、代码行技术一、代码行技术 这种方法这种方法根据以往开发类似产品的经验和历史数据,根据以往开发类似产品的经验和历史数据,估计实现一个功能需要的源程序行数估计实现一个功能需要的源程序行数。 当有以往开发类似项目的历史数据可供参考时,用当有以往开发类似项目的历史数据可供参考时,用这种方法估计出的数据还是比较准确的这种方法估计出的数据还是比较准确的。把实现每个功。把实现每个功能需要的源程序行数累加起来,就得到实现整个软件需能需要的源程序行数累加起来,就得到实现整个软件需要的源程序行数。要的源
5、程序行数。 为了使得对程序规模的估计值更接近实际值,为了使得对程序规模的估计值更接近实际值,可以可以由多名有经验的软件工程师分别作出估计由多名有经验的软件工程师分别作出估计。每个人都估。每个人都估计程序的最小规模计程序的最小规模(a)(a)、最大规模最大规模(b)(b)和最可能的规模和最可能的规模(m)(m),分别算出这三种规模的平均值分别算出这三种规模的平均值 , 和和 之后,再用下之后,再用下式计算程序规模的估计值:式计算程序规模的估计值:单位是代码行数单位是代码行数(LOC)(LOC)或千行代码数或千行代码数(KLOC)(KLOC)。一、代码行技术(续)一、代码行技术(续)优点:代码行较
6、容易计算,现有许多软件估算模型基优点:代码行较容易计算,现有许多软件估算模型基 于代码行于代码行缺点:缺点:仅用代码行代表整个软件不太合理;仅用代码行代表整个软件不太合理; 用不同语言实现时代码行差别很大;用不同语言实现时代码行差别很大; 不适用于非过程语言不适用于非过程语言。一、代码行技术(续)一、代码行技术(续)二、功能点技术二、功能点技术 功能点技术功能点技术依据对软件信息域特性和软件复杂性依据对软件信息域特性和软件复杂性的评估结果,估算软件规模的评估结果,估算软件规模。这种方法用。这种方法用功能点功能点(FP)(FP)为单位,度量软件的为单位,度量软件的规模规模。 13.1 13.1
7、度量软件规模(续)度量软件规模(续)1 1、信息域特性、信息域特性 功能点技术定义了信息域的功能点技术定义了信息域的5 5个特性个特性 输入项数输入项数( (InpInp) ):用户向软件输入的面向应用的数据项数用户向软件输入的面向应用的数据项数 (不包括查询而进行的输入)(不包括查询而进行的输入) 输出项数输出项数(Out)(Out):软件向用户输出的报表、屏幕等项数,报软件向用户输出的报表、屏幕等项数,报 表内的数据项不再单独计数表内的数据项不再单独计数查询数查询数( (InqInq) ):输入的联机查询的个数(不记入输入项)输入的联机查询的个数(不记入输入项)主文件数主文件数( (Maf
8、Maf) ):逻辑主文件(数据的一个逻辑组合)的逻辑主文件(数据的一个逻辑组合)的 数目数目外部接口数外部接口数( (InfInf) ):机器可读的全部接口的数量,用这些接机器可读的全部接口的数量,用这些接 口把信息传送给另一个系统口把信息传送给另一个系统二、功能点技术(续)二、功能点技术(续)2 2、估算功能点的步骤、估算功能点的步骤(1)(1)计算未调整的功能点数计算未调整的功能点数UFPUFP 把产品信息域的每个特性把产品信息域的每个特性( (即即InpInp、OutOut、InqInq、MafMaf和和InfInf) )都分类成都分类成简单级、平均级或复杂级简单级、平均级或复杂级。根据
9、其等级,为每。根据其等级,为每个特性都分配一个功能点数。用下式计算未调整的功能点数个特性都分配一个功能点数。用下式计算未调整的功能点数UFPUFPUFP=aUFP=a1 1Inp+aInp+a2 2Out+aOut+a3 3Inq+aInq+a4 4Maf+aMaf+a5 5InfInf其中,其中,a ai i(1i5)(1i5)是信息域特性系数,其值由相应特性的复杂级是信息域特性系数,其值由相应特性的复杂级别决定,如表别决定,如表13.113.1所示。所示。二、功能点技术(续)二、功能点技术(续)二、功能点技术(续)二、功能点技术(续)(2)(2)计算技术复杂性因子计算技术复杂性因子TCFT
10、CF 度量度量1414种技术因素对软件规模的影响程度。这些因素包种技术因素对软件规模的影响程度。这些因素包括高处理率、性能标准括高处理率、性能标准( (例如,响应时间例如,响应时间) )、联机更新等,在、联机更新等,在表表13.213.2中列出了全部技术因素,并用中列出了全部技术因素,并用F Fi i(1i14)(1i14)代表这些代表这些因素。因素。根据软件特点,为每个因素分配一个从根据软件特点,为每个因素分配一个从0(0(不存在或对不存在或对软件规模无影响软件规模无影响) )到到5(5(有很大影响有很大影响) )的值。的值。然后,用下式计算然后,用下式计算技术因素对软件规模的综合影响程度技
11、术因素对软件规模的综合影响程度DIDI:二、功能点技术(续)二、功能点技术(续)二、功能点技术(续)二、功能点技术(续) 技术复杂性因子技术复杂性因子TCFTCF由下式计算:由下式计算: TCF=0.65+0.01DITCF=0.65+0.01DI因为因为DIDI的值在的值在0 07070之间,所以之间,所以TCFTCF的值在的值在0.650.651.351.35之之间。间。二、功能点技术(续)二、功能点技术(续)(3)(3)计算功能点数计算功能点数FPFP 功能点数功能点数FPFP由下式计算:由下式计算: FP=UFPTCFFP=UFPTCF 功能点数与所用的编程语言无关,因此,功能点技功能
12、点数与所用的编程语言无关,因此,功能点技术比代码行技术更合理一些。术比代码行技术更合理一些。但是,在判断信息域特性但是,在判断信息域特性复杂级别及技术因素的影响程度时,存在相当大的主观复杂级别及技术因素的影响程度时,存在相当大的主观因素因素。二、功能点技术(续)二、功能点技术(续)13.2 13.2 工作量估算工作量估算 计算机软件估算模型使用由经验导出的公式来预测计算机软件估算模型使用由经验导出的公式来预测软件开发的工作量,工作量是软件规模软件开发的工作量,工作量是软件规模(LOC(LOC或或FP)FP)的函数,的函数,工作量的单位通常是人月工作量的单位通常是人月(pm)(pm)。 支持大多
13、数估算模型的经验数据,都是从有限个项支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,因此,目的样本集中总结出来的,因此,没有一个估算模型能没有一个估算模型能够适用于所有类型的软件和开发环境够适用于所有类型的软件和开发环境。一、静态单变量模型一、静态单变量模型 这类模型的这类模型的总体结构形式总体结构形式如下:如下: E=E=A+B(ev)A+B(ev)C C其中,其中,A A、B B和和C C是由经验数据导出的常数,是由经验数据导出的常数,E E是以人月为是以人月为单位的工作量单位的工作量,evev是估算变量是估算变量(LOC(LOC或或FP)FP)。此外,此外,大多数大多
14、数模型都有某种形式的调整成分,使得模型都有某种形式的调整成分,使得E E能够依据项目的其能够依据项目的其他特性他特性( (例如,问题的复杂程度、开发人员的经验、开发例如,问题的复杂程度、开发人员的经验、开发环境等环境等) )加以调整加以调整。13.2 13.2 工作量估算工作量估算1 1、面向、面向LOCLOC的估算模型的估算模型(1)Walston(1)WalstonFelixFelix模型模型 E=5.2(KLOC)E=5.2(KLOC)0.910.91(2)Bailey(2)BaileyBasiliBasili模型模型 E=5.5+0.73(KLOC)E=5.5+0.73(KLOC)1.
15、161.16(3)Boehm(3)Boehm简单模型简单模型 E=3.2(KLOC)E=3.2(KLOC)1.051.05(4)Doty(4)Doty模型模型( (在在KLOCKLOC9 9的情况下的情况下) ) E=5.288(KLOC) E=5.288(KLOC)1.4071.407一、静态单变量模型一、静态单变量模型2 2、面向、面向FPFP的估算模型的估算模型(1)Albrecht&Gaffney(1)Albrecht&Gaffney模型模型 E=-13.39+0.0545FPE=-13.39+0.0545FP(2)Kemerer(2)Kemerer模型模型 E=60.627.7281
16、0E=60.627.72810-8-8FPFP3 3(3)Maston(3)Maston、BarnettBarnett和和MellichampMellichamp模型模型 E=585.7+5.13FPE=585.7+5.13FP一、静态单变量模型(续)一、静态单变量模型(续)二、动态多变量模型二、动态多变量模型 动态多变量模型也称为软件方程式。这种模型动态多变量模型也称为软件方程式。这种模型把工把工作量看作是作量看作是软件规模软件规模和和开发时间开发时间这两个变量的函数这两个变量的函数。动。动态多变量估算模型的形式如下:态多变量估算模型的形式如下: E=(LOCBE=(LOCB0.3330.3
17、33/P)/P)3 3(1/t)(1/t)4 4E E是以人月或人年为单位的工作量;是以人月或人年为单位的工作量;t t是以月或年为单位的项目持续时间;是以月或年为单位的项目持续时间;B B是是“特殊技术因子特殊技术因子”,它随着对集成、测试、质量,它随着对集成、测试、质量保证、文档及管理技术的需求的增长而缓慢增加,对保证、文档及管理技术的需求的增长而缓慢增加,对于较小的程序于较小的程序(KLOC=5(KLOC=510)10),B=0.16B=0.16,对于超过对于超过70KLOC70KLOC的程序,的程序,B=0.39B=0.39;P P是生产率参数是生产率参数P P是是“生产率参数生产率参
18、数”,它反映了下述因素对工作量的影响:,它反映了下述因素对工作量的影响:总体的过程成熟度及管理水平;总体的过程成熟度及管理水平;使用良好的软件工程实践的程度;使用良好的软件工程实践的程度;使用的程序设计语言的级别;使用的程序设计语言的级别;软件环境的状态;软件环境的状态;软件项目组的技术及经验;软件项目组的技术及经验;应用系统的复杂程度。应用系统的复杂程度。二、动态多变量模型(续)二、动态多变量模型(续) 当开发实时嵌入式软件时,典型值是当开发实时嵌入式软件时,典型值是P=2000P=2000;对于对于电信和系统软件来说,电信和系统软件来说,P=10000P=10000;对于商业系统应用,对于
19、商业系统应用,P=28000P=28000。适用于当前项目的生产率参数,可以从历史数适用于当前项目的生产率参数,可以从历史数据导出。据导出。 软件方程式有两个独立的变量:软件方程式有两个独立的变量:对软件规模的估对软件规模的估算值算值( (用用LOCLOC表示表示) );以月或年为单位的项目持续时间。以月或年为单位的项目持续时间。从公式可以看出,开发同一个软件从公式可以看出,开发同一个软件( (即即LOCLOC固定固定) )的时候,的时候,如果把项目持续时间延长一些,则可降低完成项目所需如果把项目持续时间延长一些,则可降低完成项目所需要的工作量要的工作量。二、动态多变量模型(续)二、动态多变量
20、模型(续)三、三、COCOMOCOCOMO模型模型 所谓所谓COCOMOCOCOMO模型就是模型就是BoehmBoehm提出的提出的构造性成构造性成本模型本模型( (COCOnstructivenstructive COCOstst MOMOdeldel) ),它是一种它是一种层次结构的软件估算模型层次结构的软件估算模型。先将软件问题划分为先将软件问题划分为组织型、半独立型和嵌入型组织型、半独立型和嵌入型,对不同类型问题提,对不同类型问题提出估算模型出估算模型。13.2 13.2 工作量估算(续)工作量估算(续)COCOMOCOCOMO模型本身又分为:模型本身又分为:基本基本COCOMOCOC
21、OMO模型模型:是静态单变量模型,用:是静态单变量模型,用源代码行数源代码行数(LOC)(LOC)为为 自变量自变量的经验函数计算软件开发工作量;的经验函数计算软件开发工作量;中间中间COCOMOCOCOMO模型模型:在用:在用LOCLOC为自变量的函数计算软件开发工作为自变量的函数计算软件开发工作 量量( (称为名义工作量称为名义工作量) )的基础上,的基础上,用涉及产品、硬件、人用涉及产品、硬件、人 员、项目等方面的员、项目等方面的影响因素影响因素调整工作量估算调整工作量估算;详细详细COCOMOCOCOMO模型模型:包括中间:包括中间COCOMOCOCOMO模型的所有特性,但用上模型的所
22、有特性,但用上 述各种影响因素调整工作量估算时,述各种影响因素调整工作量估算时,还要考虑对软件工程还要考虑对软件工程 过程中每一步骤过程中每一步骤( (分析、设计等分析、设计等) )的影响的影响。三、三、COCOMOCOCOMO模型(续)模型(续)(1)(1)基本基本COCOMOCOCOMO模型为:模型为:KLOCKLOC千源指令条数千源指令条数 组织型组织型:E=2.4KLOCE=2.4KLOC1.05 1.05 T=2.5ET=2.5E0.380.38 (2.4-3.2 (2.4-3.2:中间中间COCOMOCOCOMO模型模型) ) 开发人员经验丰富、环境熟悉、规模不大开发人员经验丰富、
23、环境熟悉、规模不大( (如如MIS)MIS) 半独立型:半独立型:E=3.0KLOCE=3.0KLOC1.13 1.13 T=2.5ET=2.5E0.350.35 (3.0-3.0(3.0-3.0:中间中间COCOMOCOCOMO模型模型) ) 介于组织型和嵌入型之间,且规模较大介于组织型和嵌入型之间,且规模较大 嵌入型:嵌入型:E=3.6KLOCE=3.6KLOC1.20 1.20 T=2.5ET=2.5E0.320.32 (3.6-2.8(3.6-2.8:中间中间COCOMOCOCOMO模型模型) ) 软件运行约束条件多,可靠性要求高软件运行约束条件多,可靠性要求高三、三、COCOMOCO
24、COMO模型(续)模型(续)(3)(3)中间中间COCOMOCOCOMO模型:模型:估算公式估算公式其中其中E E开发所需的人力开发所需的人力( (人月人月) );C C 为模型系数为模型系数( (开发模式:组织式、嵌入式、半独立式开发模式:组织式、嵌入式、半独立式) );KLOC KLOC 是估计的代码行数;是估计的代码行数;A A 是模型指数是模型指数( (对应着开发模式对应着开发模式) );f fi i (i=115)(i=115)是成本因素,包括生产因素、计算机因素、是成本因素,包括生产因素、计算机因素、人员因素、工程因素等人员因素、工程因素等1515个方面。个方面。三、三、COCOM
25、OCOCOMO模型(续)模型(续)三、三、COCOMOCOCOMO模型(续)模型(续)1. 1. 产品因素产品因素(1) (1) 要求的软件可靠性要求的软件可靠性(RELY)(RELY)(2) (2) 数据库规模数据库规模(DATA)(DATA)(3) (3) 软件产品复杂程度软件产品复杂程度(CPLX)(CPLX)2. 2. 计算机因素计算机因素(1) (1) 执行时间的约束执行时间的约束(TIME)(TIME)(2) (2) 存储约束存储约束(STOR)(STOR)(3) (3) 环境变更率环境变更率(VIRT)(VIRT)(4) (4) 计算机换向时间计算机换向时间(TURN)(TURN
26、)3. 人员因素人员因素(1)(1) 系统分析员的能力系统分析员的能力(ACAP)(2) (2) 应用经验应用经验(AEXP)(AEXP)(3) (3) 程序员的能力程序员的能力(PCAP)(PCAP)(4) (4) 环境知识环境知识(VEXP)(VEXP)(5) (5) 语言知识语言知识(LEXP)(LEXP)4. 4. 项目因素项目因素(1) (1) 程序设计实践程序设计实践(MODP)(MODP)(2) (2) 软件工具软件工具(TOOL)(TOOL)(3) (3) 进度约束进度约束(SCED)(SCED)成本因素成本因素f fi i(i(i=115)=115)三、三、COCOMOCOC
27、OMO模型(续)模型(续)张海藩书张海藩书P227-228影响系数影响系数 表表10.4 对对6464个覆盖了相当广泛的应用领域的项目样个覆盖了相当广泛的应用领域的项目样本进行研究,证明了中级本进行研究,证明了中级COCOMOCOCOMO模型的有效性:模型的有效性: 对这些样本应用该模型,预测结果的误差对这些样本应用该模型,预测结果的误差在在20%20%以内的项目约占以内的项目约占68%68%。三、三、COCOMOCOCOMO模型(续)模型(续)13.3 13.3 进度计划进度计划 一个有效的软件过程应该是定义一组适合于所从事一个有效的软件过程应该是定义一组适合于所从事的项目的任务集合。的项目
28、的任务集合。一个任务集包括一组软件工程工作一个任务集包括一组软件工程工作任务、里程碑和可交付的产品任务、里程碑和可交付的产品。 项目管理者的目标项目管理者的目标是定义全部项目任务,识别出关是定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情况。拖延进度的情况。 软件项目的进度安排软件项目的进度安排是一项活动,它通过把工作量是一项活动,它通过把工作量分配给特定的软件工程任务,并规定完成各项任务的起、分配给特定的软件工程任务,并规定完成各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续止日期,从而将估算
29、的工作量分布于计划好的项目持续期内期内。一、进度安排的基本原则一、进度安排的基本原则1 1、划分:将软件项目划分为若干可以管理的活动和任务、划分:将软件项目划分为若干可以管理的活动和任务2 2、相互依赖性:确定各个活动和任务之间的相互依赖性、相互依赖性:确定各个活动和任务之间的相互依赖性3 3、时间分配:需既考虑任务之间的依赖性,又要考虑开、时间分配:需既考虑任务之间的依赖性,又要考虑开发人员的工作时间发人员的工作时间4 4、工作量确认:确认在任意时刻分配给项目的人员正好、工作量确认:确认在任意时刻分配给项目的人员正好符合项目需要符合项目需要5 5、定义责任:为每个任务指定负责人、定义责任:为
30、每个任务指定负责人6 6、定义结果:定义每个任务的输出、定义结果:定义每个任务的输出7 7、定义里程碑:为每个或每组任务定义一个里程碑、定义里程碑:为每个或每组任务定义一个里程碑13.3 13.3 进度计划(续)进度计划(续)二、二、GanttGantt图图 GanttGantt图图( (甘特图甘特图) )是历史悠久、应用广泛的进度计划工具。是历史悠久、应用广泛的进度计划工具。为了醒目地表示里程碑,可以在为了醒目地表示里程碑,可以在GanttGantt图中加上菱形标记,一图中加上菱形标记,一个菱形代表一个里程碑。个菱形代表一个里程碑。 书例:旧木板房刷漆工程的书例:旧木板房刷漆工程的Gantt
31、Gantt图图13.3 13.3 进度计划(续)进度计划(续)二、二、GanttGantt图(续)图(续) GanttGantt图具有直观简明和容易掌握、容易绘制的优点,图具有直观简明和容易掌握、容易绘制的优点,但是但是GanttGantt图也有三个主要缺点:图也有三个主要缺点:不能显式地描绘各项作业彼此间的依赖关系;不能显式地描绘各项作业彼此间的依赖关系;进度计划的关键部分不明确,难于判定哪些部分应当是进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;主攻和主控的对象;计划中有潜力的部分及潜力的大小不明确,往往造成潜计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。力
32、的浪费。二、二、GanttGantt图(续)图(续)三、工程网络图(三、工程网络图(PERTPERT) 工程网络是制定进度计划时另一种常用的图形工具,工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还结束时间,此外,它还显式地描绘各个作业彼此间的依显式地描绘各个作业彼此间的依赖关系赖关系。因此,工程网络是系统分析和系统设计的强有。因此,工程网络是系统分析和系统设计的强有力的工具。力的工具。13.3 13.3 进度计划(续)进度计划(续) 在工程网络在工程网络中用箭头表示作业中用箭头表
33、示作业( (例如,刮旧漆,刷新例如,刮旧漆,刷新漆,清理等漆,清理等) ),用圆圈表示事件用圆圈表示事件( (一项作业开始或结束一项作业开始或结束) )。注意,注意,事件仅仅是可以明确定义的时间点,它并不消耗事件仅仅是可以明确定义的时间点,它并不消耗时间和资源时间和资源。作业通常既消耗资源又需要持续一定时间作业通常既消耗资源又需要持续一定时间。三、工程网络图(续)三、工程网络图(续) 在工程网络中的一个事件,如果既有箭头进入又有在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的箭头离开,则它既是某些作业的结束又是另一些作业的开始。因此,工程网络显式地表
34、示了作业之间的依赖关开始。因此,工程网络显式地表示了作业之间的依赖关系。系。 在图中还有一些在图中还有一些虚线箭头,它们表示虚拟作业虚线箭头,它们表示虚拟作业,也,也就是事实上并不存在的作业。就是事实上并不存在的作业。引入虚拟作业是为了显式引入虚拟作业是为了显式地表示作业之间的依赖关系地表示作业之间的依赖关系。注意,虚拟作业既不消耗注意,虚拟作业既不消耗资源也不需要时间资源也不需要时间。三、工程网络图(续)三、工程网络图(续)图13.3 旧木板房刷漆工程的工程网络图中:12刮第1面墙上的旧漆;23刮第2面墙上的旧漆;24给第1面墙刷新漆;35刮第3面墙上旧漆;46给第2面墙刷新漆;47清理第1
35、面墙窗户;58刮第4面墙上旧漆;68给第3面墙刷新漆;79清理第2面墙窗户;810给第4面墙刷新漆;910清理第3面墙窗户;1011清理第4面墙窗户;虚拟作业:34;56;67;89。三、工程网络图(续)三、工程网络图(续)四、估算进度四、估算进度 画出工程网络之后,系统分析员就可以借助它的帮画出工程网络之后,系统分析员就可以借助它的帮助估算工程进度了。为此需要在工程网络上增加一些必助估算工程进度了。为此需要在工程网络上增加一些必要的信息。要的信息。 首先,把每个作业首先,把每个作业估计需要使用的时间估计需要使用的时间写在表示该写在表示该项作业的箭头上方。注意,箭头长度和它代表的作业持项作业的
36、箭头上方。注意,箭头长度和它代表的作业持续时间没有关系,箭头仅表示依赖关系,它上方的数字续时间没有关系,箭头仅表示依赖关系,它上方的数字才表示作业的持续时间。才表示作业的持续时间。 其次,其次,为每个事件计算下述两个统计数字为每个事件计算下述两个统计数字:最早开最早开始时刻始时刻EETEET和和最迟开始时刻最迟开始时刻LETLET。这两个数字将分别写在这两个数字将分别写在表示事件的圆圈的右上角和右下角。表示事件的圆圈的右上角和右下角。四、估算进度(续)四、估算进度(续) 事件的最早时刻事件的最早时刻是该事件可以发生的最早时间。通是该事件可以发生的最早时间。通常工程网络中第一个事件的最早时刻定义
37、为零,其他事常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上件的最早时刻在工程网络上从左至右按事件发生顺序计从左至右按事件发生顺序计算算。计算最早时刻计算最早时刻EETEET使用下述三条简单规则:使用下述三条简单规则:考虑考虑进入该事件的所有作业进入该事件的所有作业;对于每个作业都计算它的持续时间与起始事件的对于每个作业都计算它的持续时间与起始事件的EETEET之之和;和;选取上述和数中的选取上述和数中的最大值最大值作为该事件的最早时刻作为该事件的最早时刻EETEET。四、估算进度(续)四、估算进度(续) 事件的最迟时刻事件的最迟时刻是在不影响工程竣工时间的前提下,是在
38、不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。按惯例,该事件最晚可以发生的时刻。按惯例,最后一个事件最后一个事件( (工工程结束程结束) )的最迟时刻就是它的最早时刻的最迟时刻就是它的最早时刻。其他事件的最迟。其他事件的最迟时刻在工程网络上时刻在工程网络上从右至左按逆作业流的方向计算从右至左按逆作业流的方向计算。计算最迟时刻计算最迟时刻LETLET使用下述三条规则:使用下述三条规则:考虑考虑离开该事件的所有作业离开该事件的所有作业;从每个作业的从每个作业的结束事件的最迟时刻结束事件的最迟时刻中减去该作业的持续中减去该作业的持续时间;时间;选取上述差数中的选取上述差数中的最小值最小值做为
39、该事件的最迟时刻做为该事件的最迟时刻LETLET。四、估算进度(续)四、估算进度(续)五、关键路径五、关键路径 图中有几个图中有几个事件的最早时刻和最迟时刻相同,这些事件的最早时刻和最迟时刻相同,这些事件定义了关键路径事件定义了关键路径,在图中关键路径用粗线箭头表示。,在图中关键路径用粗线箭头表示。关键路径上的事件关键路径上的事件( (关键事件关键事件) )必须准时发生,必须准时发生,组成关键组成关键路径的作业路径的作业( (关键作业关键作业) )的实际持续时间不能超过估计的的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束持续时间,否则工程就不能准时结束。13.3 13.3 进度计
40、划(续)进度计划(续)六、机动时间六、机动时间 不在关键路径上的作业有一定程度的机动余地不在关键路径上的作业有一定程度的机动余地实实际开始时间可以比预定时间晚一些,或者实际持续时间可际开始时间可以比预定时间晚一些,或者实际持续时间可以比预计的持续时间长一些,而并不影响工程的结束时间。以比预计的持续时间长一些,而并不影响工程的结束时间。一个作业可以有的全部机动时间等于它的结束事件的最迟一个作业可以有的全部机动时间等于它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间续时间: 机动时间机动时间=(LET)=(LET)结束事件
41、结束事件-(EET)-(EET)开始事件开始事件- -持续时间持续时间13.3 13.3 进度计划(续)进度计划(续) 在工程网络中每个作业的机动时间写在代表该项作在工程网络中每个作业的机动时间写在代表该项作业的箭头下面的括弧里。业的箭头下面的括弧里。 在制定进度计划时仔细考虑和利用工程网络中的机在制定进度计划时仔细考虑和利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表时间的进度表。六、机动时间(续)六、机动时间(续)六、机动时间(续)六、机动时间(续) 改进的Gantt图13.4 软件知识产权保护n软件著作权n软件著作权的内容n软件著作权的登记n软件侵权及法律保护n软件侵权类型及法律责任n保护计算机软件的商业秘密n软件工程师的职业道德规范n8项基本原则作业nP300 1,2,3,4,5,6,7