软件开发过程与项目管理(6.软件项目成本计划)

软件开发过程与项目管理(6.软件项目成本计划)

课件

估算过程概念

软件项目规模

软件项目规模即工作量包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务
软件规模单位包括:

  • 源代码长度的测量:LOC(Loc of Code)
  • 用系统的功能数量来测量:FP(Function Point)
  • 人月
  • 人天
  • 人年
软件项目成本
  • 完成软件规模相应付出的代价
  • 待开发的软件项目需要的资金
  • 人的劳动的消耗所需要的代价是软件产品的主要成本
  • 成本的单位包括(人民币元、美元、…)
成本估算
  • 规模是成本的主要因素,是成本估算的基础
  • 有了规模就确定了成本
  • 估算不是很准确,有误差
  • 项目经验数据非常重要
  • 不要太迷信某些数学模型
  • 成本估算结果包括:直接成本(与具体项目相关的成本);间接成本(可以分摊到各个具体项目中的成本)

估算方法

代码行估算法

要求:功能分解足够详细,同时还要有一定的经验数据
优点:代码是所有软件开发项目都有的产品,而且很容易计算代码行数
缺点:

  • 对代码行没有公认的可接受的标准定义
  • 代码行数量依赖于所用的编程语言和个人的编程风格
  • 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量。
  • 代码行强调编码的工作量,只是项目实现阶段的一部分。
功能点估算法(Albrecht)
  • 适合于信息系统估算
  • 与实现的语言和技术没有关系
  • 用系统的功能数量来测量其规模
  • 通过评估、加权、量化得出功能点
  • 功能点公式:FP = UFC * TCF(FP:功能点;UFC:未调整功能点计数;TCF:技术复杂度因子)
  • 功能计数项(外部输入EI、外部输出EO、外部查询EQ、外部接口文件EIF、内部逻辑文件ILF)
用例点估算法

用例点估算法通过分析用例角色、场景和技术与环境因子等来进行软件估算,估算中用到很多变量和公式,如未调整用例点、技术复杂度因子和环境复杂度因子等变量。
基本步骤如下:

  • 对每个角色进行加权,计算未调整的角色的权值
  • 计算未调整的用例权值
  • 计算未调整的用例点
  • 计算技术和环境因子
  • 计算调整的用例点
  • 计算工作量
类比(自顶向下)估算法

类比估算法是从项目的整体出发,进行类推,即估算人员根据以往完成类似项目所消耗的总成本(或工作量)来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中,是种自上而下的估算形式,也称为自顶向下方法。
优点:在项目的初期信息不足时采用此方法,如合同期和市场招标时等。简单易行,花费少。
缺点:具有一定的局限性,准确性差,可能导致项目出现困难。

参数估算法(cocomo、Walton-felix、神经网络)

参数模型估算法的基本思想是找到软件工作量的各种成本影响因子,并判定其对工作量所产生影响的程度是可加的、乘数的还是指数的,以期得到最佳的模型算法表达形式。
优点:

  • 参数模型可以提供工作量(规模)的直接估计。
  • 因为是算法模型或者经验导出模型,是通过大量的项目数据进行数学分析导出的模型,因此结果相对比较准确。
    缺点:
  • 目前没有一种模型或者方法能适应所有项目。
专家估算法

专家估算法是由一些被认为是该任务专家的人来进行的,并且估算过程的很大一部分是基于不清晰、不可重复的推理过程,也就是直觉。
在这里插入图片描述

特点:

  • 专家估算法是一种经验估算法,也是一种原始的估算方法。
  • 进行估算的人有专门的知识和丰富的经验,据此提出一个近似的数据。
  • 此方法只适用于要求很快拿出项目的大概数字的情况,不适用于要求详细估算的项目。
故事点估算法(敏捷项目)

敏捷开发模型scrum中,整个团队参与估算过程

总成本估算

成本估算结果包括:

  • 直接成本:与具体项目相关的成本(例如:参与项目的人员成本)
  • 间接成本:可以分摊到各个具体项目中的成本(例如:培训、房租水电、员工福利、市场费用、管理费、其它等等)
    项目总估算成本:
    =直接成本+间接成本
    =规模*成本系数

成本预算

成本预算是将项目的总成本按照项目的进度分摊到各个工作单元中去
成本预算的目的是产生成本基线
分配项目成本预算包括三种情况:

  • 给任务分配资源成本
  • 给任务分配固定资源成本
  • 给任务分配固定成本

主观题

在这里插入图片描述

客观题

在成本管理过程中,项目经理确定的每个时间段,各个工作单元的成本是:预算
软件项目规模的衡量单位:源代码长度(LOC)、功能点(FP)、人天人月人年
在项目初期,进行竞标合同时,一般采用的成本估算方法是:类比估算法
估算的基本方法:代码行功能点、参数估算法、专家估算法
成本预算的目的是:产生成本基线
UFC功能计数项:1、外部输出;2、外部接口文件;3、内部逻辑文件
规模是成本的主要因素,是成本估算的基础
COCOMO 81有3个等级的模型:有机模型、嵌入式模型、半有机模型(错误)
功能点估算与项目所使用的语言和技术有关(错误)
人的劳动消耗所付出的代价是软件产品的主要成本(正确)
软件项目规模即工作量(正确)
用例点方法通过分析用例角色、场景和技术与环境因子等来进行软件估算
软件项目的主要成本是人的劳动的消耗所需要的代价
功能点方法中5类功能组件的计数项是
  • 外部输入
  • 外部输出
  • 外部查询
  • 外部接口文件
  • 内部逻辑文件
软件项目成本包括直接成本和间接成本,一般而言,人力成本归属于直接成本
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值