软件项目成本管理课件

上传人:公**** 文档编号:570157221 上传时间:2024-08-02 格式:PPT 页数:141 大小:2.18MB
返回 下载 相关 举报
软件项目成本管理课件_第1页
第1页 / 共141页
软件项目成本管理课件_第2页
第2页 / 共141页
软件项目成本管理课件_第3页
第3页 / 共141页
软件项目成本管理课件_第4页
第4页 / 共141页
软件项目成本管理课件_第5页
第5页 / 共141页
点击查看更多>>
资源描述

《软件项目成本管理课件》由会员分享,可在线阅读,更多相关《软件项目成本管理课件(141页珍藏版)》请在金锄头文库上搜索。

1、软件项目管理1 1项目成本管理是项目管理的一个重要组成部分,项目成本管理是项目管理的一个重要组成部分,它是指在项目的具体实施过程中,为了保证它是指在项目的具体实施过程中,为了保证完成完成项目所花费的实际成本不超过其预算成本项目所花费的实际成本不超过其预算成本而展开而展开的的项目成本估算项目成本估算、项目预算编制项目预算编制和和项目成本控制项目成本控制等方面的管理活动。等方面的管理活动。必须要加强对项目实际发生成本的控制。一旦项必须要加强对项目实际发生成本的控制。一旦项目成本失控,就很难在预算内完成项目。目成本失控,就很难在预算内完成项目。成本失控的情况常常是以下原因造成的:成本失控的情况常常是

2、以下原因造成的:v成本估算和成本预算不够准确细致;成本估算和成本预算不够准确细致;v许多项目在成本估算、成本预算、成本控制方许多项目在成本估算、成本预算、成本控制方法上没有统一的标准可循。法上没有统一的标准可循。v思想上的误区:实际成本超出预算是必然的。思想上的误区:实际成本超出预算是必然的。软件项目管理2 25.15.1 项目成本项目成本一般项目的成本主要由项目直接成本、管理费一般项目的成本主要由项目直接成本、管理费用和期间费用等组成。用和期间费用等组成。1)项目直接成本项目直接成本是指与项目有直接关系的成本是指与项目有直接关系的成本费用。例如,直接人工费、直接材料费、其费用。例如,直接人工

3、费、直接材料费、其他直接费用等。他直接费用等。2)管理费用管理费用是指为了组织、管理和控制项目所是指为了组织、管理和控制项目所发生的费用。例如,管理人员费用支出、差发生的费用。例如,管理人员费用支出、差旅费、固定资产和设备使用费、办公费、医旅费、固定资产和设备使用费、办公费、医疗保险费,以及其他一些间接费用。疗保险费,以及其他一些间接费用。1. 1. 项目成本项目成本软件项目管理3 33)期间费用期间费用是指不受项目业务量增减影响的费是指不受项目业务量增减影响的费用,如日常行政管理费、销售费等。用,如日常行政管理费、销售费等。IT 软件项目由于项目自身的特点,对整个项目软件项目由于项目自身的特

4、点,对整个项目的预算和成本控制更为困难。项目经理为了控制的预算和成本控制更为困难。项目经理为了控制整个项目的预算和支出,必须正确估算软件开发整个项目的预算和支出,必须正确估算软件开发的成本费用。的成本费用。IT 软件项目的成本有软件项目的成本有 4 种:种:1)硬件硬件/支持软件成本支持软件成本:包括项目所需的所有:包括项目所需的所有硬硬件设备件设备、系统软件系统软件、数据资源数据资源的购置、运输、的购置、运输、储存、安装、测试的费用。对于进口设备,储存、安装、测试的费用。对于进口设备,还要包括国外运费、保险费、进口关税和增还要包括国外运费、保险费、进口关税和增值税等费用。值税等费用。2)差旅

5、及培训费差旅及培训费:培训费用包括:培训费用包括开发人员培训开发人员培训费费和和用户培训费用户培训费。软件项目管理4 43)软件开发成本软件开发成本:人工成本人工成本是最主要的软件开是最主要的软件开发成本。在软件开发项目中,付给软件工程发成本。在软件开发项目中,付给软件工程师的人工费用占了开发成本的绝大部分。师的人工费用占了开发成本的绝大部分。4)项目管理费用项目管理费用:用于项目组织、管理、控制:用于项目组织、管理、控制的费用支出。的费用支出。尽管硬件尽管硬件/支持软件成本、差旅及培训费用可能支持软件成本、差旅及培训费用可能在项目总成本中占较大的成本,但最主要的成在项目总成本中占较大的成本,

6、但最主要的成本还是指在本还是指在开发过程中所花费的工作量及相应开发过程中所花费的工作量及相应的代价的代价,它不包括原材料及能源的消耗。主要,它不包括原材料及能源的消耗。主要是人的劳动消耗。是人的劳动消耗。IT软件项目的产品生产不是一个重复的制造过软件项目的产品生产不是一个重复的制造过程,而是以程,而是以“一次性一次性”开发过程所花费的代价开发过程所花费的代价来来软件项目管理5 5发成本。在软件开发项目中,付给软件工程发成本。在软件开发项目中,付给软件工程师的人工费用占了开发成本的绝大部分。师的人工费用占了开发成本的绝大部分。4)项目管理费用:用于项目组织、管理、控制项目管理费用:用于项目组织、

7、管理、控制的费用支出。的费用支出。尽管硬件尽管硬件/支持软件成本、差旅及培训费用可能支持软件成本、差旅及培训费用可能在项目总成本中占较大的成本,但最主要的成在项目总成本中占较大的成本,但最主要的成本还是指在本还是指在开发过程中所花费的工作量及相应开发过程中所花费的工作量及相应的代价的代价,它不包括原材料及能源的消耗。主要,它不包括原材料及能源的消耗。主要是人的劳动消耗。是人的劳动消耗。IT 软件项目的产品生产不是一个重复的制造过软件项目的产品生产不是一个重复的制造过程,而是以程,而是以“一次性一次性”开发过程所花费的代价开发过程所花费的代价来计算的。来计算的。IT 项目开发成本的估算应以整个项

8、项目开发成本的估算应以整个项目目软件项目管理6 62.2. 影响项目成本的因素影响项目成本的因素软件开发全过程所花费的人工代价作为计算的软件开发全过程所花费的人工代价作为计算的依据,并可以按与软件生命周期对应的阶段进依据,并可以按与软件生命周期对应的阶段进行估算。行估算。1)项目质量对成本的影响项目质量对成本的影响质量对成本的影响,可以通过质量成本构成示质量对成本的影响,可以通过质量成本构成示意图表示。质量成本是由质量故障成本和质量意图表示。质量成本是由质量故障成本和质量保证成本构成的。保证成本构成的。质量故障成本质量故障成本是指是指为了排除因产品量差而产生为了排除因产品量差而产生的故障,保证

9、产品重新恢复功能的故障,保证产品重新恢复功能的费用的费用。质量质量保证成本保证成本是指是指为了保证和提高产品质量,采取为了保证和提高产品质量,采取软件项目管理7 7相应技术措施而消耗相应技术措施而消耗的费用。的费用。质量故障成本与质量保证成本是相互矛盾的。质质量故障成本与质量保证成本是相互矛盾的。质量保证成本高,故障就少,质量故障成本就低。量保证成本高,故障就少,质量故障成本就低。反之亦然。因此,需要建立一个动态平衡。反之亦然。因此,需要建立一个动态平衡。质量总成本质量总成本质量保证成本质量保证成本质量故障成本质量故障成本质量质量成成本本软件项目管理8 82)工期对成本的影响工期对成本的影响项

10、目费用由直接费用和间接费用组成。一般工项目费用由直接费用和间接费用组成。一般工期越长,项目的直接费用越低,而间接费用越期越长,项目的直接费用越低,而间接费用越高。反之,缩短工期,需要更多的、技术水平高。反之,缩短工期,需要更多的、技术水平越高的工程师,直接成本费用就会增加。越高的工程师,直接成本费用就会增加。项项目目总总成成本本项目工期项目工期总成本总成本间接费用成本间接费用成本直接费用成本直接费用成本软件项目管理9 93)管理水平对成本的影响管理水平对成本的影响高的管理水平可以提高项目预算的准确度,加强高的管理水平可以提高项目预算的准确度,加强对项目预算的执行和监管。同时,对工期的控制对项目

11、预算的执行和监管。同时,对工期的控制严格限制在计划许可的范围内,对由于设计方案严格限制在计划许可的范围内,对由于设计方案和项目计划的变更所造成的成本增加和项目计划的变更所造成的成本增加 / 减少和工减少和工期的变动,可以较为有效地控制。因此,管理水期的变动,可以较为有效地控制。因此,管理水平对项目成本有关键影响。平对项目成本有关键影响。4)人力资源对成本的影响人力资源对成本的影响对于高技术能力、高技术素质的人才,其人力资对于高技术能力、高技术素质的人才,其人力资源成本比较高,但可以产生高的生产率、高质量源成本比较高,但可以产生高的生产率、高质量的产品、较短的工期等间接效果,从整体上会降的产品、

12、较短的工期等间接效果,从整体上会降低成本。低成本。软件项目管理1010对于一般人员,还需要技术培训。对项目的理解对于一般人员,还需要技术培训。对项目的理解及生产率相对低下,工期会延长,造成成本的增及生产率相对低下,工期会延长,造成成本的增加。因此,人力资源是重要的影响因素。加。因此,人力资源是重要的影响因素。5)价格对成本的影响价格对成本的影响中间产品和服务、市场人力资源、硬件、软件的中间产品和服务、市场人力资源、硬件、软件的价格也对成本产生直接的影响。因为价格对项目价格也对成本产生直接的影响。因为价格对项目成本预算的影响很大。成本预算的影响很大。软件项目管理11115.25.2 项目成本管理

13、的内容项目成本管理的内容项目成本管理主要由项目资源计划的编制,成本项目成本管理主要由项目资源计划的编制,成本估算,成本预算和成本控制等估算,成本预算和成本控制等 4 个过程组成,下个过程组成,下图给出了这些过程的主要框架。图给出了这些过程的主要框架。以上四个过程相互影响、相互作用,有时也与外以上四个过程相互影响、相互作用,有时也与外界的过程发生交互影响,根据项目的具体情况,界的过程发生交互影响,根据项目的具体情况,每一过程由一人或数人或小组完成,在项目的每每一过程由一人或数人或小组完成,在项目的每个阶段,上述过程至少出现一次。个阶段,上述过程至少出现一次。某些项目,特别是小项目,资源计划、成本

14、估算某些项目,特别是小项目,资源计划、成本估算和成本预算三者紧密相连,可把这些过程视为一和成本预算三者紧密相连,可把这些过程视为一个过程处理(例如,当这些过程可由一个人在短个过程处理(例如,当这些过程可由一个人在短时间内完成时)。时间内完成时)。 软件项目管理12121. 输入输入 工作分解结构工作分解结构 历史资料历史资料 范围说明范围说明 资源库描述资源库描述 组织策略组织策略2. 工具与技术工具与技术 专家判断专家判断 头脑风暴法头脑风暴法3. 输出输出 资源需求计划资源需求计划1. 输入输入 工作分解结构工作分解结构 资源需求资源需求 资源单价资源单价 活动时间估计活动时间估计 历史资

15、料历史资料 财务图表财务图表2. 工具与技术工具与技术 类比估计类比估计3. 输出输出 成本估算成本估算 详细说明详细说明 成本管理计划成本管理计划1. 输入输入 成本估算成本估算 工作分解结构工作分解结构 项目进度项目进度 2. 工具与技术工具与技术 成本估算工具成本估算工具与方法与方法3. 输出输出 基准成本基准成本项目成本管理项目成本管理1. 输入输入 基准成本基准成本 执行情况执行情况 变更要求变更要求 成本管理计划成本管理计划 2. 工具与技术工具与技术 成本变更控制系统成本变更控制系统 执行情况测量执行情况测量 另外的计划另外的计划 项目管理软件项目管理软件3. 输出输出 修改后成

16、本估算修改后成本估算 更新的预算更新的预算 纠正措施纠正措施 完成项目所需成本完成项目所需成本估算估算 经验与教训经验与教训成本控制成本控制成本预算成本预算成本估算成本估算资源计划资源计划软件项目管理13135.35.3 资源计划资源计划资源计划是确定为完成项目活动所需要的各种资资源计划是确定为完成项目活动所需要的各种资源的种类、数量和时间,包括人力、财力和物力源的种类、数量和时间,包括人力、财力和物力资源,完成资源的配置。资源,完成资源的配置。在任何项目中,资源并不是无限制的,也不是可在任何项目中,资源并不是无限制的,也不是可以随时随地能够获取的,项目的成本、可起作用以随时随地能够获取的,项

17、目的成本、可起作用的技术水平、时间进度等都受到可支配资源的限的技术水平、时间进度等都受到可支配资源的限制。在项目进展过程中,如何合理配置和优化资制。在项目进展过程中,如何合理配置和优化资源使用,是项目管理的重要问题。源使用,是项目管理的重要问题。软件项目管理14141.1. 资源计划编制过程的输入资源计划编制过程的输入1)工作分解结构工作分解结构WBS它是编制资源计划所依据的最重要的基础,根据它是编制资源计划所依据的最重要的基础,根据工作分解结构,明确完成项目各项工作的资源需工作分解结构,明确完成项目各项工作的资源需求,编制项目资源需求计划。求,编制项目资源需求计划。2)历史信息历史信息记录了

18、以前类似项目的资源需求、项目资源计划、记录了以前类似项目的资源需求、项目资源计划、项目实施时实际耗费的资源等方面的有关情况。项目实施时实际耗费的资源等方面的有关情况。充分利用和借鉴相关历史信息来编制项目资源需充分利用和借鉴相关历史信息来编制项目资源需求计划,可以提高资源需求计划的准确性,还可求计划,可以提高资源需求计划的准确性,还可以减少编制的工作量。以减少编制的工作量。软件项目管理15153)范围说明范围说明范围说明描述了项目工作,界定了项目目标。范围说明描述了项目工作,界定了项目目标。这两者均应在编制资源计划时考虑。这两者均应在编制资源计划时考虑。在编制资源计划时,必须逐项审查计划的资源在

19、编制资源计划时,必须逐项审查计划的资源需求能否满足项目的各项工作和项目目标的实需求能否满足项目的各项工作和项目目标的实现,对疏漏的资源需求要及时补充。现,对疏漏的资源需求要及时补充。4)项目资源库描述项目资源库描述说明了在项目实施过程中具体有哪些资源可以说明了在项目实施过程中具体有哪些资源可以利用,包括人员、设备、材料、资金等。利用,包括人员、设备、材料、资金等。在制定项目资源技术时,必须从项目资源库中在制定项目资源技术时,必须从项目资源库中了解这些相关的资源供给信息,分析现有资源了解这些相关的资源供给信息,分析现有资源储备能否满足项目实施的需要。储备能否满足项目实施的需要。软件项目管理161

20、62. 2. 资源计划的工具与方法资源计划的工具与方法5)组织策略组织策略指有关人员的招聘,设备或材料的租赁或采购策指有关人员的招聘,设备或材料的租赁或采购策略等。略等。1)专家判断法专家判断法由项目成本管理专家根据以往类似项目的历史由项目成本管理专家根据以往类似项目的历史信息和对当前项目的理解,经过严密思考计算,信息和对当前项目的理解,经过严密思考计算,进行合理预测,制定项目资源计划。进行合理预测,制定项目资源计划。这样的专家应具有专业知识和受过专门训练,这样的专家应具有专业知识和受过专门训练,可以从许多途径获得:可以从许多途径获得:软件项目管理1717项目组织中的其他部门项目组织中的其他部

21、门咨询机构咨询机构专业技术协会专业技术协会专家、顾问专家、顾问2)定额法定额法当项目实施所需要的某些资源(包括人力、设备、当项目实施所需要的某些资源(包括人力、设备、材料等)有材料等)有国家或行业的统一标准定额国家或行业的统一标准定额,或有,或有权权威部门制定的规则威部门制定的规则时,应以这些统一的定额或规时,应以这些统一的定额或规则为标准来制定项目资源需求计划。则为标准来制定项目资源需求计划。3)资料统计法资料统计法参考以往类似项目的历史统计数据资料,计算参考以往类似项目的历史统计数据资料,计算软件项目管理1818并确定项目资源需求计划。并确定项目资源需求计划。它要求所采用的历史信息应与当前

22、项目有可比它要求所采用的历史信息应与当前项目有可比性,并信息足够详细,有很强的可操作性。适性,并信息足够详细,有很强的可操作性。适合于创新性不强的项目。合于创新性不强的项目。4)利用工作分解结构利用工作分解结构根据工作分解结构所列出的项目全部工作的一根据工作分解结构所列出的项目全部工作的一览表,确定出览表,确定出每一项任务所需的各种资源每一项任务所需的各种资源,再,再将其将其汇总汇总,编制出项目资源需求计划。这是最,编制出项目资源需求计划。这是最可行的一个方法。可行的一个方法。5)资源均衡法资源均衡法这是平衡各种资源在项目各个时期投入的一种这是平衡各种资源在项目各个时期投入的一种常用方法。在保

23、证项目完工时间不变的情况下常用方法。在保证项目完工时间不变的情况下软件项目管理19193.3. 项目资源计划编制的输出结果项目资源计划编制的输出结果可以调整资源的需求情况,控制资源投入时间,可以调整资源的需求情况,控制资源投入时间,尽可能均衡使用各种资源来满足项目要求的完工尽可能均衡使用各种资源来满足项目要求的完工进度。进度。编制项目资源计划的结果是编制出项目资源需编制项目资源计划的结果是编制出项目资源需求计划,对项目所需的各种资源的需求情况和求计划,对项目所需的各种资源的需求情况和使用计划给出详细的描述。使用计划给出详细的描述。项目资源的需求安排应当分解落实到具体的工项目资源的需求安排应当分

24、解落实到具体的工作任务上。作任务上。 软件项目管理20205.4 5.4 成本估算成本估算项目成本估算是项目成本管理的核心内容。通项目成本估算是项目成本管理的核心内容。通过成本估算,分析并确定项目的估算成本,以过成本估算,分析并确定项目的估算成本,以此为基础进行项目的成本预算,进而展开对项此为基础进行项目的成本预算,进而展开对项目进行成本控制等一系列管理活动。目进行成本控制等一系列管理活动。1. 1. 项目成本估算的概念项目成本估算的概念项目成本估算是指为了实现项目目标,完成项目成本估算是指为了实现项目目标,完成项目的各项活动,根据项目资源计划中确定项目的各项活动,根据项目资源计划中确定的各种

25、资源需求(人员、设备、材料等)和的各种资源需求(人员、设备、材料等)和市场上各种资源的价格,对完成项目所必需市场上各种资源的价格,对完成项目所必需的各种资源的费用作出近似的估算。的各种资源的费用作出近似的估算。软件项目管理2121简言之,项目成本就是项目形成全过程所耗用简言之,项目成本就是项目形成全过程所耗用的各种费用的总和。的各种费用的总和。v项目定义与决策成本项目定义与决策成本(可行性研究成本)(可行性研究成本)v项目设计成本项目设计成本(项目设计所花费成本)(项目设计所花费成本)v项目获得成本项目获得成本(为获取外部资源,如广告、(为获取外部资源,如广告、招投标、询价等所花费成本)招投标

26、、询价等所花费成本)v项目实施成本项目实施成本(项目实施过程所花费的硬(项目实施过程所花费的硬/软软件设施与支持平台、人工、咨询成本以及一件设施与支持平台、人工、咨询成本以及一定数量的意外成本的总和)。定数量的意外成本的总和)。项目成本的耗费与项目所耗用资源的数量、质项目成本的耗费与项目所耗用资源的数量、质量和价格有关,与项目工期的长短有关,与项量和价格有关,与项目工期的长短有关,与项目结果的质量有关,与项目范围的广度目结果的质量有关,与项目范围的广度深度深度软件项目管理2222有关。有关。项目成本估算的步骤:项目成本估算的步骤:1)识别与分析项目成本的构成要素。如人工费、识别与分析项目成本的

27、构成要素。如人工费、咨询费、设备费、软件费等。咨询费、设备费、软件费等。2)根据已识别的成本构成要素,估算每一个要根据已识别的成本构成要素,估算每一个要素的成本。素的成本。3)分析成本估算的结果,找出可以互相补偿的分析成本估算的结果,找出可以互相补偿的成本,协调各种成本之间的比例关系。成本,协调各种成本之间的比例关系。例如,设计质量的提高可能会大量减少项目实施例如,设计质量的提高可能会大量减少项目实施阶段的成本。因此,项目设计成本增加会带来项阶段的成本。因此,项目设计成本增加会带来项目实施成本的降低,两种成本之间存在互相补偿目实施成本的降低,两种成本之间存在互相补偿的关系。的关系。软件项目管理

28、23232.2. 项目成本估算的依据项目成本估算的依据因此,在项目成本估算过程中,要积极寻找这种因此,在项目成本估算过程中,要积极寻找这种有补偿效应的成本,仔细研究成本之间的这种此有补偿效应的成本,仔细研究成本之间的这种此消彼长的关系和量值对项目总成本造成的影响,消彼长的关系和量值对项目总成本造成的影响,努力使项目预期收益最大化。努力使项目预期收益最大化。成本估算要以资源计划中所列的项目资源需求成本估算要以资源计划中所列的项目资源需求和项目组织对这些资源的预计价格为基础。和项目组织对这些资源的预计价格为基础。项目成本估算的依据为:项目成本估算的依据为:1)工作分解结构工作分解结构2)资源需求计

29、划资源需求计划:资源数量和质量标准:资源数量和质量标准3)资源价格资源价格:市场价格或历史价格:市场价格或历史价格软件项目管理24243.3. 项目成本估算的方法项目成本估算的方法4)项目持续时间项目持续时间:时间价值:时间价值5)经济形势经济形势:通货膨胀和利率:通货膨胀和利率可以根据以往项目所积累的历史信息为基础进可以根据以往项目所积累的历史信息为基础进行项目成本估算。行项目成本估算。但项目之间总是存在一定差异,很少有简单重但项目之间总是存在一定差异,很少有简单重复,因此以往项目的成本只能作参考。复,因此以往项目的成本只能作参考。通常可以采用以下方法进行成本估算。通常可以采用以下方法进行成

30、本估算。软件项目管理25251)类比估算法类比估算法项目管理人员收集以往类似项目的有关历史项目管理人员收集以往类似项目的有关历史信息,包括规模(代码行数或功能点数)、信息,包括规模(代码行数或功能点数)、费用、人力、时间、物价等;费用、人力、时间、物价等;会同有关成本估算专家对当前项目的总成本会同有关成本估算专家对当前项目的总成本进行估算;进行估算;将估算结果按照项目的工作分解结构的层次将估算结果按照项目的工作分解结构的层次传递给直接下层的管理人员,由他们对自己传递给直接下层的管理人员,由他们对自己负责的工作和活动的成本进行估算;负责的工作和活动的成本进行估算;继续向下一层管理人员传递他们的估

31、算结果,继续向下一层管理人员传递他们的估算结果,直到项目的基层人员。直到项目的基层人员。软件项目管理2626v这种方法又称这种方法又称“自顶向下估算法自顶向下估算法”,其主要思,其主要思想是想是从项目的整体出发,首先进行类推,再做从项目的整体出发,首先进行类推,再做分解分解。v估算人员根据以前已完成的类似项目所消耗的估算人员根据以前已完成的类似项目所消耗的总成本总成本(总工作量总工作量),推算当前项目的总成本,推算当前项目的总成本(总工作量),然后按比例将它分配到各工作(总工作量),然后按比例将它分配到各工作分解单元中去,再来检验它是否能满足要求。分解单元中去,再来检验它是否能满足要求。分解比

32、例参看下表。分解比例参看下表。v优点是简单易行,花费少。当项目详细资料难优点是简单易行,花费少。当项目详细资料难以得到时,这种方法行之有效。以得到时,这种方法行之有效。v缺点是类似项目很难找,估算准确度较差。对缺点是类似项目很难找,估算准确度较差。对项目中的特殊困难估计不足。项目中的特殊困难估计不足。软件项目管理2727软件项目管理28282)工料列表法工料列表法基层管理人员计算出每个工作单元的生产成基层管理人员计算出每个工作单元的生产成本;本;将各个工作单元的生产成本自下向上逐级累将各个工作单元的生产成本自下向上逐级累加,汇总到项目的高层管理者;加,汇总到项目的高层管理者;项目的高层管理人员

33、计算出项目的总成本。项目的高层管理人员计算出项目的总成本。v这种估算方法又称这种估算方法又称“自底向上估算法自底向上估算法”。依。依据项目的工作分解结构,先据项目的工作分解结构,先“分解分解”,再对,再对每个分解后的工作单元采取每个分解后的工作单元采取“类比类比”或其他或其他方法进行估算,最后方法进行估算,最后汇总汇总。v优点是结果十分详细,准确性高。优点是结果十分详细,准确性高。软件项目管理2929v缺点是实际操作非常耗时,费用较高。而且缺点是实际操作非常耗时,费用较高。而且通常估算值缺少各项子任务之间相互联系所通常估算值缺少各项子任务之间相互联系所需要的工作量,还缺少许多与项目实施有关需要

34、的工作量,还缺少许多与项目实施有关的管理工作量的管理工作量.v从心理学角度,通常会陷于一种恶圈:进行从心理学角度,通常会陷于一种恶圈:进行第一轮估算的基层管理人员会认为上级管理第一轮估算的基层管理人员会认为上级管理人员会以一定比例削减他们的成本估算,他人员会以一定比例削减他们的成本估算,他们会过高估算自己工作的资源需求。基于这们会过高估算自己工作的资源需求。基于这种情况,上层管理人员真的会认为应该削减种情况,上层管理人员真的会认为应该削减估算的成本,这又恰恰证实了基层管理人员估算的成本,这又恰恰证实了基层管理人员的怀疑。的怀疑。软件项目管理30303)参数模型法参数模型法v利用项目的一些特性参

35、数(如代码行或功能利用项目的一些特性参数(如代码行或功能点)建立数学模型来估算项目成本。点)建立数学模型来估算项目成本。v这种方法有一组这种方法有一组项目成本估算关系式项目成本估算关系式,用它,用它们对项目总成本作出近似估算。们对项目总成本作出近似估算。v这种估算只这种估算只针对影响项目总成本程度最大的针对影响项目总成本程度最大的成本变量成本变量进行估算,不考虑一些细节性成本进行估算,不考虑一些细节性成本因素。因素。v例如,考虑建立一个局域网系统的项目成本,例如,考虑建立一个局域网系统的项目成本,先估算建造一个标准节点的成本作为系数因先估算建造一个标准节点的成本作为系数因子,以标准节点数作为变

36、量因子,两者相乘,子,以标准节点数作为变量因子,两者相乘,得到项目的总成本。得到项目的总成本。软件项目管理3131v优点是用这种方法估算项目成本的速度很快,优点是用这种方法估算项目成本的速度很快,只需要一小部分信息。只需要一小部分信息。v缺点是不同的估算模型估算出的结果差异较缺点是不同的估算模型估算出的结果差异较大,因此,选择合适的模型以保证估算结果大,因此,选择合适的模型以保证估算结果的准确性至关重要。的准确性至关重要。v为保证项目成本模型的适用性,在建立成本为保证项目成本模型的适用性,在建立成本模型时,要注意:模型时,要注意:保证建立参数模型时所依据的历史信息的保证建立参数模型时所依据的历

37、史信息的准确性;准确性;模型中的一些重要参数必须量化处理。模型中的一些重要参数必须量化处理。根据项目的实际情况,对参数模型可按适根据项目的实际情况,对参数模型可按适当的比例调整。当的比例调整。软件项目管理32324.4. 项目成本估算的结果项目成本估算的结果4)利用项目成本管理软件利用项目成本管理软件v利用项目成本管理软件,可以通过直接输入利用项目成本管理软件,可以通过直接输入与项目成本有关的数据,或自定义项目成本与项目成本有关的数据,或自定义项目成本函数,计算出项目成本的估算结果。函数,计算出项目成本的估算结果。v目前几乎所有大型项目的成本估算,都是利目前几乎所有大型项目的成本估算,都是利用

38、这类项目成本估算软件计算得到的。用这类项目成本估算软件计算得到的。1)项目成本估算结果文件项目成本估算结果文件它以摘要或详细的形式描述了:它以摘要或详细的形式描述了:实施项目必须的所有资源(人员、资金、硬实施项目必须的所有资源(人员、资金、硬/软件工具、可复用构件等),以及这些软件工具、可复用构件等),以及这些软件项目管理3333 资源的数量、质量标准、成本。资源的数量、质量标准、成本。为应付项目可能遇到的意外事件(通货膨胀、为应付项目可能遇到的意外事件(通货膨胀、意外事故、原材料失窃等)所支付的意外事故、原材料失窃等)所支付的具有不具有不可预见性的意外成本可预见性的意外成本。成本估算结果通常

39、用货币量单位成本估算结果通常用货币量单位“元元”表示,表示,但有时为了管理方便,用工作量但有时为了管理方便,用工作量“人日人日”或或“人月人月”来表示。来表示。相关支持性细节文件和结果相关支持性细节文件和结果它对项目成本估算的依据进行详细说明。它对项目成本估算的依据进行详细说明。项目工作范围说明。项目工作范围说明。项目成本估算的基础和依据项目成本估算的基础和依据(采用的估算(采用的估算软件项目管理3434方法、参考的国家有关规定、各种中间计算方法、参考的国家有关规定、各种中间计算的结果等)。的结果等)。项目成本估算的假设项目成本估算的假设(项目所需资源价格水(项目所需资源价格水平的估计、项目资

40、源消耗定额的估计、项目平的估计、项目资源消耗定额的估计、项目实施人员的生产率等)。实施人员的生产率等)。项目成本估算结果的误差范围项目成本估算结果的误差范围。3)项目成本管理计划项目成本管理计划v通常,在项目管理中用通常,在项目管理中用成本目标成本目标衡量项目绩衡量项目绩效。但在项目开始后,会发生各种无法预见效。但在项目开始后,会发生各种无法预见的情况,随时可能危及项目成本目标的实现。的情况,随时可能危及项目成本目标的实现。例如,人员流失、设备购进渠道不通、支持例如,人员流失、设备购进渠道不通、支持工具有缺陷等。工具有缺陷等。软件项目管理3535v为实现在成本目标范围内完成项目可交付成为实现在

41、成本目标范围内完成项目可交付成果,必须对如何管理和控制项目成本变动的果,必须对如何管理和控制项目成本变动的方案进行事先安排,即方案进行事先安排,即“有备无患有备无患”。v管理计划的主要内容:管理计划的主要内容:识别并分析可能出现的各种意外事件;识别并分析可能出现的各种意外事件;预测可能会发生损失的概率和程度;预测可能会发生损失的概率和程度;说明如何对费用偏差进行管理和如何对意说明如何对费用偏差进行管理和如何对意外成本的使用进行管理;外成本的使用进行管理;提出计划和解决方案。提出计划和解决方案。软件项目管理36365.55.5 软件项目的成本估算软件项目的成本估算软件项目管理过程开始于项目计划。

42、在做项目软件项目管理过程开始于项目计划。在做项目计划时,第一项活动就是估算。计划时,第一项活动就是估算。常用的估算技术是对常用的估算技术是对需要的人力需要的人力(以人月为单(以人月为单位)、位)、项目持续时间项目持续时间(以年份或月份为单位)、(以年份或月份为单位)、成本成本(以元为单位)做出估算。(以元为单位)做出估算。这种估算大多是这种估算大多是利用以往类似项目的花费利用以往类似项目的花费做为做为参考而做出的。参考而做出的。如果新项目与以前的一个项目在大小上和功能如果新项目与以前的一个项目在大小上和功能上十分类似,则新项目需要工作量、开发持续上十分类似,则新项目需要工作量、开发持续时间、成

43、本大致与那个老项目相同。时间、成本大致与那个老项目相同。软件项目管理3737假使项目背景完全生疏,只凭过去的经验做出假使项目背景完全生疏,只凭过去的经验做出估算可能就不够了。估算可能就不够了。现在已有了许多用于软件开发的估算技术。其现在已有了许多用于软件开发的估算技术。其共同特点是:共同特点是:事先建立软件范围;事先建立软件范围;以软件度量(以往的度量)为基础,以做出以软件度量(以往的度量)为基础,以做出估算;估算;项目被分解为可单独进行估算的小块。项目被分解为可单独进行估算的小块。软件项目管理38381. 1. 软件的工作范围软件的工作范围软件的工作范围即软件范围。包括:软件的工作范围即软件

44、范围。包括:功能功能、性性能能、限制限制、接口接口和和可靠性可靠性。估算开始时应对估算开始时应对软件功能软件功能进行评价,对其进行进行评价,对其进行适当的细化以便提供更详细的细节。由于成本适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常采用某种和进度的估算都与功能有关,因此常采用某种程度的功能分解。程度的功能分解。性能性能的考虑包括的考虑包括处理时间处理时间和和响应时间响应时间的需求。的需求。限制限制则标识则标识产品成本产品成本、外部硬件外部硬件、可用存储可用存储或或其他其他现有系统对软件的限制现有系统对软件的限制。功能功能、性能性能和和限制限制必须在一起进行评价。必须

45、在一起进行评价。软件项目管理3939当性能要求不同时,为实现同样的功能,开发工当性能要求不同时,为实现同样的功能,开发工作量可能相差一个数量级。作量可能相差一个数量级。还要叙述某些质量因素(例如,给出的算法是否还要叙述某些质量因素(例如,给出的算法是否容易理解等)。容易理解等)。软件与其它系统元素是相互作用的。要考虑每个软件与其它系统元素是相互作用的。要考虑每个接口接口的性质和复杂性,以确定对开发资源、成本的性质和复杂性,以确定对开发资源、成本和进度的影响。接口的概念可解释为:和进度的影响。接口的概念可解释为:v运行软件的硬件运行软件的硬件 (如处理机与外设如处理机与外设) 及及间接受间接受软

46、件控制的设备软件控制的设备 (如机器、显示器如机器、显示器);v必须与新软件连接的现有的软件必须与新软件连接的现有的软件 (如数据库存如数据库存取例程、子程序包、操作系统取例程、子程序包、操作系统);软件项目管理40402. 2. 软件开发中的资源软件开发中的资源软件开发所需的资源有软件开发所需的资源有:v开发环境开发环境 硬件工具及软件工具硬件工具及软件工具 提供支提供支持开发的基础持开发的基础.v可复用软件构件可复用软件构件 软件构造块软件构造块.v人员人员 主要资源主要资源v通过终端或其他输入输出设备通过终端或其他输入输出设备使用该软件使用该软件的人的人;v该软件运行前后的该软件运行前后

47、的一系列操作过程一系列操作过程。对于每一种情况,都必须清楚地了解通过接口对于每一种情况,都必须清楚地了解通过接口的信息转换。的信息转换。软件项目管理4141人员人员可复用构件可复用构件硬件硬件/软件工具软件工具人员人员 需要的技能需要的技能, 可用性可用性 开始时间开始时间, 工作期限工作期限硬件硬件 开发系统开发系统, 目标机器目标机器, 新系统其他硬件部分新系统其他硬件部分软件软件 支持软件支持软件可用性可用性,投入时间投入时间,持续时间持续时间通常,对每一种资源,应说明以下四个特性:通常,对每一种资源,应说明以下四个特性: 资源的描述资源的描述; 资源的有效性说明资源的有效性说明; 资源

48、在何时开始需要资源在何时开始需要; 使用资源的持续时间。使用资源的持续时间。最后两个特性统称为最后两个特性统称为时间窗口时间窗口。软件项目管理42421)1) 人力资源人力资源在考虑各种软件开发资源时,人是最重要的资源。在考虑各种软件开发资源时,人是最重要的资源。在安排开发活动时必须考虑人员的技术水平、专在安排开发活动时必须考虑人员的技术水平、专业、人数、以及在开发过程各阶段中对各种人员业、人数、以及在开发过程各阶段中对各种人员的需要。的需要。计划人员首先估算范围并选择为完成开发工作所计划人员首先估算范围并选择为完成开发工作所需要的技能,然后在组织(如经理、系统分析员、需要的技能,然后在组织(

49、如经理、系统分析员、软件设计师等)和专业(如网络、数据库、系统软件设计师等)和专业(如网络、数据库、系统体系结构)两方面做出安排。体系结构)两方面做出安排。对于相对比较小的项目(一个人年或更少),一对于相对比较小的项目(一个人年或更少),一个人就能完成所有软件开发工作,可在必要时咨个人就能完成所有软件开发工作,可在必要时咨询专家。询专家。软件项目管理4343对一些规模较大的项目,在整个项目生命周期中,对一些规模较大的项目,在整个项目生命周期中,各种人员参与情况不同。下面是各类不同人员随各种人员参与情况不同。下面是各类不同人员随开发进展在各个阶段参与情况的曲线。开发进展在各个阶段参与情况的曲线。

50、管理人员管理人员初级技术人员初级技术人员高级技术人员高级技术人员高高人人员员参参与与程程度度计计 划划需需求求分分析析概概要要设设计计详详细细分分析析程程序序编编码码单单元元测测试试集集成成测测试试确确认认测测试试软件项目管理44442) 2) 可复用构件库可复用构件库为了促成软件的复用,以提高软件生产率和产品为了促成软件的复用,以提高软件生产率和产品质量,可建立可复用的软件构件库。质量,可建立可复用的软件构件库。Bennatan建议将软件资源分为建议将软件资源分为 4 类:类:成品构件成品构件:由第三方厂商开发或在以前的项:由第三方厂商开发或在以前的项目中开发,经过严格测试确保无误的软件,目

51、中开发,经过严格测试确保无误的软件,通常称为通常称为COTS (commercial off-the-shelf)。具有完全经验的构件具有完全经验的构件:现有的为以前类似的:现有的为以前类似的项目建立的项目建立的规格说明规格说明、设计设计、代码代码或或测试数测试数据据。由于当前项目的成员在这些构件所代表。由于当前项目的成员在这些构件所代表的应用领域中有丰富的经验,应用这类有完的应用领域中有丰富的经验,应用这类有完全经验的构件时风险较小。全经验的构件时风险较小。软件项目管理4545具有部分经验的构件具有部分经验的构件:现有的为以前项目建:现有的为以前项目建立的立的规格说明规格说明、设计设计、代码

52、代码或或测试数据测试数据。这。这些项目与当前的项目相关,但需做实质上的些项目与当前的项目相关,但需做实质上的修改。由于当前项目的成员在这些构件所代修改。由于当前项目的成员在这些构件所代表的应用领域中仅有有限的经验,因此对于表的应用领域中仅有有限的经验,因此对于这类有部分经验的构件进行修改会有相当程这类有部分经验的构件进行修改会有相当程度的风险。度的风险。新构件新构件:项目组为满足当前项目的特殊需要:项目组为满足当前项目的特殊需要而必须专门开发的软件构件而必须专门开发的软件构件。最好能尽早说明软件的资源需求,这样才能进行最好能尽早说明软件的资源需求,这样才能进行软件可选方案的技术评估,并及时获得

53、所需的构软件可选方案的技术评估,并及时获得所需的构件。件。软件项目管理46463) 3) 硬件资源硬件资源硬件是作为软件项目的一种工具而投入的。硬件是作为软件项目的一种工具而投入的。v宿主机(宿主机(Host) 软件开发时使用的计算机软件开发时使用的计算机及外围设备;及外围设备;v目标机(目标机(Target) 运行已开发成功软件的运行已开发成功软件的计算机及外围设备;计算机及外围设备;v其他硬件设备其他硬件设备 专用软件开发时需要的特殊专用软件开发时需要的特殊硬件资源;硬件资源;宿主机宿主机和和必要的软件工具必要的软件工具构成构成软件开发环境软件开发环境。这样的开发环境能够支持多种用户的需要

54、,且这样的开发环境能够支持多种用户的需要,且能保持大量的由软件开发组成员共享的信息。能保持大量的由软件开发组成员共享的信息。宿主机与目标机可以是同一种机型。宿主机与目标机可以是同一种机型。软件项目管理47474) 4) 软件资源软件资源软件人员在软件开发过程中使用了许多软件工具。软件人员在软件开发过程中使用了许多软件工具。将这些软件工具集成就叫做计算机辅助软件工程将这些软件工具集成就叫做计算机辅助软件工程 (CASE)。业务系统计划工具集业务系统计划工具集项目管理工具集项目管理工具集支持工具支持工具 文档生成工具、网络系统软件、文档生成工具、网络系统软件、数据库、电子邮件、通报板,以及配置管理

55、数据库、电子邮件、通报板,以及配置管理工具。工具。分析和设计工具分析和设计工具编程工具编程工具集成和测试工具集成和测试工具软件项目管理4848原型化和模拟工具原型化和模拟工具维护工具维护工具框架工具框架工具 这些工具能够提供建立集成项目支这些工具能够提供建立集成项目支撑环境(撑环境(IPSE)的框架。)的框架。3. 3. 软件度量软件度量软件项目估算的依据是对以往项目进行度量所得软件项目估算的依据是对以往项目进行度量所得到的有关工作量和时间的数据。到的有关工作量和时间的数据。只要事先建立只要事先建立特定的度量规程特定的度量规程,很容易做到,很容易做到直接直接度量度量软件所需要的软件所需要的成本

56、成本和和工作量工作量、产生的代码行产生的代码行数数等。等。软件项目度量分为软件项目度量分为面向规模面向规模和和面向功能面向功能度量:度量:软件项目管理49491) 1) 面向规模的度量面向规模的度量面向规模的度量是对软件产品和软件开发过程的面向规模的度量是对软件产品和软件开发过程的直接度量。直接度量。可以建立一个面向规模的数据表格来记录项目的可以建立一个面向规模的数据表格来记录项目的某些信息。该表格列出了在过去几年完成的每一某些信息。该表格列出了在过去几年完成的每一个软件开发项目和关于这些项目的相应面向规模个软件开发项目和关于这些项目的相应面向规模的数据。的数据。例如,项目例如,项目aaa-0

57、1的的规模规模为为 12.1 KLOC (千代码千代码行行),工作量工作量用了用了 24 个人月,个人月,成本成本为为168,000元,元,文档文档为为 365 页,在交付用户使用后第一年内发现页,在交付用户使用后第一年内发现了了 29 个错误,有个错误,有 3 个人个人参加了项目参加了项目 aaa-01 的软的软件开发工作。件开发工作。软件项目管理5050面向规模的数据表格面向规模的数据表格项目项目 工作量工作量 千元千元 KLOC 文档页数文档页数 错误数错误数 人数人数aaa-01 24 168 12.1 365 29 3ccc-04 62 440 27.2 1224 86 5fff-0

58、3 43 314 20.2 1050 64 6 软件项目管理52522) 2) 面向功能的度量面向功能的度量面向功能的软件度量是对软件和软件开发过程的面向功能的软件度量是对软件和软件开发过程的间接度量。间接度量。面向功能度量主要考虑程序的面向功能度量主要考虑程序的“功能性功能性”和和“实实用性用性”,而不是对,而不是对 LOC计数。计数。该度量是一种叫做该度量是一种叫做功能点方法功能点方法的生产率度量法,的生产率度量法,利用软件信息域中的一些计数和软件复杂性估计利用软件信息域中的一些计数和软件复杂性估计的经验关系式而导出的经验关系式而导出功能点功能点 FP。软件项目管理5353面向功能的数据表

59、格面向功能的数据表格信息域参数信息域参数用户输入数用户输入数 3 4 6 =用户输出数用户输出数 4 5 7 =用户查询数用户查询数 3 4 6 =文文 件件 数数 7 10 15 = 外部接口数外部接口数 5 7 10 =总总 计计 数数计数计数 加加 权权 因因 数数简单简单 中间中间 复杂复杂 加权计数加权计数软件项目管理5454功能点计算功能点计算确定五个信息域的特征,并在表格中相应位置确定五个信息域的特征,并在表格中相应位置给出计数。给出计数。v用户输入数用户输入数:各个用户输入是面向不同应用:各个用户输入是面向不同应用的输入数据。的输入数据。v用户输出数用户输出数:各个用户输出是面

60、向应用的输:各个用户输出是面向应用的输出信息,包括报告,屏幕信息,错误信息等。出信息,包括报告,屏幕信息,错误信息等。在报告中的各个数据项不应再分别计数。在报告中的各个数据项不应再分别计数。v用户查询数用户查询数:查询是一种联机的交互操作,:查询是一种联机的交互操作,每次询问每次询问/响应具备应计数。响应具备应计数。软件项目管理5555v文件数文件数:每一个逻辑的主文件(即数据的逻辑:每一个逻辑的主文件(即数据的逻辑组合)都应计数。它可以是一个大数据库的一组合)都应计数。它可以是一个大数据库的一部分,也可以是一个单独的文件。部分,也可以是一个单独的文件。v外部接口数外部接口数:与系统中其他设备

61、(如磁盘文件):与系统中其他设备(如磁盘文件)通过外部接口读写信息次数均应计数。通过外部接口读写信息次数均应计数。一旦收集到上述数据,下一步确定与每一个计数一旦收集到上述数据,下一步确定与每一个计数相关的复杂性值(加权因子)。相关的复杂性值(加权因子)。一个信息域是简单、平均还是复杂,由使用功能一个信息域是简单、平均还是复杂,由使用功能点方法的机构自行确定,从而计算出加权计数。点方法的机构自行确定,从而计算出加权计数。计算功能点,使用如下的关系式:计算功能点,使用如下的关系式: FP 总计数总计数( 0.650.01SUM( Fi ) )总计数是所有加权计数项的和;总计数是所有加权计数项的和;

62、软件项目管理5656SUM( Fi ) 是求和函数是求和函数: Fi(i1.14)是复杂性校)是复杂性校正值,它们通过逐一回答如下提问来确定。正值,它们通过逐一回答如下提问来确定。F1 系统是否需要系统是否需要可靠的备份可靠的备份和和恢复恢复?F2 是否需要是否需要数据通信数据通信?F3 是否有是否有分布处理的功能分布处理的功能?F4 是否是否性能成为关键性能成为关键?F5 系统是否系统是否运行在现存的高度实用化的操作环运行在现存的高度实用化的操作环 境中境中?F6 系统是否需要系统是否需要联机数据项联机数据项?F7 联机数据项是否需要联机数据项是否需要建立多重窗口显示和切建立多重窗口显示和切

63、 换换,以完成处理输入处理。以完成处理输入处理。软件项目管理5757F8 主文件是否主文件是否联机更新联机更新?F9 输入输入、输出输出、文件文件、查询查询是否复杂?是否复杂?F10 内部处理过程内部处理过程是否复杂?是否复杂?F11 是否需要将是否需要将程序代码程序代码设计成可复用的?设计成可复用的?F12 设计中是否包括了设计中是否包括了转移转移和和安装安装?F13 系统是否设计成可以系统是否设计成可以重复安装在不同机构中重复安装在不同机构中? F14 系统是否设计成系统是否设计成易修改易修改和和易使用易使用?每个问题的回答按每个问题的回答按复杂性校正复杂性校正值给出值给出(05)。复杂性

64、校正值复杂性校正值 Fi 的取值的取值0.5: = 0 没有影响没有影响 = 1 偶然的偶然的 = 2 适中的适中的 = 3 普通的普通的 = 4 重要的重要的 = 5 极重要的极重要的软件项目管理5858一旦计算出一旦计算出功能点功能点,就可仿照,就可仿照LOC的方式度量的方式度量软件的生产率、质量和其它属性:软件的生产率、质量和其它属性:v生产率生产率 FPPM(人月)(人月)v质量质量 错误数错误数FPv成本成本 元元FPv文档文档 文档页数文档页数FP功能点度量功能点度量是为了商用信息系统应用而设计的。是为了商用信息系统应用而设计的。软件项目管理5959特征点度量(特征点度量(Feat

65、ure Points)可以用于系统和工)可以用于系统和工程软件应用程软件应用特征点度量适合于算法复杂性高的应用。而实时特征点度量适合于算法复杂性高的应用。而实时处理、过程控制、嵌入式软件应用的算法复杂性处理、过程控制、嵌入式软件应用的算法复杂性都偏高,因此适合于特征点度量。都偏高,因此适合于特征点度量。为了计算特征点,可以象为了计算特征点,可以象功能点功能点计算那样,对计算那样,对信信息域值息域值进行计数和加权。此外,特征点度量要对进行计数和加权。此外,特征点度量要对一个新的软件特征一个新的软件特征 “算法算法” 进行计数。进行计数。计算特征点可使用一个计算表格。对于每一个度计算特征点可使用一

66、个计算表格。对于每一个度量参数只使用一个权值,并且使用量参数只使用一个权值,并且使用 FP总计数总计数( 0.650.01SUM( Fi ) ) 来计算总的特征点值。来计算总的特征点值。软件项目管理6060特征点度量计算表格特征点度量计算表格度量参数度量参数 计数计数 权值权值 加权计数加权计数用户输入数用户输入数 4 =用户输出数用户输出数 5 =用户查询数用户查询数 4 =文文 件件 数数 7 = 外部接口数外部接口数 7 =算算 法法 3 =总总 计计 数数软件项目管理62624. 4. 软件项目估算软件项目估算在估算时往往存在某些不确定性,使得项目管理在估算时往往存在某些不确定性,使得

67、项目管理者无法正常进行管理而导致产品迟迟不能完成。者无法正常进行管理而导致产品迟迟不能完成。项目复杂性项目复杂性对于增加软件计划的不确定性影响很对于增加软件计划的不确定性影响很大。复杂性越高,估算的风险就越高。大。复杂性越高,估算的风险就越高。项目规模项目规模对于软件估算的精确性和功效影响也比对于软件估算的精确性和功效影响也比较大。随着软件规模的扩大,问题分解会更加困较大。随着软件规模的扩大,问题分解会更加困难。项目的规模越大,开发工作量越大,估算的难。项目的规模越大,开发工作量越大,估算的风险越高。风险越高。项目的结构化程度项目的结构化程度也影响项目估算的风险。随着也影响项目估算的风险。随着

68、结构化程度的提高,进行精确估算的能力就能提结构化程度的提高,进行精确估算的能力就能提高,而风险将减少。高,而风险将减少。软件项目管理6363历史信息的有效性历史信息的有效性也影响估算的风险。对以往项也影响估算的风险。对以往项目进行综合度量,可借用来比较准确地进行估算,目进行综合度量,可借用来比较准确地进行估算,安排进度以避免重走过去的弯路,而总的风险也安排进度以避免重走过去的弯路,而总的风险也减少了。减少了。如果对软件项目的如果对软件项目的工作范围工作范围还不十分清楚,或者还不十分清楚,或者用户的用户的要求经常变更要求经常变更,都会导致对软件项目所需,都会导致对软件项目所需资源、成本、进度的估

69、算频频变动,增加估算的资源、成本、进度的估算频频变动,增加估算的风险。风险。计划人员应当要求在软件的规格说明中给出完备计划人员应当要求在软件的规格说明中给出完备的功能、性能、接口的定义。的功能、性能、接口的定义。软件项目的估算能够通过一系列系统化的步骤,软件项目的估算能够通过一系列系统化的步骤,在可接受的风险范围内提供估算结果。在可接受的风险范围内提供估算结果。软件项目管理6464估算对风险的影响估算对风险的影响低风险低风险区区项目复杂性项目复杂性项目结构化、规约项目结构化、规约的不确定程度的不确定程度项目工作量大小项目工作量大小软件项目管理65651)1) 使用使用LOCLOC和和FPFP估

70、算估算在软件项目估算中,在两个方面使用了在软件项目估算中,在两个方面使用了LOC和和FP数据:数据:v把把LOC和和FP数据当做一个估算变量,用于量数据当做一个估算变量,用于量度软件每一个元素的规模。度软件每一个元素的规模。vLOC 和和 FP 数据作为从过去项目中收集到的数据作为从过去项目中收集到的基线数据,与其它估算变量联合使用,进行基线数据,与其它估算变量联合使用,进行成本和工作量的估算。成本和工作量的估算。LOC和和FP的共性在于的共性在于: v给出一个有界的软件范围的叙述给出一个有界的软件范围的叙述v由此叙述把软件分解成一些小的可分别独由此叙述把软件分解成一些小的可分别独软件项目管理

71、6666立进行估算的子功能立进行估算的子功能v对每一个子功能估算对每一个子功能估算LOC或或FPv把基线生产率度量把基线生产率度量(如如 LOC/PM 或或 FP/PM) 用用做特定的估算变量,导出子功能的成本或工作做特定的估算变量,导出子功能的成本或工作量量v综合子功能的估算得到整个项目的总估算。综合子功能的估算得到整个项目的总估算。用用 LOC 做为估算变量时,必须进行做为估算变量时,必须进行功能分解功能分解, 且需要达到很详细的程度。而估算且需要达到很详细的程度。而估算 FP 时需要的时需要的数据是宏观的量,当把数据是宏观的量,当把 FP 当做估算变量时不需当做估算变量时不需分解得很详细

72、。分解得很详细。软件项目管理6868所有子功能的所有子功能的总估算变量值总估算变量值除以相应于该估算变除以相应于该估算变量的量的平均生产率度量平均生产率度量得到项目的得到项目的总工作量总工作量。例如,若假定总的例如,若假定总的 FP 估算值是估算值是 310,基于过去,基于过去项目的平均项目的平均 FP 生产率是生产率是 5.5FPPM,则项目的,则项目的总工作量是:总工作量是: 工作量工作量 3105.5 56 PM作为作为LOC和和FP估算的实例,考察一估算的实例,考察一 个为个为CAD应应用而开发的软件包。用而开发的软件包。系统定义评审指明,系统定义评审指明,“软件是在一个工作站上运软件

73、是在一个工作站上运行,其接口必须使用各种计算机图形设备,包括行,其接口必须使用各种计算机图形设备,包括鼠标器、数字化仪、高分辩率彩色显示器和激光鼠标器、数字化仪、高分辩率彩色显示器和激光打印机打印机。”软件项目管理6969在这个实例中,使用在这个实例中,使用 LOC 做为估算变量。做为估算变量。根据系统规格说明根据系统规格说明, 软件范围的初步叙述如下软件范围的初步叙述如下“软件从操作员那里接收软件从操作员那里接收 2 维或维或 3 维几何数据。维几何数据。 操作员通过用户界面与操作员通过用户界面与 CAD 系统交互并控制它,系统交互并控制它,这种用户界面将表现出很好的人机接口设计特性。这种用

74、户界面将表现出很好的人机接口设计特性。所有的几何数据和其它支持信息保存在一个所有的几何数据和其它支持信息保存在一个CAD数据库内。要开发一些设计分析模块以产生在各数据库内。要开发一些设计分析模块以产生在各种图形设备上显示的输出。软件要设计得能控制种图形设备上显示的输出。软件要设计得能控制并与能各种外部设备,包括鼠标器、数字化仪、并与能各种外部设备,包括鼠标器、数字化仪、激光打印机和绘图仪交互。激光打印机和绘图仪交互。”软件项目管理7070经过分解经过分解, 识别出下列主要软件功能:识别出下列主要软件功能:v 用户界面和控制功能用户界面和控制功能v 二维几何分析二维几何分析v 三维几何分析三维几

75、何分析v 数据库管理数据库管理v 计算机图形显示功能计算机图形显示功能v 外设控制外设控制PCv 设计分析模块设计分析模块通过分解,可得到如下估算表通过分解,可得到如下估算表软件项目管理7171功能功能a乐观乐观值值m可能可能值值b悲观悲观值值E期望期望值值元元/行行行行/PM成本成本(元元)工作量工作量(PM)用户接口控制用户接口控制180024002650234014315327607.4二维几何造型二维几何造型41005200740053802022010760024.4三维几何造型三维几何造型46006900860068002022013600030.9数据库管理数据库管理295034

76、0036003350182406030013.9图图 形形 显显 示示40504900620049502220010890024.7外部设备控制外部设备控制2000210024502140281405992015.2设计分析设计分析66008500980084001830015120028.0总总 计计33360656680144.5软件项目管理73732)2) 项目人工成本的估算项目人工成本的估算项目人工成本主要是指软件开发过程中所花费的项目人工成本主要是指软件开发过程中所花费的工作量工作量及及相应的代价相应的代价。它不包括原材料和能源的。它不包括原材料和能源的消耗,主要是人的劳动的消耗。人

77、的劳动消耗所消耗,主要是人的劳动的消耗。人的劳动消耗所需代价就是软件产品的人工成本。需代价就是软件产品的人工成本。项目人工成本的计算方法不同于其它物理产品成项目人工成本的计算方法不同于其它物理产品成本的计算,是本的计算,是以一次性开发过程所花费的代价以一次性开发过程所花费的代价来来计算的。计算的。项目人工成本的估算,应是从项目人工成本的估算,应是从软件计划软件计划、需求分需求分析析、设计设计、编码编码、单元测试单元测试、集成测试集成测试到到确认测确认测试试,整个软件开发全过程所花费的代价作为依据,整个软件开发全过程所花费的代价作为依据的。的。软件项目管理74743)3) 软件项目成本估算方法软

78、件项目成本估算方法 专家判定技术专家判定技术单独一位专家可能会有种种偏见,单独一位专家可能会有种种偏见,最好由多位专最好由多位专家进行估算,取得多个估算值家进行估算,取得多个估算值。有多种方法把这些估算值合成一个估算值有多种方法把这些估算值合成一个估算值:一种方法是一种方法是简单地求各估算值的中值或平均值简单地求各估算值的中值或平均值。其优点是简便。缺点是可能会由于受一、二个极其优点是简便。缺点是可能会由于受一、二个极端估算值的影响而产生严重的偏差。端估算值的影响而产生严重的偏差。另一种方法是另一种方法是召开小组会召开小组会,使各位专家们统一于使各位专家们统一于或至少同意某一个估算值或至少同意

79、某一个估算值。优点是可以摈弃蒙昧。优点是可以摈弃蒙昧无知的估算值,缺点是一些组员可能会受权威或无知的估算值,缺点是一些组员可能会受权威或政治因素的影响。政治因素的影响。软件项目管理7575DelphiDelphi技术技术标准标准Delphi技术技术v组织者发给每位专家一份软件系统规格说明书组织者发给每位专家一份软件系统规格说明书和一张记录估算值的表格,请他们进行估算。和一张记录估算值的表格,请他们进行估算。v专家详细研究软件规格说明书的内容,对该软专家详细研究软件规格说明书的内容,对该软件提出三个规模的估算值,即:件提出三个规模的估算值,即:ai (最小最小), mi (可能可能), bi (

80、最大最大),无记名地填写表格;,无记名地填写表格;v组织者对专家们在表格中的答复组织者对专家们在表格中的答复进行整理进行整理: a. 计算各专家估算的期望值计算各专家估算的期望值 Ei; b. 对专家的估算结果分类摘要对专家的估算结果分类摘要。软件项目管理7676v专家对此估算值另做一次估算。专家对此估算值另做一次估算。v在综合专家估算结果的基础上,组织专家再在综合专家估算结果的基础上,组织专家再次无记名地填写表格。比较两次估算的结果。次无记名地填写表格。比较两次估算的结果。若差异很大,要通过查询找出差异的原因。若差异很大,要通过查询找出差异的原因。v上述过程可重复多次。上述过程可重复多次。最

81、终可获得一个得到最终可获得一个得到多数专家共识的软件规模多数专家共识的软件规模 (源代码行数源代码行数)。v最后,通过与历史资料进行类比,根据过去最后,通过与历史资料进行类比,根据过去完成软件项目的规模和成本等信息,推算出完成软件项目的规模和成本等信息,推算出该软件每行源代码所需要的成本。然后再乘该软件每行源代码所需要的成本。然后再乘以该软件源代码行数的估算值,就可得到该以该软件源代码行数的估算值,就可得到该软件的成本估算值。软件的成本估算值。软件项目管理77775.5. 软件项目人工成本估算的经验模型软件项目人工成本估算的经验模型软件开发人工成本估算是依据开发成本估算模型软件开发人工成本估算

82、是依据开发成本估算模型进行估算的。进行估算的。开发成本估算模型采用经验公式来预测软件项目开发成本估算模型采用经验公式来预测软件项目计划所需要的成本、工作量和进度数据。计划所需要的成本、工作量和进度数据。根据模型中估算变量的依存关系,可把模型分为根据模型中估算变量的依存关系,可把模型分为静态模型静态模型和和动态模型动态模型。静态模型静态模型从一个唯一的估算变量(如源代码规模)从一个唯一的估算变量(如源代码规模)计算其他变量(如工作量和时间),且所有计算计算其他变量(如工作量和时间),且所有计算公式对于所有场合都一样。公式对于所有场合都一样。动态模型动态模型中所有变量是相互依存的。中所有变量是相互

83、依存的。软件项目管理7878根据基本估算变量的多少,模型又可分为根据基本估算变量的多少,模型又可分为单变量单变量模型模型和和多变量模型多变量模型。单变量模型单变量模型只用一个估算变量计算出其他所有变只用一个估算变量计算出其他所有变量;量;多变量模型多变量模型需要多个变量来描述过程。需要多个变量来描述过程。1) 1) 静态单变量估算静态单变量估算模型模型典型的典型的静态单变量估算模型静态单变量估算模型是通过对从以前的是通过对从以前的软件项目收集到的数据进行回归分析导出的。软件项目收集到的数据进行回归分析导出的。其总体结构具有以下形式:其总体结构具有以下形式:E = A+B*(ev)C其中,其中,

84、E 是以人月为单位的工作量,是以人月为单位的工作量,A、B、C是经验常数,是经验常数,ev是估算变量(是估算变量(LOC或或FP).软件项目管理7979(1) (1) 面向面向LOCLOC的估算的估算模型模型 E5.2 (KLOC)0.91 Walston-Felix模型模型 E = 5.5+0.73 (KLOC)1.16 Bailey-Basili模型模型 E3.2 (KLOC)1.05 Boehm基本模型基本模型 E5.288 (KLOC)1.047 Doty模型模型 (针对(针对 KLOC 9 的情况)的情况)除上述关系以外,大多数估算模型均有某种形式除上述关系以外,大多数估算模型均有某

85、种形式的项目调整措施,使得的项目调整措施,使得 E 能够根据其他的项目特能够根据其他的项目特性(如问题的复杂性、开发人员的经验、开发环性(如问题的复杂性、开发人员的经验、开发环境等)加以调整。境等)加以调整。软件项目管理8080(2) (2) 面向面向FPFP的估算的估算模型模型 E- -13.39+0.0545 FP Albrecht-Gaffney模型模型 E = 60.62 7.728 10- -8 FP3 Kemerer模型模型 E585.7+15.12 FP Maston-Barnett-Mellichamp模型模型 从以上模型可知,每一个模型对于相同的从以上模型可知,每一个模型对于

86、相同的 LOC或或 FP 值,会产生出不同的结果。值,会产生出不同的结果。这意味着使用这些估算模型时,必须根据当前项这意味着使用这些估算模型时,必须根据当前项目的需要,对模型加以调整。目的需要,对模型加以调整。软件项目管理81812) Putnam2) Putnam模型模型Putnam 模型是一种动态多变量模型。适用于大模型是一种动态多变量模型。适用于大型项目,也可用在一些较小的软件项目中。型项目,也可用在一些较小的软件项目中。它是假定在软件开发的整个生存期中工作量有特它是假定在软件开发的整个生存期中工作量有特定的分布。大型软件项目的开发工作量分布可以定的分布。大型软件项目的开发工作量分布可以

87、用用 Rayleigh-Norden 曲线表示。曲线表示。用该曲线可以导出一个用该曲线可以导出一个“软件方程软件方程”:td 是开发持续时间是开发持续时间 (年年), K是整个软件生命周期是整个软件生命周期的工作量的工作量 (人年人年),L是源代码行数是源代码行数 (LOC),Ck是是技术状态常数,因开发环境而异。技术状态常数,因开发环境而异。软件项目管理8282系统定义系统定义系统定义系统定义功能设计功能设计功能设计功能设计规格说明规格说明规格说明规格说明系统开发系统开发系统开发系统开发系统维护与支持系统维护与支持系统维护与支持系统维护与支持工作量(人月)工作量(人月)工作量(人月)工作量(

88、人月)时间时间时间时间系统定义系统定义系统定义系统定义功能设计功能设计功能设计功能设计规格说明规格说明规格说明规格说明安装安装安装安装测试与确认测试与确认测试与确认测试与确认设计与编码设计与编码设计与编码设计与编码开发工作开发工作 = 总工作量的总工作量的40%维护与支持工作维护与支持工作 = 总工作量的总工作量的60%软件项目管理8383技术状态常数技术状态常数Ck的取值的取值Ck的的典型值典型值开发开发环境环境开开 发发 环环 境境 举举 例例2000差差没有系统的开发方法,缺乏文档和复审,没有系统的开发方法,缺乏文档和复审,批处理方式。批处理方式。8000好好有合适的系统开发方法,有充分

89、的文档有合适的系统开发方法,有充分的文档和复审,交互执行方式。和复审,交互执行方式。11000优优有自动开发工具和技术有自动开发工具和技术软件项目管理84843) COCOMO3) COCOMO模型模型 (COnstructive COst MOdelCOnstructive COst MOdel)结构型成本估算模型是一种精确、易于使用的成结构型成本估算模型是一种精确、易于使用的成本估算方法。本估算方法。DSI (Delivered Source Instruction) 定义为代码的定义为代码的源程序行数。若一行有两个语句,则算做一条指源程序行数。若一行有两个语句,则算做一条指令。它包括作业

90、控制语句、格式语句和数据声明,令。它包括作业控制语句、格式语句和数据声明,但不包括注释语句。但不包括注释语句。 KDSI1024 DSIMM (Man-Months) 表示开发工作量(人月)。表示开发工作量(人月)。TDEV (Time of Development) 表示开发进度。它表示开发进度。它由工作量决定(月)。由工作量决定(月)。软件项目管理8585(1) COCOMO(1) COCOMO模型的限制模型的限制模型成本估算涵盖的开发期,开始于产品设计阶模型成本估算涵盖的开发期,开始于产品设计阶段之初,终止于集成与测试阶段之末。其他阶段段之初,终止于集成与测试阶段之末。其他阶段的成本和进

91、度单独估算。的成本和进度单独估算。模型成本估算仅包含在开发期间工作分解结构中模型成本估算仅包含在开发期间工作分解结构中的活动,其中包含了管理和文档编制的工作量,的活动,其中包含了管理和文档编制的工作量,但不包含用户培训、安装计划、移植计划等相关但不包含用户培训、安装计划、移植计划等相关工作量。工作量。模型估算包括了项目中所有直接计费的劳动力的模型估算包括了项目中所有直接计费的劳动力的活动,包括项目经理和程序库管理员,但不包括活动,包括项目经理和程序库管理员,但不包括计算中心操作员、人事部门职员、秘书、高层管计算中心操作员、人事部门职员、秘书、高层管理人员、房屋管理员等。理人员、房屋管理员等。软

92、件项目管理8686(2) COCOMO(2) COCOMO模型中项目的分类模型中项目的分类组织型组织型半独立型半独立型嵌入型嵌入型产品目标的系统理解产品目标的系统理解充分充分很多很多一般一般有关工作的经验有关工作的经验大量大量很多很多适中适中对需求一致性的要求对需求一致性的要求基本基本很多很多充分充分对外部接口说明一致性的要对外部接口说明一致性的要求求基本基本很多很多充分充分有关新硬件和操作程序的并有关新硬件和操作程序的并行开发行开发若干若干适中适中大范围大范围对创新的数据处理架构和算对创新的数据处理架构和算法的需求法的需求最低最低若干若干很多很多提前完成时的奖金提前完成时的奖金低低适中适中高

93、高产品范围的规模产品范围的规模 50 KDSI 300 KDSI所有规模所有规模软件项目开发模式软件项目开发模式特特 性性软件项目管理8787COCOMOCOCOMO模型分类模型分类COCOMO模型模型按其详细程度按其详细程度分成三级:分成三级:v 基本基本COCOMO模型模型v 中间中间COCOMO模型模型v 详细详细COCOMO模型模型组织型组织型半独立型半独立型嵌入型嵌入型分批数据处理分批数据处理简单库存简单库存/生产管理生产管理熟悉的熟悉的OS, 编译器编译器科学模型科学模型多数事务处理系统多数事务处理系统简单指令控制系统简单指令控制系统新的新的OS, DBMS大的库存大的库存/生产管

94、理生产管理复杂事务处理系统复杂事务处理系统超大型操作系统超大型操作系统航天控制系统航天控制系统大的指令控制系统大的指令控制系统软件项目开发模式软件项目开发模式 应用举例应用举例软件项目管理8888基本基本 COCOMO 模型模型是静态单变量模型,用源代是静态单变量模型,用源代码行数码行数(KDSI) 为自变量的经验函数计算软件开发为自变量的经验函数计算软件开发工作量。工作量。中间中间 COCOMO 模型模型在用在用 KDSI 为为自变量自变量的函数的函数计算软件开发工作量(称为名义工作量)的基础计算软件开发工作量(称为名义工作量)的基础上,用涉及产品、硬件、人员、项目等方面的影上,用涉及产品、

95、硬件、人员、项目等方面的影响因素调整工作量估算。响因素调整工作量估算。详细详细 COCOMO 模型模型包括中间包括中间COCOMO模型的模型的所有特性,但用上述各种影响因素调整工作量估所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一阶段(分算时,还要考虑对软件工程过程中每一阶段(分析、设计等)的影响。析、设计等)的影响。软件项目管理8989(3) (3) 基本基本COCOMOCOCOMO模型模型基本基本COCOMO模型的标称工作量和进度公式模型的标称工作量和进度公式按这些公式得到的估算实例参看下表。它总结了按这些公式得到的估算实例参看下表。它总结了每一种软件项目开发

96、模式和不同规模产品中估算每一种软件项目开发模式和不同规模产品中估算出来的工作量、生产率、开发进度等。出来的工作量、生产率、开发进度等。产品规模:产品规模:小型小型(2KDSI), 中小型中小型(8KDSI), 中型中型(32KDSI), 大型大型(128KDSI), 超大型超大型(256KDSI)。软件项目管理9090标准规模产品的基本标准规模产品的基本COCOMOCOCOMO估算估算工作量工作量(MM)小型小型中小型中小型中型中型大型大型超大型超大型组织型组织型半独立型半独立型嵌入型嵌入型5.06.58.321.3314491146230392687121632506420生产率生产率(DS

97、I/MM)小型小型中小型中小型中型中型大型大型超大型超大型组织型组织型半独立型半独立型嵌入型嵌入型40030824137625818235221913932718610515880软件项目管理9191进度进度(月月) 小型小型中小型中小型中型中型大型大型超大型超大型组织型组织型半独立型半独立型嵌入型嵌入型4.64.84.98.08.38.41414142424244241平均投入人平均投入人员员 (FSP)小型小型中小型中小型中型中型大型大型超大型超大型组织型组织型半独立型半独立型嵌入型嵌入型1.11.41.72.73.75.26.5101616295177157软件项目管理9292(4) (

98、4) 中间中间COCOMOCOCOMO模型模型进一步考虑进一步考虑 15 种影响工作量的因素(称种影响工作量的因素(称成本驱动成本驱动因素因素),通过定下乘法因子,修正),通过定下乘法因子,修正COCOMO 标标称工作量公式和进度公式计算的结果,可以更合称工作量公式和进度公式计算的结果,可以更合理地估算软件(各阶段)的工作量和进度。理地估算软件(各阶段)的工作量和进度。中间中间 COCOMO 模型的标称工作量与进度公式模型的标称工作量与进度公式计算公式:计算公式:MM = a (KDSI) b EAF软件项目管理9393此时,此时,例例1. 一个一个 32KDSI 的声音输入系统是一个输入原的

99、声音输入系统是一个输入原型,或是一个可行性表演模型。所需可靠性非常型,或是一个可行性表演模型。所需可靠性非常低。把此模型看做半独立型软件。则有低。把此模型看做半独立型软件。则有 MM 3.0(32)1.12 146又查下表知又查下表知 f10.75,其它,其它 fi1.00,则最终有,则最终有 MM 1460.75 110.软件项目管理9494成本驱动因素成本驱动因素 f fi i产品因素产品因素:软件可靠性、数据库规模、产品复杂:软件可靠性、数据库规模、产品复杂性性硬件因素硬件因素:执行时间限制、存储限制、虚拟机易:执行时间限制、存储限制、虚拟机易变性、环境周转时间变性、环境周转时间人的因素

100、人的因素:分析员能力、应用领域实际经验、程:分析员能力、应用领域实际经验、程序员能力、虚拟机使用经验、程序语言使用经验序员能力、虚拟机使用经验、程序语言使用经验项目因素项目因素:现代程序设计技术、软件工具的使用、:现代程序设计技术、软件工具的使用、开发进度限制开发进度限制软件项目管理100100(5) (5) 详细详细COCOMOCOCOMO模型模型详细详细COCOMO模型的标称工作量公式和进度公模型的标称工作量公式和进度公式与中间式与中间COCOMO模型相同。模型相同。详细详细COCOMO模型引入了两种新特色:模型引入了两种新特色:v阶段敏感的工作量影响因素阶段敏感的工作量影响因素:把软件开

101、发分:把软件开发分为为 4 个阶段:需求计划和产品设计、详细设个阶段:需求计划和产品设计、详细设计、编码和单元测试、集成与测试。计、编码和单元测试、集成与测试。v三层次的产品分级结构三层次的产品分级结构:针对每一个影响因:针对每一个影响因素,按模块层、子系统层、系统层,有相应素,按模块层、子系统层、系统层,有相应工作量因素分级表,供不同层次的估算使用。工作量因素分级表,供不同层次的估算使用。软件项目管理101101两者综合,每张表都按两者综合,每张表都按产品层次产品层次- -开发阶段开发阶段- -要求要求高低高低,详细给出定量的估计。,详细给出定量的估计。例如,软件可靠性(例如,软件可靠性(R

102、ELY)的工作量因素分级)的工作量因素分级表(子系统层)和产品复杂性(表(子系统层)和产品复杂性(CPLX)的工作)的工作量因素分级表(模块层)如表所示。量因素分级表(模块层)如表所示。使用这些表格,可以比中间使用这些表格,可以比中间COCO MO模型更方模型更方便、更准确地估算软件开发工作量。便、更准确地估算软件开发工作量。软件项目管理102102软件可靠性成本驱动因素分级表软件可靠性成本驱动因素分级表( (子系统层子系统层) ) 阶段阶段级别级别需求和需求和产品设计产品设计详细详细设计设计编程和编程和单元测试单元测试集成集成及测试及测试综合综合非常低非常低0.800.800.800.600

103、.75低低0.900.900.900.800.88正常正常1.001.001.001.001.00高高1.101.101.101.301.15非常高非常高1.301.301.301.701.40软件项目管理103103产品复杂性成本驱动因素分级表产品复杂性成本驱动因素分级表( (模块层模块层) ) 阶段阶段级别级别需求和需求和产品设计产品设计详细详细设计设计编程和编程和单元测试单元测试集成集成及测试及测试综合综合非常低非常低0.700.700.700.700.70低低0.850.850.850.850.85正常正常1.001.001.001.001.00高高1.151.151.151.151.

104、15非常高非常高1.301.301.301.301.30软件项目管理104104可靠性要求不同导致项目活动的差异可靠性要求不同导致项目活动的差异等级需求与产品设计详细设计编码与单元测试集成与测试很低很低不详细不详细;很多待定很多待定;较少确认较少确认;最小量最小量QA, CM,用户手册草稿用户手册草稿,测试计划测试计划;最少设计评审最少设计评审;基本设计信息基本设计信息;最小量最小量QA, CM,用户手册用户手册草稿草稿,测试计划测试计划;非正式设计检非正式设计检查查;没有测试过程没有测试过程;最小路经测试最小路经测试;最小标准检查最小标准检查;最小最小QA, CM;最小最小I/O与非正与非正

105、式测试式测试;最小用户手册最小用户手册;没有测试过程没有测试过程;很多需求未经测很多需求未经测试;试;最小最小QA, CM;最小压力与非正最小压力与非正常测试常测试;最小所需文档;最小所需文档;低低基本信息基本信息,确认确认;频繁的待定频繁的待定;基本基本QA, CM, 标准用户手册草标准用户手册草稿稿, 测试计划测试计划;中等详细中等详细;基本基本QA, CM,用户手册草稿用户手册草稿,测试计划测试计划;最小测试过程最小测试过程;部分路径测试部分路径测试,标准检查标准检查;基本基本QA, CM, 用户手册用户手册;部分部分I/O与非正与非正常测试常测试;最小测试过程最小测试过程;需求通常未经

106、测需求通常未经测试试;基本基本QA, CM, 用用户手册户手册;部分压力与非正部分压力与非正常测试常测试;软件项目管理105105等级需求与产品设计详细设计编码与单元测试集成与测试正常正常 正常项目正常项目V&V高高详细的确认详细的确认, QA, CM, 标准标准, 设计设计评审评审, 文档编制文档编制;详细的测试计划详细的测试计划, 过程过程;详细的确认详细的确认, QA, CM, 标准标准, 关键设计评审关键设计评审, 文档编制文档编制;详细的测试计详细的测试计划划, 过程过程;详细的测试过程详细的测试过程, QA, CM, 文档化文档化;广泛的非正常测广泛的非正常测试试;详细的测试过程详

107、细的测试过程, QA, CM, 文档化文档化;广泛的压力与非广泛的压力与非正常测试正常测试;很高很高详细的确认详细的确认, QA, CM, 标准标准, 设计设计评审评审, 文档编制文档编制;与独立的与独立的V&V机机构接口构接口;非常详细的测试非常详细的测试计划计划, 过程过程;详细的确认详细的确认, QA, CM, 标准标准, 关键设计评审关键设计评审, 文档编制文档编制;非常彻底的设非常彻底的设计检查计检查;非常详细的测非常详细的测试计划试计划, 过程过程;与独立的与独立的V&V机构接口机构接口;详细的测试过程详细的测试过程, QA, CM, 文档化文档化;非常彻底的代码非常彻底的代码检查

108、检查;非常广泛的非正非常广泛的非正常测试常测试;与独立的与独立的V&V机机构接口构接口;非常详细的测试非常详细的测试过程过程, QA, CM, 文档化文档化;非常广泛的压力非常广泛的压力与非正常测试与非正常测试;与独立的与独立的V&V机机构接口构接口;软件项目管理1221225.65.6 成本预算成本预算 项目成本预算是项目成本控制的基础,它项目成本预算是项目成本控制的基础,它a)将项目的成本估算分配到项目的各项具体工将项目的成本估算分配到项目的各项具体工作上,以确定项目各项工作或活动的成本定作上,以确定项目各项工作或活动的成本定额。额。b)制定项目成本的控制标准。制定项目成本的控制标准。c)

109、规定项目意外成本的划分与使用规则。规定项目意外成本的划分与使用规则。项目成本预算包括四部分:项目成本预算包括四部分:直接人工费用直接人工费用的预的预算;算;咨询服务费用咨询服务费用的预算;的预算;资源采购费用资源采购费用的预的预算;算;意外成本意外成本的预算。的预算。1. 1. 成本预算的概念成本预算的概念软件项目管理123123成本预算的三大作用成本预算的三大作用1)项目成本预算是按计划分配项目资源的活动,以项目成本预算是按计划分配项目资源的活动,以保证各项工作能够获得所需的各种资源。在保证各项工作能够获得所需的各种资源。在做各做各项工作的成本预算时,要实事求是:过高会导致项工作的成本预算时

110、,要实事求是:过高会导致项目成本上升,过低会导致因省钱而偷工减料。项目成本上升,过低会导致因省钱而偷工减料。2)项目成本预算是一种控制机制:项目成本预算是一种控制机制:项目成本预算作项目成本预算作为项目各项具体工作的全部定额,是度量各项工为项目各项具体工作的全部定额,是度量各项工作在实际实施过程资源使用数量和效率的标准。作在实际实施过程资源使用数量和效率的标准。项目工作的所花费的实际成本应尽量保持在预算项目工作的所花费的实际成本应尽量保持在预算成本的限度以内。成本的限度以内。3)项目成本预算为项目经理监控项目实施进度提项目成本预算为项目经理监控项目实施进度提软件项目管理124124供了一把标尺

111、。供了一把标尺。在项目实施的任何时点上,都应在项目实施的任何时点上,都应有确定的预算成本。根据项目预算成本的完成情有确定的预算成本。根据项目预算成本的完成情况和完成这些预算成本所消耗的实际工期,与完况和完成这些预算成本所消耗的实际工期,与完成同样成本额的计划工期相比较,项目经理可以成同样成本额的计划工期相比较,项目经理可以及时掌握项目的进度情况,进行调整。及时掌握项目的进度情况,进行调整。累积费用累积费用时间时间实际成本额实际成本额计划成本额计划成本额实际支出线实际支出线计划支出线计划支出线观测时点线观测时点线软件项目管理1251252.2. 项目成本预算编制的依据项目成本预算编制的依据1)项

112、目成本估算项目成本估算项目成本预算是把项目的成本估算分配到项目项目成本预算是把项目的成本估算分配到项目的各项工作和活动中,因此必须以项目成本估的各项工作和活动中,因此必须以项目成本估算为依据。算为依据。2)工作分解结构工作分解结构项目成本预算根据工作分解结构分配项目估算项目成本预算根据工作分解结构分配项目估算成本。成本。3)项目进度计划项目进度计划项目进度计划(见项目时间管理)详细地安排项目进度计划(见项目时间管理)详细地安排了各项工作的起始时间和结束时间,是按时间了各项工作的起始时间和结束时间,是按时间进度分配资金的依据。进度分配资金的依据。软件项目管理1261263.3. 项目成本预算编制

113、的方法和技术项目成本预算编制的方法和技术无论使用什么方法和技术来编制项目的成本预无论使用什么方法和技术来编制项目的成本预算,都必须经过以下几个步骤:算,都必须经过以下几个步骤:v分摊项目总成本到项目分解结构的各个工作分摊项目总成本到项目分解结构的各个工作包中,为每个工作包建立预算总成本。包中,为每个工作包建立预算总成本。v将每个工作包所分得的成本额进一步分配到将每个工作包所分得的成本额进一步分配到工作包所包含的各项活动中。工作包所包含的各项活动中。v确定各项成本支出的时间计划,及每一个时确定各项成本支出的时间计划,及每一个时间点对应的累积预算成本(截止到该时间点间点对应的累积预算成本(截止到该

114、时间点的每期预算成本额的总和),制定出项目成的每期预算成本额的总和),制定出项目成本预算计划。本预算计划。编制项目成本预算的方法与估算的方法相同。编制项目成本预算的方法与估算的方法相同。软件项目管理1271274.4. 项目成本预算编制的结果项目成本预算编制的结果1)项目各项工作或活动的成本预算项目各项工作或活动的成本预算给出了实施某一项工作或活动的成本定量。在给出了实施某一项工作或活动的成本定量。在项目的实施过程中,将以此为标准监控各项工项目的实施过程中,将以此为标准监控各项工作或活动的实际资源消耗量。作或活动的实际资源消耗量。2)成本基准计划成本基准计划描述了项目进展时间与项目花费的累积预

115、算成描述了项目进展时间与项目花费的累积预算成本之间的对应关系。它将作为度量和监控项目本之间的对应关系。它将作为度量和监控项目实施过程中费用支出的主要依据。实施过程中费用支出的主要依据。软件项目管理1281285.7 5.7 项目成本控制项目成本控制项目成本控制包括项目成本控制包括v分析项目特点,确立项目管理目标;分析项目特点,确立项目管理目标;v总结同类项目招投标经验,建立招投标的战总结同类项目招投标经验,建立招投标的战略、评标与订立合同方法、分析招投标市场略、评标与订立合同方法、分析招投标市场及参与者;及参与者;v结合可行性研究、价值工程分析、设计效率结合可行性研究、价值工程分析、设计效率分

116、析,采用项目前期评价系统,确定成本控分析,采用项目前期评价系统,确定成本控制的方针与办法以及中心激励机制;制的方针与办法以及中心激励机制;v项目后期评价,经验总结;项目后期评价,经验总结;v基于成本基准计划,监视成本执行,等。基于成本基准计划,监视成本执行,等。软件项目管理1291291.1. 项目成本控制的概念项目成本控制的概念项目成本控制是指项目组织为保证在变化的条项目成本控制是指项目组织为保证在变化的条件下实现其预算成本,按照事先拟订的计划和件下实现其预算成本,按照事先拟订的计划和标准,通过采用各种方法,对项目实施过程中标准,通过采用各种方法,对项目实施过程中发生的各种实际成本与计划成本

117、进行对比、检发生的各种实际成本与计划成本进行对比、检查、监督、引导和纠正,尽量使项目的实际成查、监督、引导和纠正,尽量使项目的实际成本控制在计划和预算范围内的管理过程。本控制在计划和预算范围内的管理过程。项目成本控制的主要内容包括:项目成本控制的主要内容包括:1)识别可能引起项目基准计划发生变动的因素,识别可能引起项目基准计划发生变动的因素,并对这些因素施加影响,以保证这些变化朝并对这些因素施加影响,以保证这些变化朝着有利的方向发展。着有利的方向发展。软件项目管理1301302)以工作包为单位,监督成本的实施情况,发以工作包为单位,监督成本的实施情况,发现实际成本与预算成本之间的偏差,找出产现

118、实际成本与预算成本之间的偏差,找出产生偏差的原因。生偏差的原因。3)对发生成本偏差的工作包,有针对性地采取对发生成本偏差的工作包,有针对性地采取纠正措施,必要时可以根据实际情况对项目纠正措施,必要时可以根据实际情况对项目成本基准计划进行适当的调整。成本基准计划进行适当的调整。4)将核准的的成本变更和调整后的成本基准计将核准的的成本变更和调整后的成本基准计划通知项目的干系人。划通知项目的干系人。5)防止不正确的、不合适的或未授权的项目变防止不正确的、不合适的或未授权的项目变更所发生的费用被列入项目成本预算。更所发生的费用被列入项目成本预算。6)防止因单纯控制成本而引起项目范围、进度防止因单纯控制

119、成本而引起项目范围、进度和质量方面的问题,甚至出现更大的风险,和质量方面的问题,甚至出现更大的风险,软件项目管理131131因此成本控制应与项目范围变更、进度计划因此成本控制应与项目范围变更、进度计划变更、质量控制紧密结合。变更、质量控制紧密结合。有效成本控制的关键是经常及时地分析成本绩有效成本控制的关键是经常及时地分析成本绩效,尽早发现成本差异和成本执行低下的问题。效,尽早发现成本差异和成本执行低下的问题。以便在情况变坏之前能够及时采取纠正措施。以便在情况变坏之前能够及时采取纠正措施。一旦一旦项目成本失控项目成本失控,在预算内完成项目是非常,在预算内完成项目是非常困难的。如果没有额外的资金支

120、持,那么成本困难的。如果没有额外的资金支持,那么成本超支的后果就是:要么超支的后果就是:要么推迟项目工期推迟项目工期,要么,要么降降低项目的质量标准低项目的质量标准,要么,要么缩小项目的工作范围缩小项目的工作范围,这都是我们不愿看到的。这都是我们不愿看到的。软件项目管理1321322.2. 项目成本控制的依据项目成本控制的依据1)项目各项工作或活动的成本预算项目各项工作或活动的成本预算在项目的实施过程中,通常以此为标准,对各在项目的实施过程中,通常以此为标准,对各项工作的实际成本进行监控。它是进行成本控项工作的实际成本进行监控。它是进行成本控制的基础性文档。制的基础性文档。2)成本基准计划成本

121、基准计划是按时间分段的费用预算计划,可用来测量和是按时间分段的费用预算计划,可用来测量和监督项目成本的实际发生情况,并能够很好地监督项目成本的实际发生情况,并能够很好地将成本支出与时间进度联系起来。它是按时间将成本支出与时间进度联系起来。它是按时间对项目成本支出进行控制的重要依据。对项目成本支出进行控制的重要依据。3)成本绩效报告成本绩效报告软件项目管理133133是记载项目预算实际执行情况的资料。它的主是记载项目预算实际执行情况的资料。它的主要内容包括要内容包括项目各个阶段或各项工作的成本完项目各个阶段或各项工作的成本完成情况成情况,是否超出了预先分配的预算是否超出了预先分配的预算,存在哪存

122、在哪些问题些问题。分析项目成本绩效的基本指标为分析项目成本绩效的基本指标为a)项目计划作业的预算成本项目计划作业的预算成本。是按预算价格和。是按预算价格和预算工作量分配给每一项作业活动的预算成预算工作量分配给每一项作业活动的预算成本。本。b)累积预算成本累积预算成本。将每一个工作包的总预算成。将每一个工作包的总预算成本分摊到项目工期的各个时间分段,计算出本分摊到项目工期的各个时间分段,计算出截止到某个时点的各期预算成本的累计数,截止到某个时点的各期预算成本的累计数,作为该时点的累积预算成本。作为该时点的累积预算成本。软件项目管理134134c)累积实际成本累积实际成本。项目已完成工作的实际成本

123、,。项目已完成工作的实际成本,是截止到某一时点的各期发生的实际成本的是截止到某一时点的各期发生的实际成本的累积数。累积数。d)累积盈余量累积盈余量。已完成工作的预算成本,是将。已完成工作的预算成本,是将每一个工作包的总预算成本乘以该工作包的每一个工作包的总预算成本乘以该工作包的完工比率所得的乘积。完工比率所得的乘积。e)成本绩效指数成本绩效指数。衡量成本效率的指标,是累。衡量成本效率的指标,是累积盈余量与累积实际成本的比值,反映了用积盈余量与累积实际成本的比值,反映了用多少实际成本才完成了一单位预算成本的工多少实际成本才完成了一单位预算成本的工作量。作量。f)成本差异成本差异。累积盈余量与累积

124、实际成本之间。累积盈余量与累积实际成本之间的差异。的差异。软件项目管理1351354)变更申请变更申请是项目干系人以口头或书面的方式提出的有关变是项目干系人以口头或书面的方式提出的有关变更项目工作内容和成本的请求。更项目工作内容和成本的请求。项目的任何变动都要经过严格的评估和批准,并项目的任何变动都要经过严格的评估和批准,并获得资金的支持。获得资金的支持。项目经理要根据变更后的项目工作范围或成本预项目经理要根据变更后的项目工作范围或成本预算来对项目成本实施控制。算来对项目成本实施控制。5)项目成本管理计划项目成本管理计划这是识别和分析在项目的实施过程中可能会引起这是识别和分析在项目的实施过程中

125、可能会引起项目成本变化的各种潜在因素,提出解决和控制项目成本变化的各种潜在因素,提出解决和控制方案,确保在预算范围内完成项目的一个指导性方案,确保在预算范围内完成项目的一个指导性文档。文档。软件项目管理1361363.3. 项目成本控制的方法和技术项目成本控制的方法和技术1)成本变更控制系统成本变更控制系统该系统主要包括三部分:该系统主要包括三部分:v成本变更申请成本变更申请v核准成本变更申请核准成本变更申请v变更项目成本预算变更项目成本预算根据严格的项目成本变更控制流程,对变更申请根据严格的项目成本变更控制流程,对变更申请进行评估,确定变更所导致的进行评估,确定变更所导致的成本代价成本代价和

126、和时间代时间代价价,再将评估结果报告给客户,由他们判断是否,再将评估结果报告给客户,由他们判断是否接受这些代价,核准变更申请。接受这些代价,核准变更申请。变更申请被批准后,还要调整相关工作的成本预变更申请被批准后,还要调整相关工作的成本预软件项目管理137137算,对成本基准计划作相应修改。算,对成本基准计划作相应修改。要注意,成本变更控制系统应与其他变更控制系要注意,成本变更控制系统应与其他变更控制系统相协调,成本变更的结果应与其他变更的结果统相协调,成本变更的结果应与其他变更的结果相协调。相协调。2)绩效测量绩效测量主要用于估算实际发生的变化的大小。常用的绩主要用于估算实际发生的变化的大小

127、。常用的绩效测量技术有:效测量技术有:a)不确定性分析不确定性分析投资项目的不确定性分析就是通过计算分析,确投资项目的不确定性分析就是通过计算分析,确定定各种不确定因素的变化对项目经济效益的影响各种不确定因素的变化对项目经济效益的影响程度程度的一种经济分析方法。的一种经济分析方法。软件项目管理138138盈亏平衡分析盈亏平衡分析各种不确定因素(如投资、成本、销售量、各种不确定因素(如投资、成本、销售量、产品价格、项目生命周期等)的变化会影响产品价格、项目生命周期等)的变化会影响项目方案的经济效果。当这些因素的变化达项目方案的经济效果。当这些因素的变化达到某一个临界值时,恰好使方案达到盈亏平到某

128、一个临界值时,恰好使方案达到盈亏平衡。衡。盈亏平衡分析目的就是要在一定的市场、生盈亏平衡分析目的就是要在一定的市场、生产能力及经营管理的条件下,找出这个临界产能力及经营管理的条件下,找出这个临界值,判断项目对不确定因素变化的承受能力,值,判断项目对不确定因素变化的承受能力,为决策提供依据。为决策提供依据。敏感性分析敏感性分析通过测定一个或多个不确定因素的变化所导通过测定一个或多个不确定因素的变化所导软件项目管理139139致的致的决策评价指标的变化幅度决策评价指标的变化幅度,了解各种,了解各种因因素的变化对实现项目预期目标的影响程度素的变化对实现项目预期目标的影响程度,从而对外部条件发生不利变

129、化时项目方案的从而对外部条件发生不利变化时项目方案的承受能力做出判断。承受能力做出判断。敏感性分析在一定程度上就各种不确定因素敏感性分析在一定程度上就各种不确定因素的变动对项目经济效果的影响做了定量描述,的变动对项目经济效果的影响做了定量描述,这有助于了解项目方案的风险,有助于确定这有助于了解项目方案的风险,有助于确定在决策过程中及在方案实施过程中需要重点在决策过程中及在方案实施过程中需要重点研究与控制的因素。缺点是没有考虑未来发研究与控制的因素。缺点是没有考虑未来发生变动的概率。生变动的概率。概率分析概率分析通过研究各种不确定因素发生通过研究各种不确定因素发生不同幅度变不同幅度变软件项目管理

130、140140动的概率分布及其对项目方案经济效果的影动的概率分布及其对项目方案经济效果的影响响,对项目方案的净现金流量及经济效果指,对项目方案的净现金流量及经济效果指标做出某种概率描述,从而对项目方案的风标做出某种概率描述,从而对项目方案的风险做出比较准确的判断。险做出比较准确的判断。b)挣值分析挣值分析是一种综合范围、时间、资源和项目绩效测是一种综合范围、时间、资源和项目绩效测量的方法。通过与计划完成的工作量、实际量的方法。通过与计划完成的工作量、实际挣得的收益、实际的成本进行比较,确定成挣得的收益、实际的成本进行比较,确定成本、进度是否按计划执行。(参看项目的集本、进度是否按计划执行。(参看

131、项目的集成管理)成管理)3)计算机工具计算机工具如项目管理软件、电子表格等。用于对计划费如项目管理软件、电子表格等。用于对计划费软件项目管理1411414.4. 项目成本控制的结果项目成本控制的结果用和实际费用进行跟踪和比较,预测费用变更用和实际费用进行跟踪和比较,预测费用变更后的结果。后的结果。1)修正后的成本估算修正后的成本估算根据实际需要修改和更新项目的成本估算。根据实际需要修改和更新项目的成本估算。2)成本预算更新成本预算更新对原来的成本预算计划进行修订和调整,包括对原来的成本预算计划进行修订和调整,包括对成本基准计划进行必要的修改和更新。对成本基准计划进行必要的修改和更新。3)纠正措施纠正措施使项目未来工作所花费的实际成本被控制在项使项目未来工作所花费的实际成本被控制在项目计划成本以内所采取的纠偏活动。目计划成本以内所采取的纠偏活动。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号