




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第26章 软件项目估算2 软件项目策划软件项目策划3 项目计划任务集项目计划任务集-1l规定项目范围l确定可行性l分析风险 风险分析的详细内容见第25章。l确定需要的资源确定需要的人力资源确定可复用的软件资源识别环境资源4 项目计划任务集项目计划任务集-2l估算成本和工作量分解问题使用规模、功能点、过程任务或用例等方法进行两种以上的估算调用不同的估算l制定项目进度计划计划的具体制定过程。l建立一组有意义的任务集l定义任务网络l使用进度计划工具制定时间表l定义进度跟踪机制5 估算估算l对软件工程工作的资源、成本及进度进行估算时,需要经验了解有用的历史信息 (度量)当只存在定性的信息时,还要有
2、进行定量预言的勇气l估算具有与生俱来的风险,正是这种风险导致了不确定性。6 把它记下来把它记下来!7 了解范围了解范围 .l了解客户的需求l了解商业环境l了解项目边界l了解客户的动机l了解可能变更的路径l了解 .8 什么是范围什么是范围?l软件范围 描述了 将要交付给最终用户的功能和特性;输入和输出数据;作为使用软件的结果呈现给用户的“内容” ;界定系统的性能、约束条件、接口和可靠性。 l定义范围可以使用两种技术:l在与所有利益相关者交流之后,写出软件范围的叙述性描述。l由最终用户开发的一组用例。9 资源资源p pr ro oj je ec ct tpeopleskillsnumberloca
3、tionreusable softwareots componentsfull-experience componentsnew componentspart.-experience componentsenvironmenthardwaresoftware toolsnetwork resources10 项目估算项目估算l必须理解项目范围l细化 (分解) 是必需的l历史度量是非常有用的l至少使用两种不同的技术l不确定性是一直存在于过程内部的11 估算技术估算技术l借鉴已完成的类似项目l常规的估算技术 任务分解和工作量估算 规模 (例如,功能点) 估算l经验模型l自动估算工具12 估算的准确
4、性估算的准确性l取决于 策划者正确地估算待开发产品规模的程度把规模估算转换成人员工作量、时间及成本的能力(受可靠软件度量的可用性的影响,这些度量数据来自以往的项目)项目计划反映软件团队能力的程度产品需求的稳定性和支持软件工程工作的环境13 功能分解功能分解14 基于问题的估算基于问题的估算l作为估算变量,度量软件中每个元素的规模;l作为基线度量,这些度量数据是历史数据,将它们与估算变量结合使用,进行成本和工作量的估算。loc、fp共性共性l从界定的软件范围陈述入手,将范围陈述分解成一些可分别独立进行估算的功能问题。l估算每个功能的loc或fp(估算变量)l将基线生产率度量(loc/pm或fp/
5、pm)引用于适当的估算变量,导出每个功能的成本或工作量。15 乐观值、可能值、悲观值乐观值、可能值、悲观值l变量规模期望值s通过乐观值sopt、可能值sm、悲观值spess加权平均来计算:16 17 例子例子:loc方法方法18 例子例子: fp方法方法复杂度调整因子复杂度调整因子19 20 基于过程的估算基于过程的估算21 基于过程估算的实例基于过程估算的实例activitytaskfunctionuicf2dga3dgadsmpcfcgdfdamtotals% effortccplanningrisk analysisengineeringconstruction releasetotal
6、sceanalysisdesigncodetest0.250.250.253.5020.504.5016.5046.001%1%1%8%45%10%36%cc = customer communication ce = customer evaluation0.500.750.500.500.500.252.504.004.003.003.002.000.400.601.001.000.750.505.002.003.001.501.501.508.407.358.506.005.754.250.502.000.502.005.00n/an/an/an/an/an/an/a22 经验估算模型经
7、验估算模型估算模型的结构估算模型的结构le=a+b(ev)cl其中,a、b、c是经验常数,e是工作量(人月为单位),ev是估算变量(loc或fp)。23 24 构造性成本模型构造性成本模型(cocomo)iil cocomo ii 实际上是一种层次结构的估算模型,主要应用于以下领域:l应用组装模型。 在软件工程的前期阶段使用,这时,用户界面的原型开发、对软件和系统交互的考虑、性能的评估以及技术成熟度的评价是最重要的。l早期设计阶段模型。 在需求已经稳定并且基本的软件体系结构已经建立时使用。l体系结构后阶段模型。 在软件的构造过程中使用。例应用组装模型:对象点例应用组装模型:对象点l屏幕数(用户
8、界面的);l报表数;l构造应用系统可能需要的构建数。25 对象点对象点l当采用基于构件的开发或一般的软件复用时,还要估算复用的百分比,并调整对象点数:26 生产率、工作量生产率、工作量27 28 软件方程软件方程取值取值l随着“对集成、测试、质量保证、文档和管理技能的需求增长”,b的值缓慢增加。对于较小的程序(kloc=515,b=0.16。对于超过70kloc的较大程序,b=0.39。l嵌入式软件开发p=2000;l电信及系统软件p=10000;l商业系统应用 p=2800029 最短开发时间方程最短开发时间方程lp=12000(对科学计算软件的推荐值):30 31 面向对象项目的估算面向对
9、象项目的估算-1l使用工作量分解、fp分析和任何其他适合于传统应用的方法进行估算。l使用需求模型 (第6章)建立用例并确定用例数。l由需求模型确定关键类 (在第6章中称为分析类)的数量。l对应用的界面类型进行归类,确定支持类的乘数:界面类型界面类型 乘数乘数 没有图形用户界面 2.0基于文本的用户界面 2.25图形用户界面 2.5复杂的图形用户界面 3.032 面向对象项目的估算面向对象项目的估算-2l关键类的数量 (第3步) 乘上乘数就得到了支持类数量的估算值。l将类的总数 (关键类+ 支持类) 乘以每个类的平均工作单元数。lorenz和kidd建议每个类的平均工作单元数是15 20 人日。
10、l将用例数乘以每个用例的平均工作单元数,对基于类的估算做交叉检查。33 敏捷项目的估算敏捷项目的估算l从估算目的出发,分别考虑每个用户场景 (一个微型用例) 。l将场景分解成一组开发它所需要完成的软件工程任务。l分别估算每一项任务所需的工作量。注意,可以根据历史数据、经验模型或“经验”进行估算。或者,可以利用loc、fp或其他某种面向规模的测量 (如用例点)来估算场景的“规模”。l对每项任务的估算结果求和,就得到了对整个场景的估算值。或者,使用历史数据,将场景规模的估算值转换成工作量。l将实现给定软件增量的所有场景的工作量估算值求和,就得到了该增量的工作量估算。自行开发或购买的决策自行开发或购买的决策l购买成品构件l购买“具有完全经验”或“具有部分经验”的软件构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论