版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/8/6,集美大学信息教研室,1,软件工程 Software Engineering 第5章 软件项目估算,2020/8/6,集美大学信息教研室,2,第5章 软件项目估算,5.1 对估算的观察 5.2 项目计划目标 5.3 软件范围 5.4 资源 5.5 软件项目估算 5.6 分解技术 5.7 经验估算模型 5.8 自行开发或购买的决策 5.9 小结,2020/8/6,集美大学信息教研室,3,软件项目估算,当前在基于计算机的系统中,软件开发成本占总成本的比例很大。 在软件项目立项和软件项目管理工作中,客户和项目管理人员都十分重视软件项目的成本估算。 软件是逻辑产品,成本估算涉及人、技术
2、、环境、政策等多种因素,在项目完成之前,很难精确地估算出项目的开销。,预算,?,2020/8/6,集美大学信息教研室,4,5.1 对估算的观察,估算是所有其他项目策划活动的基础。没有估算就着手开发,我们将陷入盲目性。 好的估算方法和可靠的历史数据提供了最好的希望。 估算的风险取决于对资源、成本及进度的定量估算中存在的不确定性。 如果对项目范围不太了解,或者项目需求经常改变,不确定性和估算风险就会非常高。,2020/8/6,集美大学信息教研室,5,5.2 项目策划过程,软件项目计划的目标是提供一个框架,使得管理者能够对资源、成本及进度进行合理的估算。这些估算是软件项目开始时在一个限定的时间框架内
3、所做的,并且随着项目的进展不断更新。此外,估算应该定义“最好的情况”及“最坏的情况”,使得项目的结果能够限制在一定范围内。,2020/8/6,集美大学信息教研室,6,5.3 软件范围和可行性,软件项目计划的第一个活动是确定软件范围。在系统工程阶段,应该对分配给软件的功能及性能加以评估,以建立一个项目范围,该范围在管理级及技术级均是无二义性的和可理解的。,2020/8/6,集美大学信息教研室,7,5.3 软件范围和可行性,软件范围描述了功能、性能、约束条件、接口及可靠性。在范围说明中给出的功能被评估,并在某些情况下被进一步精化,以便在估算开始之前提供更多的细节。因为成本及进度估算都是面向功能的,
4、所以某种程度上的分解常常是很有用的。性能方面要考虑包括加工及响应时间在内的要求。约束条件标识了外部硬件、可用内存或其他已有系统等对软件的限制。,2020/8/6,集美大学信息教研室,8,5.3 软件范围和可行性,软件可行性分析的四个固定要素 技术 经济 时间 资源,2020/8/6,集美大学信息教研室,9,5.4资源,项目策划的第二个任务是估算完成软件开发工作所需的资源。 将开发资源表示成一个金字塔。 金字塔的底层:开发环境硬件及软件工具,提供支持开发工作的基础。 金字塔的中间层:可复用软件构件软件建筑块,能够极大地降低开发成本,并提早交付时间。 金字塔的顶层:人员,2020/8/6,集美大学
5、信息教研室,10,5.4 资源,人员,可复用构件,硬件、软件工具,项目资源,2020/8/6,集美大学信息教研室,11,5.5软件项目估算,为了可靠地估算成本及工作量,有以下几种选择可以考虑: 将估算拖延到项目的最后阶段(显然,如果在项目完成之后进行估算,我们能够赢得百分之百的准确率)。 基于已经完成的类似的项目进行估算。 使用简单的“分解技术”来进行项目成本及工作量的估算。 使用一个或多个经验模型进行软件成本及工作量的估算。,2020/8/6,集美大学信息教研室,12,5.5 软件项目估算,四种方法可以同时、单独或组合使用,以便取长补短,提高项目估算的精度和可靠性。 每种可行的软件成本估算方
6、法,其效果的好坏取决于估算使用的历史数据。 为了实现软件项目估算,实践中开发了大量的软件项目自动估算工具,用以支持软件工作量或成本估算。,2020/8/6,集美大学信息教研室,13,5.6 分解技术基于问题的估算,不管使用哪种估算变量,项目计划者都要从估算每个功能或信息域的范围值开始。当确定了一个范围值时,就暗示了不确定性的程度。 采用上述估算方法可以估算出LOC或FP的乐观值a,悲观值b和一般值m,然后根据下列加权公式计算出期望值 e=(a4mb)6 希望LOC或FP的值落在区间a,b之外的概率极小,2020/8/6,集美大学信息教研室,14,5.6 分解技术基于问题的估算,当LOC或FP的
7、期望值估算出来之后,根据以前软件项目开发的平均生产率LOC/PM或FP/PM就可以计算出工作量。 如,软件项目的规模估算为310FP,以前完成的软件项目的生产率为5.5FP/PM,于是工作量估算为E=310/5.5=56PM。 如果当前估算的软件子项目比以前完成的项目复杂,那么所用的生产率值可以低于平均生产率,反之也可以高于平均生产率。,2020/8/6,集美大学信息教研室,15,5.6 分解技术基于问题的估算,例 估算计算机辅助设计软件项目 将CAD项目按功能分解为七个子项目 用户界面和控制(UICF); 二维几何分析(2DGA); 三维几何分析(3DGA); 数据库管理(DBM); 计算机
8、图形显示(CGDF); 外设控制(PCF); 设计分析(DAM)。 给出七个子项目代码行的乐观估计、悲观计和一般估计值, 然后计算出加权平均值。,2020/8/6,集美大学信息教研室,16,5.6 分解技术基于问题的估算,2020/8/6,集美大学信息教研室,17,5.6 分解技术基于问题的估算,分析七个子项目的规模复杂性和难度,参照以前开发类似项目的经验给出开发每行代码的平均成本,每月开发的代码行数。 假设:平均生产率620 LOC/pm 一个劳动力价格是8000 $ /m 用这两组数据计算出七个子项目的开发成本和工作量。最后汇总的CAD软件开发项目 规模为 33200 LOC 成本为 43
9、1 000 $=(33200 / 620 )* 8000 工作量为 54 PM =33200 / 620,2020/8/6,集美大学信息教研室,18,5.6 分解技术基于问题的估算,2020/8/6,集美大学信息教研室,19,5.6 分解技术基于问题的估算,一个基于FP估算的例子 基于FP估算的分解是集中于信息域值,而不是软件功能。项目计划者估算CAD软件的输入、输出、查询、文件、及外部接口。为了达到这个估算目的,我们假设复杂度加权因子都是平均的。表52给出了估算的结果,2020/8/6,集美大学信息教研室,20,一个基于FP估算的例子,2020/8/6,集美大学信息教研室,21,估算14个复
10、杂度加权因子,2020/8/6,集美大学信息教研室,22,基于FP的估算,最后,得出FP的估算值: FPestimated=总计数值0.65+0.01Fi FPestimated=318*0.65+0.0152 =372 使用功能点进行规范化的历史数据表明:这类系统的组织平均生产率是6.5FP/pm。如果一个劳动力价格是每月8000美元,则每个FP的成本约为1230美元。根据FP估算及历史生产率数据,总的项目成本估算是457000美元(372*1230),工作量估算是58个人月(372/6.5)。,2020/8/6,集美大学信息教研室,23,5.6 分解技术基于过程的估算,将过程分解为一组较小
11、的任务,并估算完成每个任务所需的工作量。 基于过程的估算首先从项目范围中抽取出软件功能。接着给出为实现每个功能所必须执行的一系列的框架活动。 一旦将问题功能与过程活动结合起来,计划人员就可以针对每个软件功能,估算完成各个软件过程活动所需的工作量。,2020/8/6,集美大学信息教研室,24,5.6 分解技术基于过程的估算,2020/8/6,集美大学信息教研室,25,5.7 经验估算模型,计算机软件的估算模型使用由经验导出的公式来预测工作量,工作量是LOC或FP的函数,工作量的单位通常是人月(pm)。 支持大多数估算模型的经验数据是来源于一个有限的项目样品集。因此,没有任何估算模型能够适用于所有
12、类型的软件及所有开发环境。,2020/8/6,集美大学信息教研室,26,5.7.1 估算模型的结构,一个典型的估算模型是通过对以前的软件项目中收集到的数据进行回归分析而导出的。这种模型的总体结构具有下列形式:,常数,常数,估算变量 (KLOC或FP),常数,人月为单位 的工作量,2020/8/6,集美大学信息教研室,27,5.7.1 估算模型的结构,在文献中提出了许多面向LOC的估算模型: E= 5.2(KLOC)0.91 WF模型 E5.5+0.73(KLOC)1.16 Basili模型 E=3.2(KLOC)1.05Boehm的简单模型 E=5.288(KLOC)1.047 Doty模型,
13、在KLOC9的情况下,2020/8/6,集美大学信息教研室,28,5.7.1 估算模型的结构,面向FP的估算模型。主要包括: E=-91.4+0.355FPAlbrecht模型 E=-37+0.96FP Kemerer模型 E=-12.88+0.405FP 小型项目回归模型,2020/8/6,集美大学信息教研室,29,5.7.2 CoCoMo模型,计算机软件的估算模型是根据以前完成项目的实际数据导出的,用于软件项目的计划阶段。 模型是根据“从前的”,“局部的”数据得出的,估算模型不可能完全适用于当前所有的软件项目和全部开发环境。这些模型的计算结果仅供参考。 两个常用的估算模型 CoCoMo模型
14、 Putnam模型,2020/8/6,集美大学信息教研室,30,5.7.2 CoCoMo模型,1981年Boehm提出“构造性成本模型”(Constructive Cost Model),简称CoCoMo模型。它是在静态、单变量模型的基础上构造出来的。 1997年Boehm等人提出的COCOMO2模型,是原始的COCOMO模型的修订版,它反映了十多年来在成本估计方面所积累的经验。 CoCoMo模型分为基本、中间、详细三个层次,分别用于软件开发的三个不同阶段。,2020/8/6,集美大学信息教研室,31,5.7.2 CoCoMo模型,基本CoCoMo模型: 用于系统开发的初期,估算整个系统的工作
15、量(包括软件维护)和软件开发所需要的时间。 中间CoCoMo模型: 用于估算各个子系统的工作量和开发时间。 详细CoCoMo模型: 用于估算独立的软部件,如子系统内部的各个模块。,2020/8/6,集美大学信息教研室,32,5.7.2 CoCoMo模型,静态、单变量模型 E = aLb D = cEd 其中:E表示工作量,单位是人月(PM)。 D表示开发时间,单位是月(M)。 L是项目的代码行估计值,单位是千行代码 a,b,c,d是常数,取值如表5.4所示。 Boehm把软件划分为组织型、半独立型和嵌入型三类,允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a,b,c,d。
16、,2020/8/6,集美大学信息教研室,33,表5.4 简单CoCoMo模型参数,软件类型 a b c d 适用范围 组织型 2.4 1.05 2.5 0.38 各类应用程序 半独立型 3.0 1.12 2.5 0.35 各类实用程序、 编译程序等 嵌入型 3.6 1.20 2.5 0.32 实时处理、 控制程序、 操作系统,5.7.2 CoCoMo模型,2020/8/6,集美大学信息教研室,34,5.7.2 CoCoMo模型,为了阐明CoCoMo模型的使用,我们采用基本模型对本章前面所描述的CAD软件范例进行估算。根据表中给出的LOC估算和表中所标注的系数及指数,我们利用基本模型可以得到:
17、E=2.4(KLOC)1.05 =2.4(33.2)1.05 =95个人月,2020/8/6,集美大学信息教研室,35,5.7.2 CoCoMo模型,这个值比5.6节导出的几个估算值要高得多。因为CoCoMo模型假设了比前面节低得多的LOC/pm,所以结果并不令人吃惊。为了适用于本范例中的问题, CoCoMo模型应该做适当调整。,2020/8/6,集美大学信息教研室,36,5.7.2 CoCoMo模型,要计算项目的持续时间,我们使用上面描述的工作量估算值: D=2.5E0.35 =2.5(95)0.35 =12.3个月,2020/8/6,集美大学信息教研室,37,5.7.2 CoCoMo模型,
18、项目持续时间的估算值使得计划者能够为该项目确定一个合适的人员数目N: N=E/D =95/12.3 =约8人 实际上,计划者可能决定只用四个人,并相应地延长项目的持续时间(应该注意到:工作量和时间之间的关系并不是线性的。因此,将人员减少至四人并不意味着项目需要增加一倍的时间。,2020/8/6,集美大学信息教研室,38,5.7.3软件方程式,软件方程式PUT92是一个动态多变量模型,它假设在软件开发项目的整个生命周期中的一个特定的工作量分布。该模型是从4000多个当代的软件项目中收集的生产率数据中导出的。基于这些数据,估算模型具有以下形式: E=LOCB0.333/P3(1/t4) 其中,E=
19、以人月或人年为单位的工作量 t=以月或年表示的项目持续时间 B=“特殊技术因子 ” P=“生产率参数”,2020/8/6,集美大学信息教研室,39,5.7.3 软件方程式,B=“特殊技术因子”,它随着“对集成、测试、质量保证、文档、及管理技术的需求的增长”而缓慢增加。对于较小的程序(KLOC=5到15),B=0.16。对于超过70KLOC的较大程序,B=0.39。 对于实时嵌入式软件的开发,典型值是P=2000;对于电讯及系统软件,P=10000;而对于商业系统应用, P=28000。当前项目的生产率参数可以通过从以前的开发工作中收集到的历史数据中导出。,2020/8/6,集美大学信息教研室,
20、40,5.7.3 软件方程式,为了简化估算过程,并将该模型表示成更为通用的形式,Putnam和MyersPUT92又提出了一组方程式,它们均从软件方程式中导出。最小开发时间被定义为: tmin=8.14(LOC/P)0.43 以月表示,对于tmin6个月的情况 E=180Bt3 以人月表示,对于E20的情况(t以年为单位),2020/8/6,集美大学信息教研室,41,5.7.3 软件方程式,对本章前面所讨论的CAD软件使用等式(5.4)时,P=12000(对科学计算软件的推荐值): t min=8.14(33200/12000)0.43 =12.6个月 E=1800.28(1.05)3 =58
21、个人月 由软件方程式得到的结果与5.6节的估算值非常符合。,2020/8/6,集美大学信息教研室,42,5.8 自行开发或购买的决策,在许多软件应用领域中,直接获取(购买)计算机软件常常比自行开发的成本要低得多。软件工程管理者面临着是自行开发还是购买的决策,且因为有多种可选的获取方案使得决策更加复杂: 购买可直接使用的软件(或被授权使用); 购买“具有完全经验”或“具有部分经验”的软件构件然后进行修改和集成,以满足特定的需求; 软件可以由一个外面的承包商根据买方的规约定制开发。,2020/8/6,集美大学信息教研室,43,5.8.1 创建决策树,前述的步骤可以使用统计技术进行扩充,如决策树分析BOE89。例如,图238刻画了一个软件系统X的决策树。在这个例子中,软件工程组织能够(1)从头开始建造系统X;(2)复用已有的“具有部分经验”的构件来构造系统;(3)购买现成的软件产品,并修改它,以满足当前项目的需要;或(4)将软件开发承包给外面的开发商。,2020/8/6,集美大学信息教研室,44,5.8.1 创建决策树,沿决策树的任一分支进行计算,得到成本的预期值如下: 预期成本=(路径概率)i(估算的路径成本)i 其中,i是决策树
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全新公司法考试题目及答案
- 04729试题及答案全解
- 初级养护工考试题型及答案展示
- 管道施工专项试题及答案展示
- 2026年隔离病区消杀操作规范考试试卷试题及答案
- 2026年电力两票三制落实业务考试试卷试题及答案
- 2026年出入口值守管控实务考试试卷试题及答案
- 2026年统计专业技术中级资格考试(统计工作实务)练习题及答案
- 医废考试题目与精准答案呈现
- 2026年水处理应急处置考试题库及答案
- 《智慧医院医用耗材SPD物流管理流程技术规范》
- 隧道裂缝修补技术完整方案
- 玻璃栈道审批管理办法
- DB53-T 1032-2021 公路隧道超前地质预报技术规程
- 中央储备成品油管理办法
- T/CBMCA 039-2023陶瓷大板岩板装修镶贴应用规范
- 2025年全国HIV抗体诊断试剂临床质量评估报告范文
- 初中物理跨学科教学的创新策略与实践路径
- 2025-2030全球滑移装载机行业风险评估及未来销售趋势预测研究报告
- 快递车辆承包协议书
- 《专业论文选读与写作》教学大纲
评论
0/150
提交评论