




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 26 集美大学信息教研室 1 软件工程SoftwareEngineering第5章软件项目估算 2020 3 26 集美大学信息教研室 2 第5章软件项目估算 5 1对估算的观察5 2项目计划目标5 3软件范围5 4资源5 5软件项目估算5 6分解技术5 7经验估算模型5 8自行开发或购买的决策5 9小结 2020 3 26 集美大学信息教研室 3 软件项目估算 当前在基于计算机的系统中 软件开发成本占总成本的比例很大 在软件项目立项和软件项目管理工作中 客户和项目管理人员都十分重视软件项目的成本估算 软件是逻辑产品 成本估算涉及人 技术 环境 政策等多种因素 在项目完成之前 很难精确地估算出项目的开销 预算 2020 3 26 集美大学信息教研室 4 5 1对估算的观察 估算是所有其他项目策划活动的基础 没有估算就着手开发 我们将陷入盲目性 好的估算方法和可靠的历史数据提供了最好的希望 估算的风险取决于对资源 成本及进度的定量估算中存在的不确定性 如果对项目范围不太了解 或者项目需求经常改变 不确定性和估算风险就会非常高 2020 3 26 集美大学信息教研室 5 5 2项目策划过程 软件项目计划的目标是提供一个框架 使得管理者能够对资源 成本及进度进行合理的估算 这些估算是软件项目开始时在一个限定的时间框架内所做的 并且随着项目的进展不断更新 此外 估算应该定义 最好的情况 及 最坏的情况 使得项目的结果能够限制在一定范围内 2020 3 26 集美大学信息教研室 6 5 3软件范围和可行性 软件项目计划的第一个活动是确定软件范围 在系统工程阶段 应该对分配给软件的功能及性能加以评估 以建立一个项目范围 该范围在管理级及技术级均是无二义性的和可理解的 2020 3 26 集美大学信息教研室 7 5 3软件范围和可行性 软件范围描述了功能 性能 约束条件 接口及可靠性 在范围说明中给出的功能被评估 并在某些情况下被进一步精化 以便在估算开始之前提供更多的细节 因为成本及进度估算都是面向功能的 所以某种程度上的分解常常是很有用的 性能方面要考虑包括加工及响应时间在内的要求 约束条件标识了外部硬件 可用内存或其他已有系统等对软件的限制 2020 3 26 集美大学信息教研室 8 5 3软件范围和可行性 软件可行性分析的四个固定要素技术经济时间资源 2020 3 26 集美大学信息教研室 9 5 4资源 项目策划的第二个任务是估算完成软件开发工作所需的资源 将开发资源表示成一个金字塔 金字塔的底层 开发环境 硬件及软件工具 提供支持开发工作的基础 金字塔的中间层 可复用软件构件 软件建筑块 能够极大地降低开发成本 并提早交付时间 金字塔的顶层 人员 2020 3 26 集美大学信息教研室 10 5 4资源 人员 可复用构件 硬件 软件工具 项目资源 2020 3 26 集美大学信息教研室 11 5 5软件项目估算 为了可靠地估算成本及工作量 有以下几种选择可以考虑 将估算拖延到项目的最后阶段 显然 如果在项目完成之后进行估算 我们能够赢得百分之百的准确率 基于已经完成的类似的项目进行估算 使用简单的 分解技术 来进行项目成本及工作量的估算 使用一个或多个经验模型进行软件成本及工作量的估算 2020 3 26 集美大学信息教研室 12 5 5软件项目估算 四种方法可以同时 单独或组合使用 以便取长补短 提高项目估算的精度和可靠性 每种可行的软件成本估算方法 其效果的好坏取决于估算使用的历史数据 为了实现软件项目估算 实践中开发了大量的软件项目自动估算工具 用以支持软件工作量或成本估算 2020 3 26 集美大学信息教研室 13 5 6分解技术 基于问题的估算 不管使用哪种估算变量 项目计划者都要从估算每个功能或信息域的范围值开始 当确定了一个范围值时 就暗示了不确定性的程度 采用上述估算方法可以估算出LOC或FP的乐观值a 悲观值b和一般值m 然后根据下列加权公式计算出期望值 e a 4m b 6希望LOC或FP的值落在区间 a b 之外的概率极小 2020 3 26 集美大学信息教研室 14 5 6分解技术 基于问题的估算 当LOC或FP的期望值估算出来之后 根据以前软件项目开发的平均生产率LOC PM或FP PM就可以计算出工作量 如 软件项目的规模估算为310FP 以前完成的软件项目的生产率为5 5FP PM 于是工作量估算为E 310 5 5 56PM 如果当前估算的软件子项目比以前完成的项目复杂 那么所用的生产率值可以低于平均生产率 反之也可以高于平均生产率 2020 3 26 集美大学信息教研室 15 5 6分解技术 基于问题的估算 例估算计算机辅助设计软件项目将CAD项目按功能分解为七个子项目 用户界面和控制 UICF 二维几何分析 2DGA 三维几何分析 3DGA 数据库管理 DBM 计算机图形显示 CGDF 外设控制 PCF 设计分析 DAM 给出七个子项目代码行的乐观估计 悲观计和一般估计值 然后计算出加权平均值 2020 3 26 集美大学信息教研室 16 5 6分解技术 基于问题的估算 2020 3 26 集美大学信息教研室 17 5 6分解技术 基于问题的估算 分析七个子项目的规模复杂性和难度 参照以前开发类似项目的经验给出开发每行代码的平均成本 每月开发的代码行数 假设 平均生产率620LOC pm一个劳动力价格是8000 m用这两组数据计算出七个子项目的开发成本和工作量 最后汇总的CAD软件开发项目规模为33200LOC成本为431000 33200 620 8000工作量为54PM 33200 620 2020 3 26 集美大学信息教研室 18 5 6分解技术 基于问题的估算 2020 3 26 集美大学信息教研室 19 5 6分解技术 基于问题的估算 一个基于FP估算的例子基于FP估算的分解是集中于信息域值 而不是软件功能 项目计划者估算CAD软件的输入 输出 查询 文件 及外部接口 为了达到这个估算目的 我们假设复杂度加权因子都是平均的 表5 2给出了估算的结果 2020 3 26 集美大学信息教研室 20 一个基于FP估算的例子 2020 3 26 集美大学信息教研室 21 估算14个复杂度加权因子 2020 3 26 集美大学信息教研室 22 基于FP的估算 最后 得出FP的估算值 FPestimated 总计数值 0 65 0 01 Fi FPestimated 318 0 65 0 01 52 372使用功能点进行规范化的历史数据表明 这类系统的组织平均生产率是6 5FP pm 如果一个劳动力价格是每月8000美元 则每个FP的成本约为1230美元 根据FP估算及历史生产率数据 总的项目成本估算是457000美元 372 1230 工作量估算是58个人月 372 6 5 2020 3 26 集美大学信息教研室 23 5 6分解技术 基于过程的估算 将过程分解为一组较小的任务 并估算完成每个任务所需的工作量 基于过程的估算首先从项目范围中抽取出软件功能 接着给出为实现每个功能所必须执行的一系列的框架活动 一旦将问题功能与过程活动结合起来 计划人员就可以针对每个软件功能 估算完成各个软件过程活动所需的工作量 2020 3 26 集美大学信息教研室 24 5 6分解技术 基于过程的估算 2020 3 26 集美大学信息教研室 25 5 7经验估算模型 计算机软件的估算模型使用由经验导出的公式来预测工作量 工作量是LOC或FP的函数 工作量的单位通常是人月 pm 支持大多数估算模型的经验数据是来源于一个有限的项目样品集 因此 没有任何估算模型能够适用于所有类型的软件及所有开发环境 2020 3 26 集美大学信息教研室 26 5 7 1估算模型的结构 一个典型的估算模型是通过对以前的软件项目中收集到的数据进行回归分析而导出的 这种模型的总体结构具有下列形式 常数 常数 估算变量 KLOC或FP 常数 人月为单位的工作量 2020 3 26 集美大学信息教研室 27 5 7 1估算模型的结构 在文献中提出了许多面向LOC的估算模型 E 5 2 KLOC 0 91W F模型E 5 5 0 73 KLOC 1 16Basili模型E 3 2 KLOC 1 05Boehm的简单模型E 5 288 KLOC 1 047Doty模型 在KLOC 9的情况下 2020 3 26 集美大学信息教研室 28 5 7 1估算模型的结构 面向FP的估算模型 主要包括 E 91 4 0 355FPAlbrecht模型E 37 0 96FPKemerer模型E 12 88 0 405FP小型项目回归模型 2020 3 26 集美大学信息教研室 29 5 7 2CoCoMo模型 计算机软件的估算模型是根据以前完成项目的实际数据导出的 用于软件项目的计划阶段 模型是根据 从前的 局部的 数据得出的 估算模型不可能完全适用于当前所有的软件项目和全部开发环境 这些模型的计算结果仅供参考 两个常用的估算模型CoCoMo模型Putnam模型 2020 3 26 集美大学信息教研室 30 5 7 2CoCoMo模型 1981年Boehm提出 构造性成本模型 ConstructiveCostModel 简称CoCoMo模型 它是在静态 单变量模型的基础上构造出来的 1997年Boehm等人提出的COCOMO2模型 是原始的COCOMO模型的修订版 它反映了十多年来在成本估计方面所积累的经验 CoCoMo模型分为基本 中间 详细三个层次 分别用于软件开发的三个不同阶段 2020 3 26 集美大学信息教研室 31 5 7 2CoCoMo模型 基本CoCoMo模型 用于系统开发的初期 估算整个系统的工作量 包括软件维护 和软件开发所需要的时间 中间CoCoMo模型 用于估算各个子系统的工作量和开发时间 详细CoCoMo模型 用于估算独立的软部件 如子系统内部的各个模块 2020 3 26 集美大学信息教研室 32 5 7 2CoCoMo模型 静态 单变量模型E aLbD cEd其中 E表示工作量 单位是人月 PM D表示开发时间 单位是月 M L是项目的代码行估计值 单位是千行代码a b c d是常数 取值如表5 4所示 Boehm把软件划分为组织型 半独立型和嵌入型三类 允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a b c d 2020 3 26 集美大学信息教研室 33 表5 4简单CoCoMo模型参数 软件类型abcd适用范围组织型2 41 052 50 38各类应用程序半独立型3 01 122 50 35各类实用程序 编译程序等嵌入型3 61 202 50 32实时处理 控制程序 操作系统 5 7 2CoCoMo模型 2020 3 26 集美大学信息教研室 34 5 7 2CoCoMo模型 为了阐明CoCoMo模型的使用 我们采用基本模型对本章前面所描述的CAD软件范例进行估算 根据表中给出的LOC估算和表中所标注的系数及指数 我们利用基本模型可以得到 E 2 4 KLOC 1 05 2 4 33 2 1 05 95个人月 2020 3 26 集美大学信息教研室 35 5 7 2CoCoMo模型 这个值比5 6节导出的几个估算值要高得多 因为CoCoMo模型假设了比前面节低得多的LOC pm 所以结果并不令人吃惊 为了适用于本范例中的问题 CoCoMo模型应该做适当调整 2020 3 26 集美大学信息教研室 36 5 7 2CoCoMo模型 要计算项目的持续时间 我们使用上面描述的工作量估算值 D 2 5E0 35 2 5 95 0 35 12 3个月 2020 3 26 集美大学信息教研室 37 5 7 2CoCoMo模型 项目持续时间的估算值使得计划者能够为该项目确定一个合适的人员数目N N E D 95 12 3 约8人实际上 计划者可能决定只用四个人 并相应地延长项目的持续时间 应该注意到 工作量和时间之间的关系并不是线性的 因此 将人员减少至四人并不意味着项目需要增加一倍的时间 2020 3 26 集美大学信息教研室 38 5 7 3软件方程式 软件方程式 PUT92 是一个动态多变量模型 它假设在软件开发项目的整个生命周期中的一个特定的工作量分布 该模型是从4000多个当代的软件项目中收集的生产率数据中导出的 基于这些数据 估算模型具有以下形式 E LOC B0 333 P 3 1 t4 其中 E 以人月或人年为单位的工作量t 以月或年表示的项目持续时间B 特殊技术因子 P 生产率参数 2020 3 26 集美大学信息教研室 39 5 7 3软件方程式 B 特殊技术因子 它随着 对集成 测试 质量保证 文档 及管理技术的需求的增长 而缓慢增加 对于较小的程序 KLOC 5到15 B 0 16 对于超过70KLOC的较大程序 B 0 39 对于实时嵌入式软件的开发 典型值是P 2000 对于电讯及系统软件 P 10000 而对于商业系统应用 P 28000 当前项目的生产率参数可以通过从以前的开发工作中收集到的历史数据中导出 2020 3 26 集美大学信息教研室 40 5 7 3软件方程式 为了简化估算过程 并将该模型表示成更为通用的形式 Putnam和Myers PUT92 又提出了一组方程式 它们均从软件方程式中导出 最小开发时间被定义为 tmin 8 14 LOC P 0 43以月表示 对于tmin 6个月的情况E 180Bt3以人月表示 对于E 20的情况 t以年为单位 2020 3 26 集美大学信息教研室 41 5 7 3软件方程式 对本章前面所讨论的CAD软件使用等式 5 4 时 P 12000 对科学计算软件的推荐值 tmin 8 14 33200 12000 0 43 12 6个月E 180 0 28 1 05 3 58个人月由软件方程式得到的结果与5 6节的估算值非常符合 2020 3 26 集美大学信息教研室 42 5 8自行开发或购买的决策 在许多软件应用领域中 直接获取 购买 计算机软件常常比自行开发的成本要低得多 软件工程管理者面临着是自行开发还是购买的决策 且因为有多种可选的获取方案使得决策更加复杂 购买可直接使用的软件 或被授权使用 购买 具有完全经验 或 具有部分经验 的软件构件然后进行修改和集成 以满足特定的需求 软件可以由一个外面的承包商根据买方的规约定制开发 2020 3 26 集美大学信息教研室 43 5 8 1创建决策树 前述的步骤可以使用统计技术进行扩充 如决策树分析 BOE89 例如 图23 8刻画了一个软件系统X的决策树 在这个例子中 软件工程组织能够 1 从头开始建造系统X 2 复用已有的 具有部分经验 的构件来构造系统 3 购买现成的软件产品 并修改它 以满足当前项目的需要 或 4 将软件开发承包给外面的开发商 2020 3 26 集美大学信息教研室 44 5 8 1创建决策树 沿决策树的任一分支进行计算 得到成本的预期值如下 预期成本 路径概率 i 估算的路径成本 i其中 i是决策树的某个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保育员知识竞赛考核试题及答案
- 临床药物治疗学期末考试复习题库含答案详解ab卷
- 申请采购管理办法
- 硬盘销毁管理办法
- 矿山资质管理办法
- 基础强化北京市第十二中学7年级数学下册第四章三角形综合训练试题(含答案解析版)
- 金融合作协议书
- 语文班主任教师个人述职报告
- 下三只松鼠品牌塑造与推广策略研究
- 观察的范围教学反思
- 2023硅基薄膜异质结光伏组件技术要求
- 2024-2030全球飞机拆解服务行业调研及趋势分析报告
- 《实验室安全手册:化验员视角》
- 2025-2030年教辅图书集合平台行业深度调研及发展战略咨询报告
- 2025年上半年湖南省怀化市洪江区事业单位招聘69人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年设备监理师考试题库及答案参考
- 2024年中考模拟试卷英语(苏州卷)
- 合同模板主播兼职合同
- 《梅大高速茶阳路段“5·1”塌方灾害调查评估报告》专题警示学习
- 宿管员服务礼仪培训
- 2025企业消防工作计划范文
评论
0/150
提交评论