6软件项目规模成本估算_第1页
6软件项目规模成本估算_第2页
6软件项目规模成本估算_第3页
6软件项目规模成本估算_第4页
6软件项目规模成本估算_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件项目管理与质量保证 chapter 7 0 黑龙江大学软件学院 软件开发项目管理 第六章软件项目规模成本估算 chapter 6 1 本章要点 一 软件项目规模成本的概念二 估算的过程三 估算的方法四 估算的误差 chapter 6 2 成本管理过程 资源计划编制 确定项目需要的资源种类和数量成本估算 中心环节编制一个为完成项目各活动所需要的资源成本的近似估算成本预算 项目进度将总成本估算分配到各单项工作活动上成本控制 项目跟踪控制项目预算的变更 chapter 6 3 关于估算 估算不是很准确的 有误差的经验 历史 数据非常重要不要太迷信数学模型 chapter 6 4 软件项目规模 软件项目规模即工作量 是从软件项目范围中抽出的软件功能 然后确定每个软件功能所必须执行的一系列软件工程任务包括 软件规划 软件管理 需求 设计 编码 测试 以及后期的维护等任务 chapter 6 5 规模的单位 LOC LocofCode 源代码程序长度的测量FP FunctionPoint 用系统的功能数量来测量人月人天人年 chapter 6 6 软件项目成本 完成软件规模相应付出的代价 待开发的软件项目需要的资金 人的劳动消耗所需要的代价是软件产品的主要成本开发成本是以一次性开发过程所花费的代价来计算的 chapter 6 7 软件的规模和成本的关系 软件项目规模 工作量 是成本的主要因素 是成本估算的基础有了规模就确定了成本 如一个项目需要20人月 3万元 人月 则项目的成本是60万 chapter 6 8 成本估算定义 对完成项目所需费用的估计和计划包括预测开发一个软件系统所需要的总工作量的过程 是一种量化的结果可以有一些误差 通常需要一定的调节成本估算不同于项目定价贯穿于软件的生存周期 只要WBS有变化就需要进行成本估算估计成本 资源 进度时需要经验 历史信息 chapter 6 9 本章要点 一 软件项目规模成本的概念二 估算的过程三 估算的方法四 估算的误差 chapter 6 10 成本估算过程 估算输入 估算结果 成本估算方法 chapter 6 11 成本估算输入 项目需求 WBS历史项目度量资源要求 资源编制计划 资源消耗率 资源单价 如人员成本 100元 小时进度规划 项目总进度 一般是合同要求 学习曲线 项目组学习某项技术的时间 chapter 6 12 资源规划 需要的资源种类 数量等 chapter 6 13 一个大型IT项目的示例资源直方图 chapter 6 14 成本估算 规模成本估算主要是对各种资源的估算 包括人力资源 设备 资料等 直接成本间接成本这些估算的算法下节讲 chapter 6 15 直接成本 与具体项目相关的成本 人员的工资 材料费 外包外购成本等 包括开发成本 管理成本 质量成本等 chapter 6 16 间接成本 不能具体到某个项目中的成本 可以分摊到各个具体项目中的成本 例如 培训房租水电员工福利市场费用管理费其他等等 chapter 6 17 项目估算结果 估算结果包括估算文件和估算说明估算文件包括资源 资源的数量 质量标准 估算成本等信息单位 一般是货币单位 或是规模单位BAC BudgetAtcompletion预算完成 估算说明工作范围 通常由WBS获得估算的基础和依据 即确认估算是合理的和估算是根据什么产生的确认为成本估算所做的任何假设的合理性估算的误差变动等 chapter 6 18 本章要点 一 软件项目规模成本的概念二 估算的过程三 估算的方法四 估算的误差 chapter 6 19 估算的基本方法 代码行 功能点 用例点类比 自顶向下 估算法自下而上估算法参数法估算法专家估算法 chapter 6 20 代码行 LOC 从软件程序量的角度定义项目规模 要求功能分解足够详细的有一定的经验数据 类比和经验方法 与具体的编程语言有关 chapter 6 21 1 静态单变量估算模型 这种模型在计算软件开发的资源花费时 只需要设定被开发软件的一种参数 故称为单变量型 它的一般形式是 资源 C1 估计的软件特征 C2其中 资源可以是开发工作量 E 开发时间 T 或开发人数 P 等 估计特征可以用源程序长度 L 或软件的开发工作量 E C1 C2为依赖于开发环境和软件应用领域的两个经验常数 1 静态单变量成本估算模型 自1973年至l977年 Walston与Felix从60个软件项目 源程序长度从4至467千行 工作量从l2至11758个人 月 使用了28种不同的高级语言 的统计中导出了以下的一组参数方程 E 人 月 5 1 L 千行 0 91T 月 4 1 L 千行 0 36T 月 2 47 E 人 月 0 35P 人 0 54 E 人 月 0 6文档长度 页 49 L 千行 1 01这组方程在计算E T P等开发所需的资源时 使用L 千行 作为估计的特征 由L计算开发时间 工作量或文档页数 再由算出的工作量E来计算开发时间与所需人数 这类模型简单易懂 常数C1 C2可以从历史数据导出 但如果没有适用于本单位情况的经验常数 就不能直接搬用 2 Putnam成本估算模型 Putnam模型是一种动态多变量资源模型 可以用下面的方程式来表示 L cK1 3T4 3或K L3 c3T4 其中L 行 与T 年 仍分别代表源程序长度和开发时间 K表示全生存期 含维护在内 所需要的工作量 人 年 对大型软件而言 其大小约为开发工作量E的2 5倍 即E 0 4K c是一个与开发环境有关的常数 对 优良 好 与 不好 的3种环境 c的典型值可分别取l2500 10000与6500 2 Putnam成本估算模型 这个模型发表于1978年 是L Putnam对50个大型军用软件 生存期工作量均在30人一年以上 研究得出的结果 后来又对另外l50个大型软件进行验证 也取得满意的效果 一般认为 规模在10万行以上的软件 用这个模型是适当的 Putnam模型的特点 是在同一个模型中给出了K 或E L和T三者之间的关系 例如 给定了L和T 就可以用它来估计开发所需的工作量E 如果估计的程序长度有一个范围 例如从L1 L2 则在保持工作量不变的情况下 可算出相应的开发时间T1与T2等 Putnam模型方程揭示了E与T之间的关系 根据这一方程 开发工作量E与开发时间T的4次方成反比 这表明 开发时间的小量变化 会引起开发工作量相当大的变化 如果把开发时间成倍延长 则一个原来需要100个人一月完成的项目 能够把工作量降低到仅需6 5个人 月 100 24 3 COCOMO模型 1 按照软件的应用领域和复杂程度 将它们分为组织 Organic 半独立 Semide tached 和嵌入 Embeded 3种类型 每类分别使用一组不同的模型方程 如表11 1中由上向下 程序的复杂度逐步提高 E和T的计算值也随之增大 3 COCOMO模型 2 在模型中增加一个工作量调节因子EAF EffortadjustmentFactor 反映各种有关因素对软件开发的影响 Boehm把这些因素归结为4类共l5种因子 如下表所示 每种因子的可根据实际情况在一定范围内上下浮动 模型中使用的调节因子值 就是这15种因子的值的乘积 可以写作EAF i 1 2 15 3 COCOMO模型 示例 示例 1 换用水平较低的开发人员本例中原来使用较高水平的分析员和程序员 一个人 月的花费是6000美元 如果换用5000美元 人 月的人员 则人员水平的两个调节因子均将从0 86上升为1 00 整个EAF值将从原来的l 17变成l 17 0 86 0 86 1 58 开发成本不仅没有节省 反比原来有所增长 请看下面的计算 原开发成本 6000 44 4 1 17 311400新开发成本 5000 44 4 1 58 350760 示例 2 扩充内存储器容量假定原有的内存容量为64KB 允许软件使用的内存为46KB 现决定增加l0000美元购买内存扩充板 使软件可用的内存从46KB扩充为96KB 这样 内存容量的调节因子值可从原来的l 06 见11 2末栏第5项 下降为1 00 从而使EAF从1 17下降为1 10 虽然新增加10000美元的投资 总开发成本仍可望下降 以下是新成本的算式 6000 44 4 1 10 10000 293000 功能点 FP 用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化 chapter 6 32 功能点的公式 FP UFC TCFUFC 未调整功能点计数TCF 技术复杂度因子 chapter 6 33 UFC 未调整功能点计数 功能计数项 外部输入 由用户提供的用来描述面向应用的数据项 如屏幕 表单 对话框 控件 文件等 外部输出 那些向用户提供的用来生成面向应用的数据项 外部查询 要求回答的交互式输入的项外部文件 对其他系统的机器可读界面的项内部文件 系统里的逻辑主文件的项 chapter 6 34 UFC 未调整功能点计数 功能计数项的复杂度等级 chapter 6 35 功能点计算实例 UFC chapter 6 36 TCF 技术复杂度因子 TCF 0 65 0 01 sum Fi Fi 0 5 TCF 0 65 1 35 chapter 6 37 技术复杂度因子的取值范围 chapter 6 38 功能点计算实例 假设一个软件项目所有技术复杂度都是平均程度 即技术复杂度因子的值都为3 则计算功能点如下 FP UFC TCFUFC 301TCF 0 65 0 01 14 3 1 07FP 301 1 07 322 chapter 6 39 功能点与代码行的转换 40 用例点估算模型 chapter 3 41 用例点估算模型 chapter 3 42 用例点估算方法的基本步骤 计算未调整的角色的权值UAW 计算未调整的用例的权值UUCW 计算未调整的用例点UUCP 计算技术和环境因子TEF和ECF计算调整的用例点UCP 计算工作量 man hours chapter 6 43 1 计算未调整的角色的权值UAW UAW chapter 6 44 2 计算未调整的用例的权值UUCW UUCW chapter 6 45 3 计算未调整的用例点UUCP UUCP UAW UUCW 例如 chapter 3 46 4 计算技术因子TCF chapter 6 47 5 环境复杂度因子 ECF 6 计算调整的用例点UCP chapter 6 49 UCP UUCP TCF ECF 110 1 02 0 62 70ECF为环境复杂度因子 7 计算工作量 如果 PF 20工时 用例点则 Effort UCP PF 70 20 1400h 175人天 chapter 6 50 估算的基本方法 代码行 功能点 用例点类比 自顶向下 估算法自下而上估算法参数法估算法专家估算法 chapter 6 51 类比 定义 从项目的整体出发 进行类推 即估算人员根据以往的完成类似项目所消耗的总成本 或工作量 来推算将要开发的软件的总成本 或工作量 然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式 chapter 6 52 类比 使用情况 有类似的历史项目数据信息不足 要求不是非常精确 的时候在合同期和市场招标时在高层对任务的总的评估 chapter 6 53 类比 特点 简单易行 花费少具有一定的局限性准确性差 可能导致项目出现困难 chapter 6 54 类比 举例 证券交易网站需求类似历史数据 10万学习曲线 5 8万 chapter 6 55 估算的基本方法 代码行 功能点 对象点类比 自顶向下 估算法自下而上估算法参数法估算法专家估算法 chapter 6 56 自下而上 定义 利用任务分解结构图 对各个具体工作包进行详细的成本估算 然后将结果累加起来得出项目总成本 chapter 6 57 自下而上 使用情况 在进入项目开始以后 WBS以后的开发阶段需要进行准确估算的时候 chapter 6 58 自下而上 特点 这种方法准确 它的准确度来源于每个任务的估算情况非常费时 估算本身也需要成本支持可能发生虚报现象 chapter 6 59 估算的基本方法 代码行 功能点 对象点类比 自顶向下 估算法自下而上估算法参数法估算法专家估算法 chapter 6 60 参数估算法 定义 一种使用项目特性参数建立数据模型来估算成本的方法 是一种统计技术 如回归分析和学习曲线 参考历史信息根据实际情况 对参数模型按适当比例调整模型可以简单也可以复杂 很少有通用性 chapter 6 61 参数估算法 使用情况 存在成熟的项目估算模型应该具有良好的数据库数据为基础目前软件企业估算很少使用通用的数学模型 chapter 6 62 参数估算法 估算单位 每个任务必须至少有一个统一的规模单位 例如KLOC FP人天 人月 人年参数 xx元 KLOC xx元 FP xx元 人天 chapter 6 63 参数估算法 特点 比较简单 而且也比较准确如果模型选择不当或者数据不准 也会导致偏差 chapter 6 64 参量成本估算实例 适合单价合同 chapter 6 65 软件成本估算模型 理论导出 不成熟阶段经验导出 软件估算常常采用 chapter 6 66 经验导出成本模型 提供工作量 规模 的直接估计通过过去项目数据 进行回归分析 得出的回归模型依据不同的细化程度 通过参数的输入来进行成本估算 通常 输入包括产品的预计规模产品的自然属性组织能力项目性质 chapter 6 67 经验导出成本模型 整体公式 E A B S CE 以人月表示的工作量A B C 经验导出的常数S 主要的输入参数 通常是LOC FP等 chapter 6 68 经验导出成本模型 续 面向LOC驱动的Walston Felix IBM E 5 2 KLOC 0 91Balley BasiliE 5 5 0 73 KLOC 1 16 COCOMOE 3 2 KLOC 1 05DotyE 5 288 KLOC 1 047 chapter 6 69 估算的基本方法 代码行 功能点 用例点类比 自顶向下 估算法自下而上估算法参数法估算法专家估算法 chapter 6 70 专家估算法 由多位专家进行成本估算 一个专家可能会有偏见 最好由多位专家进行估算 取得多个估算值 最后得出综合的估算值 chapter 6 71 专家估算法 Deiphi 组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格 请他们估算专家详细研究软件规格说明后 对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei ai 4mi bi 6 chapter 6 72 专家估算法 Deiphi 续 综合结果后 E E1 E2 En n N 表示N个专家 再组织专家无记名填表格 比较估算差 并查找原因如果各个专家的估算差异超出规定的范围 例如 15 则需重复上述过程 最终可以获得一个多数专家共识的软件规模 chapter 6 73 专家估算法 举例 某多媒体信息查询系统 专家估算专家1 1 8 9 1 9 4 8 6 7 万元 专家2 4 6 8 4 8 4 6 6 6 万元 估算结果 6 7 2 6 5 万元 chapter 6 74 估算方法总结 初期类比专家估算计划阶段自下而上参数模型实施阶段 包括变更发生 自下而上参数模型 chapter 6 75 成本估算方法综述 主要考虑三种模型 类比法 自下而上法 参数法 自下而上法费时费力 参数法比较简单自下向上法与参数法的估计精度相似各种方法不是孤立的 应该注意相互的结合使用类比法通常用来验证参数法和自下而上法的结果 chapter 6 76 实用软件估算模型 是一种自下而上和参数法的结合模型 步骤如下 对任务进行分解估算每个任务的成本Ei直接成本 E1 E2 Ei En项目总估算成本 直接成本 间接成本项目总报价 项目总估算成本 风险利润风险利润 利润 风险基金 税 chapter 6 77 估算每个任务的成本 直接估算成本Ei先估算规模Qi 然后估算成本Ei Qi 人力成本参数唯一估计值 Qi AvgPERT算法 Qi Max 4Avg Min 6 退出 chapter 6 78 直接成本估算 直接成本组成开发成本管理成本质量成本直接成本 规模 人力成本参数简易估算 开发 工作量 规模 Scale Dev 单位 人月 管理 质量 工作量 规模 Scale Mgn a Scale Dev a 比例系数 例如 20 25 chapter 6 79 直接成本估算 直接成本 规模 人力成本参数例如 人力成本参数 2万 人月 30人月的项目的直接成本是60万 退出 chapter 6 80 项目总估算成本 估算成本 直接成本 间接成本间接成本估算 按照企业模型直接估算 简易算法 间接成本 直接成本 间接成本系数间接成本 规模 人力成本参数 间接成本系数例如 间接成本系数 1 5 3 chapter 6 81 项目总估算成本 估算成本 直接成本 间接成本估算成本 规模 人力成本参数 1 间接成本系数 成本系数 人力成本参数 1 间接成本系数 简易算法 估算成本 规模 成本系数例如 成本系数 3万 人月 退出 chapter 6 82 项目总报价 项目总报价 项目总估算成本 风险利润项目利润 估算成本 a 风险基金 估算成本 a 税 估算成本 b 例如 b为5 5左右 项目总报价 x 项目总估算成本 chapter 6 83 本章要点 一 软件项目规模成本的概念二 估算的过程三 估算的方法四 估算的误差 chapter 6 84 估算准确度 chapter 6 85 估算不准的原因 基础数据不足缺乏经验的估算人员签约前后不连贯低劣的推测技术估算对需求的敏感性 chapter 6 86 对付估算误差 避免低劣估算处理低劣估算带来的后果 chapter 6 87 避免低劣估算 避免无准备的估算留出估算的时间 并做好计划使用以前的项目数据使用以开发人员为基础的估算分类法估算详细的较低层次上的估算使用几种不同估算技术 并比较它们的结果 chapter 6 88 处理低劣估算带来的后果 通过数据说明资源不足 争取更多资源强化变更管理程序确定目标的优先次序 chapter 6 89 估算的表达方式技巧 加减限定6个人月 3人月 1人月范围5 9人月 chapter 6 90 估算的表达方式技巧 3 风险量化 见下例 chapter 6 91 估算的表达方式技巧 4 情况 见下 案例估算的例子 chapter 6 92 本章要点 一 软件项目规模成本的概念二 估算的过程三 估算的方法四 案例分析四 估算的误差 chapter 6 93 医疗信息商务平台成本估算 M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论