软件项目成本管理课件_第1页
软件项目成本管理课件_第2页
软件项目成本管理课件_第3页
软件项目成本管理课件_第4页
软件项目成本管理课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

软件项目成本管理课件 第三章软件项目成本管理 软件项目成本管理课件 项目案例 案例角色和人物 小王 软件项目负责人 老王 公司技术老总 软件项目成本管理课件 项目管理需要定量描述 在项目策划阶段的碰头会上公司技术总监询问小王项目开发估计需要多少时间 需要多少成本 小王回答说 时间估计不会太长 成本也在一个可接受的范围之内 老王显然对这种回答不满意 他希望能够得到一个较为准确定量性的描述经过一番考虑后 小王确认回答说 时间7 8个月 成本需40 45万 老王显然对这种回答也不满意 况且用户要求在6个月内完成项目 于是他进一步问道 你是如何得到这组数据 小王显然没有准备 也没有充分的依据 于是他哑口无言 软件项目成本管理课件 项目管理需要定量描述 在制定软件项目计划时小王不知如何预测项目可能所需的工作量 小王不知如何预测项目可能所需的成本 小王不知所制定的计划是否可行和科学 因此 小王尽管制定了软件开发计划 但对于该计划能否得到有效的实施 实施能否遵循计划执行没有足够的信心 软件项目成本管理课件 项目管理需要定量描述 项目已进展了2个月 各个方面进展尚可 在某周的碰头会上 老王继续向小王发问 目前软件质量如何 小王回答道 不错 老王对这种回答不满意 他希望能够得到一个较为准确定量性的描述 但是小王又没有办法给他一个更加确切的答复 实际上连他自己也没有办法说清楚目前软件产品的质量情况 因为他只有直观的 定性了解 软件项目管理中 定量分析是重要的 软件项目成本管理课件 目录 概述软件项目规模估算软件项目成本估算软件项目成本监控案例 软件项目成本管理课件 概述 成本的概念 成本的概念不同领域解释不同 软件项目管理中 通常人们用 完成软件项目而支付的货币量 来衡量 项目成本大体包括以下4个方面 人力资源成本 干系人的工资 福利 招聘及培训等成本费用 软硬件资源成本 开发及测试工具 服务器 网络设备及其他软硬件资源的占用费 商务活动成本 差旅费 通信费 接待等费用 其他成本费用 软件项目成本管理课件 概述 成本管理 成本管理目标 确保在批准的预算内完成项目所需的各项任务 软件项目成本管理包括的方面 软件系统规模估算软件项目成本估算软件项目成本预算制订软件项目成本监控 软件项目成本管理课件 概述 成本估算的时机 软件项目成本估算是随项目的进行而进行的一个逐步求精的过程 初期 未知因素多 估算精度相对较低 但意义重大 随着项目进行 未定因素明确 估算精度趋于准确 矛盾体 时机与精度 项目经理 尽可能寻找对立程度最小的估算方法 软件项目成本管理课件 概述 成本估算的时机 在软件生命周期的5个时间点进行估算比较合理 可行性论证 客户需求阶段 进行估算以决定即将开始的项目是否有利 需求分析 完成了需求报告 进行估算以便再次权衡产品的可行性 系统设计 给出了完整的软件体系结构和各个子系统及模块的说明 进行估算考虑如何将设计好的系统开发出来及有没有被忽视的问题 系统实现 系统实现之后 前面各项活动中所耗费的资源和软件工作量均可以获得 此时进行估算可对原有估算进行调整 后期需要的工作则按此估算进行计划 系统运行维护 进行估算可将实际的消耗与各个阶段估算值进行比较 认识到需要提高的地方 积累经验 软件项目成本管理课件 软件项目规模估算 WBS WorkBreakdownStructure 工作分解结构项目估算遇到的第一个问题 软件规模 程序量 对规模的估计要从软件的分解开始 软件项目的设计有一个分层结构 对应着WBS 度量标准代码行 LinesofCode LOC 面向规模 功能点 FunctionPoints FP 面向功能 估算原则技术允许情况下 从最详细的WBS开始精确定义度量标准估计底层每一模块的规模 汇总以得到总体估计适当考虑偶然因素的影响 软件项目成本管理课件 软件项目规模估算 LOC估计 LOC 源代码的总行数 分为无注释的源代码行NCLOC和注释的源代码行CLOC LOC NCLOC CLOC开发经验的增加使得软件组织积累了很多LOC估计的功能实例 为新的估计提供了比较的基础 1LOC和人月均代码行数体现了生产能力 生产率 代码总量 单位 KLOC 软件工作量 单位 人月 软件项目成本管理课件 LOC估算实例 例如 某软件公司统计发现该公司每一万行C语言源代码形成的源文件 c和 h文件 约为250K 某项目的源文件大小为3 75M 则可估计该项目源代码大约为15万行 该项目累计投入工作量为240人月 每人月费用为10000元 包括人均工资 福利 办公费用公滩等 则该项目中1LOC的价值为 240 10000 150000 16元 L 软件项目成本管理课件 LOC估算方法的特点 优点 简单易行 自然直观 缺点 依赖于程序设计语言的表达能力和功能软件开发初期很难估算出最终软件的代码行数对精巧的软件项目不合适只适合于过程式程序设计语言 软件项目成本管理课件 软件项目规模估算 FP估计 系统需求分析阶段基于系统功能的一种规模估计方法 用软件的功能来表示软件规模 功能 不能直接度量 需要依靠其他度量结果导出 功能点度量涉及多种因素 通过研究初始应用需求来确定各种输入 输出 查询及外部文件和内部文件的数量 从而确定功能点数量 国际功能点用户组 InternationalFunctionPointUsersGroup IFPUG 已经公布了相关标准 说明哪些部分组成应用的一个功能 一个功能等价于处理显示器上的一屏显示或者一个表单 项目开发初期就可估算出 功能点计算目前主要基于经验公式 即FP UFC TCF 软件项目成本管理课件 计算UFC 未调整的功能点数 的步骤 Step1 计算输入 输出 查询 外部文件和内部文件的数量 输入 由用户提供的 如文件名和菜单选项 输出 面向用户提供的 如报告和信息 查询 要求回答的交互式输入 外部文件 对其他系统的机器可读界面 内部文件 系统里的逻辑主文件 软件项目成本管理课件 功能点的复杂度权重表 Step2 判断项目复杂性 有了以上5个功能项的数量后 再由估算人员对项目的复杂性做出判断 大致分为简单 一般和复杂3种情况 软件项目成本管理课件 计算UFC UFC的计算方法用户输入数 权重 简单 3 一般 4 复杂 6 用户输出数 权重 简单 3 一般 5 复杂 7 用户查询数 权重 简单 3 一般 4 复杂 6 外部文件数 权重 简单 7 一般 10 复杂 15 内部文件数 权重 简单 5 一般 7 复杂 10 UFC 上述计算值的总和 软件项目成本管理课件 计算TCF 技术复杂性因子 技术复杂性因子的组成 有14个部分 每个组成部分按照其对系统的重要程度分为6个等级 相应的赋予数值 软件项目成本管理课件 TCF计算公式 TCF 0 65 0 01 SUM Ai Ai 14个因素的 复杂性调节值 i 1 14 0 65 0 01都是经验常数因此 FP UFC 0 65 0 01 SUM Ai 功能点计算公式的含义是 如果对应用程序完全没有特殊的功能要求 即综合特征总值 0 那么功能点数应该比未调整的 原有的 点数降低35 这也就是 0 65 的含义 否则 除了降低35 之外 功能点数还应该比未调整的点数增加1 的综合特征总值 软件项目成本管理课件 FP转换为LOC FP无法自动度量 通常做法是 早期估计使用FP 然后依据经验将FP转换为LOC 再使用LOC继续进行估计 转换表 它是针对各种语言的转换率 这个表是根据业界的经验研究得出的 软件项目成本管理课件 小结 FP在下列情况特别有用 估计新的软件开发项目应用软件包括很多输入输出或文件活动拥有经验丰富的FP估计专家拥有充分数据资料 可相当准确讲FP转化为LOC 优点与程序设计语言无关 在开发前就可以估算出软件项目的规模不足没有直接涉及算法的复杂度 不适合算法比较复杂的软件系统 功能点计算主要靠经验公式 主观因素比较多 数据不好采集 软件项目成本管理课件 LOC与FP的区别 FP常用在项目开始或需求基本明确时使用 这时进行估算其结果的准确性比较高 假如此时使用LOC 则误差会比较大 使用FP无需懂得软件使用何种开发技术 LOC与软件开发技术密切相关 FP是以用户为角度进行估算 LOC是以技术为角度进行估算的 通过一些行业标准或企业自身度量的分析 FP可以转换为LOC 软件项目成本管理课件 软件项目规模管理 PERT估计 PERT ProgramEvaluationandReviewTechnique 计划评审技术 美国海军部开发北极星潜艇系统时为协调3000多个承包商和研究机构开发的 用于项目进度规划的技术 理论基础 假设项目持续时间以及整个项目完成时间是随机的且服从某种概率分布 PERT可估计整个项目在某个时间内完成的概率 软件项目成本管理课件 PERT技术 简单的PERT假设软件规模满足正态分布 只需估算两个量 最低规模a和最大规模b 软件期望规模E a b 2 实际规模在a b之间的概率为0 997 较好的PERT技术 基于分布和软件各部分单独估算的技术 对于软件每个部分产生3个规模估算量 ai表示软件第i部分可能的最低规模mi表示软件第i部分最可能的规模bi表示软件第i部分可能的最高规模第i部分期望规模Ei ai 4mi bi 6各个部分的期望规模相加即可总的软件规模E 软件项目成本管理课件 案例 代码行和功能点估算 1 8 软件描述 CAD软件 CAD图形软件可接受来自用户的二维和三维几何数据 用户通过界面与CAD软件进行交互 并控制它 该软件具有良好的人机界面设计的特征 所有的几何数据及其支持信息存放在数据库中 开发设计分析模块 以产生所需的输出 这些输出将显示在各种不同的图形化设备上 软件在设计中要考虑与外设进行交互并控制它们 包括鼠标 数字化仪 打印机等等 软件项目成本管理课件 案例 代码行和功能点估算 2 8 软件子系统划分图形用户界面及其控制机制二维几何分析三维几何分析数据库管理图形显示外设控制 与打印机 数字化仪 扫描仪的接口 设计分析子系统 软件项目成本管理课件 案例 代码行和功能点估算 3 8 估算出各个子系统的代码行 例如三维几何分析功能的代码行估算范围为 乐观值 可能的最低规模 a 4600最可能值m 6900悲观值 可能的最高规模 m 8600估算值 期望规模 e a 4m b 6 6800 软件项目成本管理课件 案例 代码行和功能点估算 4 8 软件项目成本管理课件 案例 代码行和功能点估算 5 8 历史数据平均生产率PM 620LOC PM 620行代码 人月 每个人月的成本C 8000 估算项目成本和工作量估算工作量 总代码行 PM 33200 620 54人月估算成本 估算工作量 每个人月的成本 54人月 8000 432000 软件项目成本管理课件 案例 代码行和功能点估算 6 8 基于功能点估算 Step1 计算UFC值 软件项目成本管理课件 案例 代码行和功能点估算 7 8 Step2 计算复杂度因子 软件项目成本管理课件 案例 代码行和功能点估算 8 8 计算出FP的估算值FP 0 65 0 01 Ai UFC 372历史数据平均生产率6 5FP PM每个人月的成本C 8000 平均月薪 估算成本和工作量工作量58人月成本457000 软件项目成本管理课件 软件项目成本估算 从软件规模估算到成本估算的转换过程中 先要确定每个人月平均完成代码数量 即软件生产率 软件生产率估算 生产率数据的获取选择一些最近完成的项目 其在规模 使用语言 应用类型和团队开发经验等方面要和待完成项目类似 获得各个项目的LOC 使用相同的计数方案 对于更改过的程序 记录更改代码所占比例 仅计算新增或更改部分LOC的数量 计算投入到每个项目上的人员数量 直接设计人员 实现人员 测试人员 文档人员 计算各个项目的软件生产率 即LOC PM 每个人月生产代码的数量 进而求出平均值作为类似项目的典型软件生产率 软件项目成本管理课件 影响软件生产率的因素 IBM500多个System 370项目的数据总结出的相关生产率的因素 涉及数千万行源代码 积累了数年的开发经验 表明了生产率因素各不相同 取决于产品类型 项目规模和软件变更的程度 软件规模和产品类型对生产率的影响 估算 假设某软件组织根据历史数据确定开发中等规模的控制程序的生产率是300LOC PM 则该组织开发中等规模语言程序的生产率是300 3 9 1 8 LOC PM 软件项目成本管理课件 软件项目成本估算方法 1 成本估算是对完成软件项目所需费用的估计和计划 是在一个无法以高可靠性预计的环境下进行的 人们开发出了不少估算方法 以尽量得到较好的估算 1 专家判断 多个专家进行估算 采取某种方法将多个估算值合成一个最终的估算值 方法有 求中值或平均值 简单但极端 召开小组会议 易受权威或善变人士影响 Delphi法 填写估算值表 协调员小结给出估算迭代表 进行下一轮估算 过程中无小组讨论 WidebandDelphi法 发放估计表 讨论产品与估算相关问题 填写估计值表 协调员汇总 小组讨论估算结果 自愿修改个人估计计划 如此反复进行 直到达到一个可接受的范围 软件项目成本管理课件 Delphi成本估算迭代表样例 项目 日期 估算人员 这是第 轮的估算值域 020406080100 专家的估计 您的估计 估计中值请填写您下一轮的估计 请解释做出该估计的理由 软件项目成本管理课件 软件项目成本估算方法 2 类比 当前项目和以前做过的类似项目进行比较 自顶向下 估算人员参照已完成项目所耗费的总成本 来推算出将要开发项目的总成本 然后把它们按阶段 步骤和工作单元进行分配 优点 对系统级重视 估算是在整个已完成项目的经验的基础上得出的 较为准确地把握整体需要 估算人员不清楚低级别上的技术问题 下层人员如果认为所估算的成本不足以完成任务时 鉴于地位不同 很大可能保持沉默 自底向上 任务单元法 基本任务明确后 把他们所需的工作量估算出来进行相加 优点 每部分是由该部分的负责人在对任务较为详细的理解基础上给出的 因而每部分的估算较为精确 缺点 容易忽略系统级成本 如系统集成 配置管理和质量保证等 总估算值会偏低 算法模型 数学方法建立的正式模型 软件项目成本管理课件 软件项目成本估算模型 什么是CoCoMo模型 COCoMo是指ConstructiveCostModel 构造性成本模型 Boehm于1981年提出 用于对软件开发项目的规模 成本 进度等方面进行估算CoCoMo模型是一个综合经验模型 模型中的参数取值来于经验值 并且综合了诸多的因素 比较全面的估算模型 比较实用 可操作 在欧盟国家应用较为广泛 软件项目成本管理课件 COCOMO模型的3个子模型 CoCoMo模型的层次 支持不同的阶段基本COCoMo模型系统开发的初期 估算整个系统的工作量 包括维护 和软件开发和维护所需的时间中间COCoMo模型估算各个子系统的工作量和开发时间详细COCoMo模型估算独立的软构件 如各个子系统的各个模块的工作量和开发时间 软件项目成本管理课件 软件开发3种模式 原始COCOMO模型的3个子模型采用相同的形式 E aSb EAFE 以人月为单位的工作量 S 以KLOC计数的程序规模 EAF EffortAdjustmentFactor 工作量调整因子 a和b是两个随开发模式而变化的因子 3种开发模式有机式 组织型 开发各种应用程序 相对简单 规模 50000行 开发人员经验丰富 理解充分 嵌入式 实时软件 OS 航天用控制系统等 严格约束条件 紧密联系软硬件及操作 要解决的问题很少 无法借助经验 半分离式 规模和复杂度属于中等或更高 最大达30万行 各类编译程序等 软件项目成本管理课件 基本COCOMO模型 基本CoCoMo模型E a kLOC b E是工作量 人月 a和b是经验常数t c Ed t是开发时间 月 c和d是经验常数其中 a b c d为经验常数 其取值见下表 软件项目成本管理课件 中级COCOMO模型 考虑了软件开发环境的因素 引入了15个附加预测量 称为成本驱动量 中间CoCoMo模型 将工作量作为软件规模和成本驱动量的函数来计算 E a kLOC b EAF其中 E表示工作量 人月 EAF表示工作量调节因子 a b为经验常数 其取值见下表 软件项目成本管理课件 中级COCOMO模型中15个成本驱动量取值 软件项目成本管理课件 EAF取值 EAF的取值 范围 很低 低 正常 高 很高 非常高Boehm建议取值范围 0 70 1 66 EAF的计算 Fi i 1 15 调节因子及其取值由统计结果和经验决定 不同的软件开发组织在不同的时期可能会有不同的取值 软件项目成本管理课件 基本COCOMO模型案例分析 案例分析 用基本CoCoMo模型估算项目的工作量 开发时间和参加项目开发的人数CAD软件 目标代码行33 2kLOC 属于中等规模 半分离式 因而a 3 0 b 1 12 c 2 5 d 0 35E 3 0 33 2 1 12 152PMD 2 5 152 0 35 14 5 月 参加项目人数N E D 152 14 5 11 人 软件项目成本管理课件 其他模型 详细COCOMO模型进一步提高估算精度 考虑的成本驱动因素被分成了不同的层次且在软件生存周期的不同阶段被赋予不同的值 也即成本驱动对软件工程过程每一步 需求分析 概要设计 详细设计 编码与单元设计 集成测试和维护 的影响 COCOMOII为了适应新的软件成本估算 Bohem根据未来市场的发展趋势 于1994年发表了COCOMOII 软件项目成本管理课件 Putnam模型 Putnam提出了大型软件项目工作量 一般在30人年以上 估算模型 它是一个动态多变量模型 揭示了软件项目的工作量 软件开发时间和程序代码长度三者之间的关系 适用于软件开发的各个阶段 该模型假设软件工作量分布类似于Rayleigh曲线 软件项目成本管理课件 Putnam模型的方程 S C E1 3 t4 3S 源代码行数 以LOC为单位 C 技术因子

温馨提示

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

评论

0/150

提交评论