首页 > 编程学习 > 工程项目管理——第六章 软件项目成本计划

软件项目成本计划

估算过程概念

估算:

  • 估算不是很准确,有误差
  • 项目经验数据非常重要
  • 不要太迷信某些数学模型

软件项目规模

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

软件规模单位

  • LOC(Loc of Code):源代码长度测量
  • FP(Function Point):用系统的功能点来测量
  • 人月
  • 人天
  • 人年

成本的单位

  • 货币单位

软件规模和软件成本的关系

  • 规模是成本的主要因素,是成本估算的基础
  • 有了规模就确定了成本

成本估算结果

  • 直接成本:与项目相关的成本,例如:参与项目的人员成本
  • 间接成本:可以分摊到各个具体项目中的成本,例如:培训、房租水电、员工福利、市场费用、管理费等等

估算方法

  1. 代码行估算法
    从软件程序量的角度定义项目规模

    • 与具体的编程语言有关
    • 分解足够详细
    • 有一定的经验数据(类比和经验方法)

    优点:

    • 代码所有软件开发项目都有的"产品",而且很容易计算代码行数
      缺点:
    • 对代码行没有公认的可接受的标准定义
    • 代码行数量依赖于所用的编程语言和个人的编程风格
    • 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确的估算代码量
    • 代码行强调编码的工作量,只是项目实现阶段的一部分
  2. 功能点估算法

    • 与实现的语言和技术没有关系
    • 用锡永的功能数量来测量其规模
    • 通过评估、加权、量化得出功能点

    功能点公式:

    • FP = UFC * TFC
      • UFC:未调整功能点计数
      • TCF:技术复杂度因子

    UFC 功能计数项:

    1. 外部输入
    2. 外部输出
    3. 外部查询
    4. 外部接口文件
    5. 内部逻辑文件

    功能计数项的复杂度等级
    在这里插入图片描述
    TCF 技术复杂度因子

    • TCF = 0.65 + 0.01 * (sum(Fi))
    • Fi : 0 - 5,TCF : 0.65 - 1.35
      在这里插入图片描述

    功能点与代码行的转换

    • 在这里插入图片描述
  3. 用例点估算法
    在这里插入图片描述

    1. 计算未调整的角色的权值UAW
      在这里插入图片描述
      在这里插入图片描述

    2. 计算未调整的用例的权值UUCW
      在这里插入图片描述

    3. 计算未调整的用例的用力点WWCP
      在这里插入图片描述

    4. 计算技术和环境因子TEF

      • 计算技术因子TCF
        在这里插入图片描述
      • 计算环境因子ECF
        在这里插入图片描述
    5. 计算调整的用例点UCP
      在这里插入图片描述

    6. 计算工作量
      在这里插入图片描述

  4. 类比(自顶向下)估算法

    • 有类似的历史项目数据
    • 信息不足(例如市场招标)的时候
    • 要求不是非常精确估算的时候
  5. 自下而上估算法

    • 利用任务分解图(WBS),对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本
    • 相对比较准确,他的准确度来源于每个任务的估算情况
    • 花费时间
  6. 参数估算法
    定义:

    • 通过项目数据,进行回归分析,得出回归模型

    • 通过参数模型估算(规模)成本的方法
      使用条件:

    • 具有良好的项目数据为基础

    • 存在成熟的项目估算模型
      在这里插入图片描述

    • Walston-Felix模型
      在这里插入图片描述

    • COCOMO模型

      • COCOMO81
        在这里插入图片描述
        在这里插入图片描述
      • 中等的COCOMO-81
        在这里插入图片描述
  7. 专家估算法

    • 组织者确定专家,这些专家互不见面
    • 组织者发给每位专家一份软件规格说明
    • 专家以无记名对该软件给出3个规模的估算值
      • 最小ai
      • 最可能的mi
      • 最大bi
    • 组织者计算每位专家的
      Ei = (ai + 4mi + bi)/ 6
    • 如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程
    • 最终可以获得一个多数专家共识的软件规模:E=E1+E2+…En/n(N:表示N个专家)
  8. 实用软件估算步骤
    是一种自下而上和参数法

    1. 对任务进行分解:1,2,…,l,…n
    2. 估算每个工作包的成本Ei
    3. 直接成本:E1+E2+…+Ei+…En
    4. 间接成本估算
    5. 项目总估算成本 = 直接成本+间接成本

一. 单选题(共9题,34.2分)

  1. (单选题)下面关于估算的说法,错误的是( )
    A. 估算是有误差的
    B. 估算时不要太迷信数学模型
    C. 经验对于估算来说不重要
    D. 历史数据对于估算来说非常重要
    正确答案: C

  2. (单选题)( )是成本的主要因素,是成本估算的基础。
    A. 计划
    B. 规模
    C. 风险
    D. 利润
    正确答案: B

  3. (单选题)常见的成本估算方法不包括( )
    A. 代码行
    B. 功能点
    C. 类比法
    D. 关键路径法
    正确答案: D

  4. (单选题)下列不是UFC的功能计数项是( )
    A. 外部输出
    B. 外部文件
    C. 内部输出
    D. 内部文件
    正确答案: C

  5. (单选题)成本预算的目的是( )
    A. 生产成本基线
    B. 编写报告书
    C. 指导设计过程
    D. 方便进度管理
    正确答案: A

  6. (单选题)估算的基本方法不包括( )
    A. 代码行、功能点
    B. 参数估计法
    C. 专家估算法
    D. 函数估算法
    正确答案: D

  7. (单选题)在项目初期,进行竞标合同时,一般采用的成本估算方法是( )
    A. 参数估算法
    B. 类比估算法
    C. 专家估算法
    D. 功能点估算法
    正确答案: B

  8. (单选题)下列不是软件项目规模单位的是( )
    A. 源代码长度(LOC)
    B. 功能点(FP)
    C. 人天、人月、人年
    D. 小时
    正确答案: D

  9. (单选题)在成本管理过程中,每个时间段中等各个工作单元的成本是( )
    A. 估算
    B. 预算
    C. 直接成本
    D. 间接成本
    正确答案: B

二. 填空题(共5题,19分)
10. (填空题)软件项目成本包括直接成本和间接成本,一般而言,项目人力成本归属于( )
正确答案:
(1) 直接成本

  1. (填空题)在项目初期,一般采用的成本估算方法是( )。
    正确答案:
    (1) 类比估算法

  2. (填空题)功能点方法中5类功能组件的计数项是( )、( )、( )、( )、( )。
    正确答案:
    (1) 外部输入
    (2) 外部输出
    (3) 外部查询
    (4) 内部逻辑文件
    (5) 外部接口文件

  3. (填空题)软件项目的主要成本是( )。
    正确答案:
    (1) 人的劳动的消耗所需要的代价

  4. (填空题)( )方法通过分析用例角色、场景和技术与环境因子等来进行软件估算。
    正确答案:
    (1) 用例点
    三. 判断题(共9题,34.2分)

  5. (判断题)软件项目规模就是软件项目工作量。
    A. 对
    B. 错
    正确答案: 对

  6. (判断题)在软件项目估算中,估算结果是没有误差的。
    A. 对
    B. 错
    正确答案: 错

  7. (判断题)人的劳动消耗所付出的代价是软件产品的主要成本。
    A. 对
    B. 错
    正确答案: 对

  8. (判断题)功能点估算与项目所使用的语言和技术有关。
    A. 对
    B. 错
    正确答案: 错

  9. (判断题)COCOMO81有3个等级的模型:有机型、嵌入型、半嵌入型。
    A. 对
    B. 错
    正确答案: 错

  10. (判断题)经验对于估算来说不重要。
    A. 对
    B. 错
    正确答案: 错

  11. (判断题)估算时既要考虑直接成本又要考虑间接成本。
    A. 对
    B. 错
    正确答案: 对

  12. (判断题)在进行软件估算的时候,可以直接考虑参照其他企业的模型进行项目估算。
    A. 对
    B. 错
    正确答案: 错

  13. (判断题)间接成本是与一个具体项目相关的成本。
    A. 对
    B. 错
    正确答案: 错

四. 计算题(共3题,12.6分)

  1. (计算题)项目经理正在进行一个图书馆信息查询系统的项目估算,他采用Delphi 的专家估算方法,邀请了3位专家进行估算,第一位专家给出了2万元、7万元、12 万元的估算值;第二位专家给出了4万元、6万元、8万元的估算值,第三位专家给出了2万元、6万元、10万元的估算值,试计算这个项目的成本估算值。
    正确答案:
    6.33(万元)
    答案解析:专家一: Ei=(ai+4mi+bi)/6= (2+47+12) /6=7专家二: Ei=(ai+4mi+bi)/6= ( 4+46+8) /6=6专家三: Ei=(ai+4mi+bi)/6= (2+4*6+10) /6=6Ei = (7+6+6)/3=6.33(万元)

  2. (计算题)如果某软件公司正在进行一个项目,预计有50KLOC 的代码量,项目是中等规模的半嵌入型的项目,采用中等COCOMO模型,项目属性中只有可靠性为很高级别(即取值为1.3),其他属性为正常(书上说,正常就是1)。计算项目是多少人月的规模,如果是2万元/人月,则项目的费用是多少?
    正确答案:
    查表a=3,b=1.12, F=1(人月)
    所以项目的费用为2* Effort=623.64万元

  3. (计算题)已知某项目使用c语言完成,该项目共有85个功能点,请用IBM模型估算源代码行数、工作量、项目持续时间、人员需要量以及文档数量。
    正确答案:
C语言代码行与功能点的关系近似为150L0C/FP ,所以,85个功能点代码行数为 L85*150=12750行=1.75KLOC,则:
工作量估算 (人月)
项目时间 (月)
人员需求量 (人)
文档数量(页)

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号