软件项目管理第6章规模成本估算.
软件项目规模估计方法介绍

软件项目的规模估计历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估计往往和实际情况相差甚远。
因此,估计错误已被列入软件项目失败的四大原因之一。
软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。
面对这个问题,有不少人很犯难,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法。
下面是几种软件项目规模的估计方法。
概念介绍先介绍一个衡量软件项目规模最常用的概念--LOC(Line of Code),LOC指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。
一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力。
组织可以根据对历史项目的审计来核算组织的单行代码价值。
例如,某软件公司统计发现该公司每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。
某项目的源文件大小为3.75M,则可估计该项目源代码大约为15万行,该项目累计投入工作量为240人月,每人月费用为10000元(包括人均工资、福利、办公费用公滩等),则该项目中1LOC的价值为:(240×10000)/150000=16元/LOC改项目的人月均代码行数为:150000/240=625LOC/人月方法一、Delphi 法Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。
Delphi法鼓励参加者就问题相互讨论。
这个技术,要求有多种软件相关经验人的参与,互相说服对方。
软件 项目估算方法

软件项目估算方法软件项目估算是软件开发过程中非常重要的一环。
它有助于确定项目的时间、资源和成本,并在项目计划制定、进度控制和风险管理等方面提供参考依据。
软件项目估算方法有很多种,下面将介绍常用的几种方法。
1. 规模估算方法:规模估算方法是根据软件项目的规模来估算项目的时间、资源和成本。
这种方法通常使用功能点和行数等指标来量化软件项目的规模,然后根据历史数据或专家经验来估算项目的时间和资源。
2. 分段估算方法:分段估算方法是将软件项目划分为不同的阶段,然后对每个阶段进行估算。
这种方法适用于大型软件项目或复杂的软件开发过程,可以更好地控制项目进度和风险。
3. 参数估算方法:参数估算方法是根据软件项目的特征和参数来估算项目的时间和资源。
这种方法通常通过分析历史数据或进行专家访谈来确定参数的取值,然后根据参数值来计算项目的时间和资源。
4. 使用案例点估算方法:使用案例点估算方法是一种基于使用案例的软件项目估算方法。
它根据软件系统的功能需求和使用案例的复杂度来估算项目的时间和资源。
这种方法适用于面向对象的软件开发过程和敏捷开发方法。
5. COCOMO模型:COCOMO模型是一种经验公式,用于估算软件项目的时间和成本。
它根据软件项目的规模、复杂度和开发环境等因素来估算项目的时间和成本。
COCOMO模型包括三个子模型:基本模型、中级模型和高级模型,可以根据项目的特点选择合适的子模型进行估算。
除了以上几种常用的软件项目估算方法,还有一些其他的方法,如用例点方法、函数点方法等。
每种方法都有其适用的场景和优缺点,选择合适的方法需要考虑项目的特点、数据的可用性和团队的经验等因素。
需要注意的是,软件项目估算只是一种预测和计划工具,估算结果可能存在误差。
在实际开发过程中,应根据项目的实际情况进行调整和修正,并及时跟踪和控制项目的进度和风险。
同时,估算过程中的数据和经验也应该进行积累和总结,以便在下次的项目估算中更准确地预测时间、资源和成本。
管理学第6章IT软件项目成本管理

嵌入模式指必须要求在一组紧密联系的硬件、软件及
操作约束下开发的软件项目
生产率=(KLOC)/E 人员数=E/D
Page 40
1000
800
开
发 成
600
本
(PM)400
200
0
嵌入模式 半分离模式 组织模式
20 40 60 80 100 120 开发工作量(E)
Page 41
22 20 时 18 间 16 (月) 14 12
Page 28
(1)输入:屏幕、表单、对话框、控件,或者最终用户 以及其他程序添加、删除、改变程序数据的消息。
(2)输出:屏幕、报告、图表或者程序产生的由最终用 户以及其他程序使用的消息。
(3)查询:输入输出的结合,输入能导致快速简单的输 出。
(4)内部逻辑文件:完全由程序控制的最终用户数据或 控制信息的主要逻辑组。
Page 39
软件类型 a b c d
适用范围
组织模式 2.4 1.05 2.5 0.38
各类应用程序
半分离模式 3.0 1.12 2.5 0.35 各类实用程序、编译程序等
嵌入模式 3.6 1.2 2.5 0.32 实时处理、控制程序、操作系统
组织模式指规模较小的、简单的软件项目
半分离模式指规模和复杂性处于中等程度的软件项目
Page 23
6.2.1 IT项目成本的常用估算方法 6.2.2 面向规模(LOC)的度量 6.2.3 面向功能点(FP)的度量 6.2.4 COCOMO模型
Page 24
成本建模技术:数学模型 专家判定技术(Delphi法) 类比评估技术 Parkson 法则:用所需的时间来表示的成本。 自顶向下估算法 自下而上估算法 赢利定价法:成本的预算依靠客户的预算而不
成本估算

一:成本估算成本估算是对完成项目各项活动所需资源成本的近似估算,它根据活动资源估算中确定的资源需求和市场上各种资源的价格信息来进行。
成本估算是一个十分容易被忽视但又十分重要的一个内容,其重要的原因是没有成本估算,项目计划会失去基础。
容易被忽视的原因是大部分软件开发组织未能有效掌握它。
具体来讲,项目成本的大小同项目耗用资源数量、质量和价格有关,同项目工期长短有关,同项目质量结果有关,同项目范围的深度和宽度有关。
一般来说,编制成本估算有以下步骤:1)识别分析项目成本构成科目;2)根据已识别成本构成科目,估算每一成本科目的成本大小;3)分析成本估算结果,找出可以相互替代的成本,协调成本间比例关系,成本估算通常以人天、人月、人年为单位表示,成本估算的具体方法有:类比估算法、确定资源费率、项目管理软件、卖方投标分析、准备金分析、质量成本。
项目估算包括规模估算、工作量估算、进度估算和成本估算,整个估算过程如下:首先根据需求进行规模估算即预计系统的规模,通常以代码行数、功能点数为单位;然后在估计的规模基础上,根据项目特点(如技术能力、使用的语言、开发平台、项目复杂度、团队稳定性等)、开发生产率经验数字估算开发的工作量,通常以人天、人月、人年为单位;最后根据客户提出的进度进行进度估算,根据人员和其他成本对总的开发成本进行估算,估算基础是经验数字和模型。
规模估算是系统开发成本估算的基础,而工作量估算是系统开发成本估算的关键,规模估算最常用的方法包括LOC代码行估算法、FP功能点估算法,工作量估算主要有MARK2 FP估算、COCOMO估算、PUTNAM估算模型、类比估算、自下而上估算等。
二:成本管理项目成本管理是项目管理的一个重要组成部分,它是指在项目的实施过程中,为了保证成项目所花费的实际成本不超过其预算成本而展开的成本估算、预算编制和成本控制等方面的管理活动,它包括在批准的预算内完成项目所需要的诸过程,主要有:1)成本估算:编制一个为完成项目各活动所需要的资源成本的近似估算;2)成本预算:将总的成本估算分配到各项活动上,建立成本基线;3)成本控制:控制项目预算的变更。
软件项目管理第3版第6章习题答案参考答案成本管理

软件项⽬管理第3版第6章习题答案参考答案成本管理[填空][直接]1.软件项⽬成本包括()成本和间接成本,⼀般⽽⾔,项⽬⼈⼒成本归属于直接成本。
[填空][类⽐估算法]2.在项⽬初期,⼀般采⽤的成本估算⽅法是()。
[填空][外部输⼊,外部输出,外部查询,内部逻辑⽂件,外部接⼝⽂件]3.功能点⽅法中5类功能组件的计数项是()、()、()、()、()。
[填空][⼈的劳动的消耗所需要的代价]4.软件项⽬的主要成本是()。
[填空][⽤例点]5.()⽅法通过分析⽤例⾓⾊、场景和技术与环境因⼦等来进⾏软件估算。
[是⾮][A]1.软件项⽬规模就是软件项⽬⼯作量。
()[A]正确[B]错误[是⾮][B]2.在软件项⽬估算中,估算结果是没有误差的。
()[A]正确[B]错误[是⾮][A]3.⼈的劳动消耗所付出的代价是软件产品的主要成本。
()[A]正确[B]错误[是⾮][B]4.功能点估算与项⽬所使⽤的语⾔和技术有关。
()[A]正确[B]错误[是⾮][B]5.COCOMO81有3个等级的模型:有机型、嵌⼊型、半嵌⼊型。
()[A]正确[B]错误[是⾮][B]6.经验对于估算来说不重要。
()[A]正确[B]错误[是⾮][A]7.估算时既要考虑直接成本⼜要考虑间接成本。
()[A]正确[B]错误[是⾮][B]8.在进⾏软件估算的时候,可以直接考虑参照其他企业的模型进⾏项⽬估算。
()[A]正确[B]错误[是⾮][B]9.间接成本是与⼀个具体项⽬相关的成本。
()[A]正确[B]错误[单选][C]1.下⾯关于估算的说法,错误的是()[A]估算是有误差的[B]估算时不要太迷信数学模型[C]经验对于估算来说不重要[D]历史数据对于估算来说⾮常重要[单选][B]2.()是成本的主要因素,是成本估算的基础。
[A]计划[B]规模[C]风险[D]利润[单选][D]3.常见的成本估算⽅法不包括()[A]代码⾏[B]功能点[C]类⽐法[D]关键路径法[单选][C]4.下列不是UFC的功能计数项是()[A]外部输出[B]外部⽂件[C]内部输出[D]内部⽂件[单选][A]5.成本预算的⽬的是()[A]⽣产成本基线[B]编写报告书[C]指导设计过程[D]⽅便进度管理[单选][D]6.估算的基本⽅法不包括()[A]代码⾏、功能点[B]参数估算法[C]专家估算法[D]函数估算法[单选][B]7.在项⽬初期,进⾏竞标合同时,⼀般采⽤的成本估算⽅法是()[A]参数估算法[B]类⽐估算法[C]专家估算法[D]功能点估算法[单选][D]8.下列不是软件项⽬规模单位的是()[A]源代码长度(LOC)[B]功能点(FP)[C]⼈天、⼈⽉、⼈年[D]⼩时[单选][B]9.在成本管理过程中,每个时间段中等各个⼯作单元的成本是()[A]估算[B]预算[C]直接成本[D]间接成本[简答]1.项⽬经理正在进⾏⼀个图书馆信息查询系统的项⽬估算,他采⽤Delphi的专家估算⽅法,邀请了3位专家进⾏估算,第⼀位专家给出了2万元、7万元、12万元的估算值,第⼆位专家给出了4万元、6万元、8万元的估算值,第三位专家给出了2万元、6万元、10万元的估算值,试计算这个项⽬的成本估算值。
软件项目成本管理

软件项目成本管理1.软件项目成本管理概述软件项目规模一般是指所开发软件的规模大小,它的度量方法一般有两种:LOC(Lines of Code):源代码程序长度的测量FP(Function Point):系统功能数量的测量软件项目工作量是指为了提供软件的功能而必须完成的软件工程任务量。
其度量单位为:人月、人天、人年:人在单位时间内完成的任务量为了确定工作量度量单位,可设定一个“标准程序员”,例如具有15~18个月开发经验的程序员。
工作量与规模紧密相关,此外还与项目和产品特性(如团队的技术和能力、所使用的语言和平台、团队的稳定性、项目中的自动化程度、产品复杂性等)相关。
在不会引起混淆的情况下,工作量和规模这两个概念可不做区别。
1.1.软件项目成本完成软件项目工作量相应付出的代价,即待开发软件项目所需要的资金。
人的劳动消耗所需要的代价是软件开发的主要成本。
成本一般采用货币单位来计算,如人民币、美元等。
1.2.工作量和成本的关系工作量是项目成本的主要考虑因素,完成项目工作量所消耗的成本是项目成本最主要的部分。
因此,项目的工作量估算和成本估算常常同时进行。
如果确定了单位工作量所消耗的成本,则可根据项目工作量直接计算出完成项目工作量所消耗的成本。
例如:如果一个软件项目的工作量是20人月,而企业的人力成本参数是2万元/人月,则完成项目工作量所需的成本是40万元。
1.3.软件项目成本的构成软件项目通常是技术密集型项目,其成本构成与一般的建设项目有很大区别,其中最主要的成本是在项目开发过程中所花费的工作量及相应的代价,它不包括原材料及能源的消耗,主要是人的劳动消耗。
一般来讲,软件项目的成本构成主要包括以下几种:(1)软硬件购置成本:这部分费用虽然可以作为企业的固定资产,但因技术折旧太快,需要在项目开发中分摊一部分费用。
(2)人工成本(软件开发、系统集成费用):主要是指开发人员、操作人员、管理人员的工资福利费等。
在软件项目中人工费用总是占有相当大的份额,有的可以占到项目总成本的80%以上。
软件工程中的软件工程规模与规模估算

软件工程中的软件工程规模与规模估算软件工程规模是指软件产品开发过程中需要涉及到的任务量、工作量以及项目的规模大小。
在软件工程中,准确估算软件工程规模对于项目管理和资源分配非常关键。
本文将探讨软件工程规模的定义、分类和估算方法,并介绍一些常用的软件工程规模估算模型。
一、软件工程规模的定义和分类软件工程规模是指开发某个软件产品所涉及到的任务数量和工作量。
根据规模的不同,可以将软件工程规模分为以下几个方面:1. 项目规模:项目规模是衡量软件工程项目复杂程度和大小的一个指标。
它与开发人员的数量、项目的时间周期以及涉及的功能要求等因素有关。
通常项目规模越大,需要的开发资源和时间也越多。
2. 功能规模:功能规模是指软件产品包含的功能数量和种类。
不同的软件产品功能规模差异较大,例如,一个简单的日历应用的功能规模远小于一个复杂的ERP系统。
3. 输入输出规模:输入输出规模是指软件产品接收和处理的输入输出数据量。
这包括用户输入的数据以及软件输出的结果。
输入输出规模的大小直接影响到软件的性能和运行效率。
4. 数据规模:数据规模是指软件产品处理和存储的数据量。
数据规模大的软件产品需要具备强大的存储和处理能力,因此其开发和维护成本也相对较高。
二、软件工程规模的估算方法在软件工程项目中,准确估算软件工程规模可以帮助项目管理者合理分配资源、预估项目完成时间,并提前发现潜在的风险和问题。
以下是一些常用的软件工程规模估算方法:1. 基于功能点的估算方法:功能点估算是一种常用的软件工程规模估算方法,它通过对软件的功能进行分类和计算,得出软件的规模。
功能点估算方法通常分为两种:基于功能点的详细估算和基于功能点的快速估算。
详细估算需要对每一个功能点进行仔细分析和计算,而快速估算则是通过对功能点进行评估和打分估算软件规模。
2. 基于源代码行数的估算方法:源代码行数是另一种常用的软件规模估算方法。
该方法通过统计软件项目中的源代码行数来估算软件规模。
《软件项目管理》授课计划

2. 干系人参与规划
3. 干系人参与管理
4. 干系人参与监督
第十章 项目整合管理
1.项目章程制定
2. 项目管理计划制定
3. 项目工作指导与管理
4.知识管理
5. 项目工作监控
6.项目整体变更控制
7. 项目收尾管理
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
3.项目干系人初识
4.项目章程制定
5.项目启动大会召开
第3章 项目范围管理
1.范围管理规划
2.需求收集
第3章 项目范围管理
3. 范围定义
4. WBS创建
5. 范围核实
6. 范围控制
第4章 项目进度管理
1.进度管理规划
2. 活动定义
3. 活动排序
4. 活动历时估算
第4章 项目进度管理
5. 制定进度计划
4. 团队建设
5. 团队管理
6. 资源控制
第8章 项目沟通管理
1.沟通管理规划
2. 沟通管理
3. 沟通监督第9章 项目风来自管理1. 风险管理规划
2. 风险识别
3. 风险分析(定性和定量)
4. 风险应对(规划和实施)
5. 风险控制
第10章 项目采购管理
1.采购管理规划
2. 采购实施
3.采购控制
第11章 项目干系人管理
2020-5-31
2020-6-5
2020-6-7
2020-6-12
2020-6-14
2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
2、估算的过程
16
成本估算过程
估算输入
成 本 估 算 方 法
估算结果
17
成本估算输入
项目需求、 WBS 历史项目度量 资源要求(资源编制计划) 资源消耗率:如人员成本: 100元/小时 进度规划:项目总进度(一般是合同要求) 学习曲线
18Biblioteka 资源规划 需要的资源种类、数量等
6
关于估算
估算不是很准确的,有误差的 经验(历史)数据非常重要
不要太迷信数学模型
7
软件项目规模
软件项目规模即工作量,是从软件项目范围中抽 出的软件功能,然后确定每个软件功能所必须执 行的一系列软件工程任务。 包括:软件规划,软件管理,需求,设计,编码, 测试,以及后期的维护等任务。
23
项目估算结果
估算文件 包括资源,资源的数量,质量标准,估算成 本等信息 单位:一般是货币单位 相关说明文件 工作范围的描述 估算的基础和依据 估算的假设 估算的误差变动等
24
3、估算的方法
25
成本估算方法 估算的基本单位介绍 1.代码行 2.功能点 3.对象点
10
成本的单位
货币单位 人民币元 美元 ……..
11
软件的规模和成本的关系
规模是成本的主要因素,是成本估 算的基础 有了规模就确定了成本。
12
成本估算定义
对完成项目所需费用的估计和计划 包括预测开发一个软件系统所需要的总工作量的过程。 是一种量化的结果 可以有一些误差 成本估算不同于项目定价 贯穿于软件的生存周期。
简单
3 4 3 5 7
31
一般
4 5 4 7 10
复杂
6 7 6 10 15
功能点计算实例-UFC
功能点
项
外部输入 外部输出 外部查询 外部文件 内部文件
简单 6*3
7*4 0*3 5*5 9*7
一般 2*4
7*5 2*4 2*7 0 * 10 301
32
复杂 3*6
0*7 4*6 3 * 10 2 * 15
8
规模的单位
LOC(Loc of Code):源代码程序长度的测量 FP(Function Point):用系统的功能数量来测量 人月 人天 人年
9
软件项目成本
指完成软件规模相应付出的代价。 待开发的软件项目需要的资金。 人的劳动的消耗所需要的代价是软件产品的主要成本 开发成本是以一次性开发过程所花费的代价来计算的
Business analysts Administrative staff
20
Technical writers Database analysts
成本估算
直接成本 间接成本
21
直接成本
与具体项目相关的成本
22
间接成本
不能具体到某个项目中的成本, 可以分摊到各个具体项目中的成本,例如: 培训 房租水电 员工福利 市场费用 管理费 其他等等
19
Sample Resource Histogram for a Large IT Project
12 10
Number of People
8 6 4 2 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Java programmers Managers Testing specialists
13
什么时候开始成本估算?
当决定竞标的时候 开发WBS 当中途接管一个项目的时候 当项目进行到下一个阶段的时候 项目范围变更的时候
14
成本估算的意义
在项目取得前对项目的成本进行评估 在取得项目后,进行开发项目时,为跟踪和管理项 目提供一个参考 没有很好的成本估算基础可能导致成本失控,最终 可以导致项目的失控和失败。
28
功能点的公式
FP= =UFC*TCF UFC:未调整功能点计数 TCF:技术复杂度因子
29
UFC-未调整功能点计数
功能计数项:
外部输入 外部输出 外部查询 外部文件 内部文件
30
UFC-未调整功能点计数
功能计数项的复杂度等级
复杂度权重因素
项
外部输入 外部输出 外部查询 外部文件 内部文件
总计 UFC
TCF-技术复杂度因子
TCF=0.65+0.01(sum(Fi)): Fi:0-5,TCF:0.65-1.35 技术复杂度因子 F1 F3 F5 F7 F9 F11 F13 可靠的备份和恢复 分布式函数 大量使用的配置 操作简单性 复杂界面 重复使用性 多重站点 F2 F4 F6 F8 F10 F12 F14
33
数据通信 性能 联机数据输入 在线升级 复杂数据处理 安装简易性 易于修改
1
引言
项目成功的必要条件
做好的计划 控制好计划
2
承上启下
确定项目的范围 需求规格 进行任务分解
3
RoadMap
合同管理 生存期 需求管理 任务分解 项目估算 项目进度
质量计划
配置计划 风险计划
团队管理
项目度量
集成项目 跟踪控制
4
项目结束
1、软件项目规模成本的概念
5
成本管理
资源计划编制: 确定项目需要的资源种类和数量 成本估算:中心环节 编制一个为完成项目各活动所需要的资源成本的近似 估算 成本预算:项目进度 将总成本估算分配到各单项工作活动上 成本控制:项目跟踪 控制项目预算的变更
代码行(LOC)
从软件程序量的角度定义项目规模。 LOC =NCLOC+CLOC
要求功能分解足够详细的 有一定的经验数据(类比和经验方法) 与具体的编程语言有关 生产率LOC/PM,LOC/hour等
27
功能点(FP)
功能点(FP)是用系统的功能的数量来测量其规模。 与实现产品所使用的语言和技术没有关系。 两个评估 内部基本功能 外部基本功能 加权和量化
第6章 规模成本估算
Scale cost estimation
吉林大学珠海学院教授 李军国
0
问题的提出
1. 成本管理包含哪些内容? 2. 软件规模的单位有哪些? 3. 什么时候开始成本估算? 4. 成本估算的意义? 5. 成本估算包含哪些输入内容? 6. 自下而上估算法的特点是什么? 7. 参数估算法的特点是什么? 8. 估算不准的主要原因有哪些? 9. 如何避免低劣的估算?