软工概论 第20章 软件项目估算

上传人:今*** 文档编号:106888559 上传时间:2019-10-16 格式:PPT 页数:33 大小:942.51KB
返回 下载 相关 举报
软工概论 第20章 软件项目估算_第1页
第1页 / 共33页
软工概论 第20章 软件项目估算_第2页
第2页 / 共33页
软工概论 第20章 软件项目估算_第3页
第3页 / 共33页
软工概论 第20章 软件项目估算_第4页
第4页 / 共33页
软工概论 第20章 软件项目估算_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《软工概论 第20章 软件项目估算》由会员分享,可在线阅读,更多相关《软工概论 第20章 软件项目估算(33页珍藏版)》请在金锄头文库上搜索。

1、1,第20章 软件项目估算,2,软件项目策划,项目策划的目标是提供一个能使管理人员对资源、成本及进度做出合理估算的框架。 为什么? 保证最终的结果按时按量完成!,3,项目计划任务集-1,规定项目范围 确定可行性 分析风险 风险分析的详细内容见第22章。 确定需要的资源 确定需要的人力资源 确定可复用的软件资源 识别环境资源,4,项目计划任务集-2,估算成本和工作量 分解问题 使用规模、功能点、过程任务或用例等方法进行两种以上的估算 调和不同的估算 制定项目进度计划 计划的具体制定过程见第21章。 建立一组有意义的任务集 定义任务网络 使用进度计划工具制定时间表 定义进度跟踪机制,5,估算,对软

2、件工程工作的资源、成本及进度进行估算时,需要 经验 了解有用的历史信息 (度量) 当只存在定性的信息时,还要有进行定量预言的勇气 估算具有与生俱来的风险,正是这种风险导致了不确定性。,6,把它记下来!,Software Project Plan,Project Scope Estimates Risks Schedule Control strategy,项目范围 估算 风险 日程表 控制策略,软件 项目 计划,7,了解范围 ,了解客户的需求 了解商业环境 了解项目边界 了解客户的动机 了解可能变更的路径 了解 .,即使当你了解了这些 也不能保证什么!,8,什么是范围?,软件范围 描述了 将要

3、交付给最终用户的功能和特性; 输入和输出数据; 作为使用软件的结果呈现给用户的“内容” ; 界定系统的性能、约束条件、接口和可靠性。 定义范围可以使用两种技术: 在与所有利益相关者交流之后,写出软件范围的叙述性描述。 由最终用户开发的一组用例。,9,资源,数量,位置,人员,技能,软件工具,硬件,网络资源,环境,商业成品构件,具有部分经验的构件,新构件,具有完全经验的构件,项目,可重用软件,10,项目估算,必须理解项目范围 细化 (分解) 是必需的 历史度量是非常有用的 至少使用两种不同的技术 不确定性是一直存在于过程内部的,11,估算技术,借鉴已完成的类似项目 常规的估算技术 任务分解和工作量

4、估算 规模 (例如,功能点) 估算 经验模型 自动估算工具,12,估算的准确性,取决于 策划者正确地估算待开发产品规模的程度 把规模估算转换成人员工作量、时间及成本的能力(受可靠软件度量的可用性的影响,这些度量数据来自以往的项目) 项目计划反映软件团队能力的程度 产品需求的稳定性和支持软件工程工作的环境,13,功能分解,functional decomposition,Statement of Scope,Perform a Grammatical “parse”,范围的申明,执行语法“分析”,功能分解,14,常规方法:基于LOC/FP估算,利用信息域值的估算来计算LOC/FP 使用历史数据来

5、建立项目的估算 S=(Sopt+4Sm +Spess )/6,15,例子:LOC方法,这类系统的组织平均生产率是 = 620 LOC/pm. 如果一个劳动力价格 =$8000 /月,则每行代码的成本约为13美元。 根据LOC估算及历史生产率数据, 该项目总成本的估算值是 431,000美元,工作量的估算值是54人月。,功能,LOC估算,用户接口及控制设备 二维几何分析 三维几何分析 数据库管理 计算机图形显示设备 外部设备控制功能 设计分析模块,总代码行估算,所需人月估算值=33200/620=53.55人月 总成本的估算值=8000*53.55=431000美元 单行代码成本=431000/

6、33200=13美元,16,17,例子: FP方法,最后,得出FP的估算值: FPestimated = 总计* 0.65 + 0.01 (Fi) FPestimated = 375 组织平均生产率 = 6.5 FP/pm. 如果一个劳动力价格 = 8000美元/月, 则每个FP的成本约为1230美元。 根据FP估算和历史生产率数据,项目总成本的估算值是461,000美元,工作量的估算值是58人月。,信息域值,乐观值,可能值,悲观值,估算值,加权因子,FP值,总计,外部输入数 外部输出数 外部查询数 内部逻辑文件数 外部接口文件数,(Fi)=52 0.65+0.01*52=1.17 所需人月的

7、估算值=375/6.5=57.69人月 项目总成本的估算值=8000*57.69=461000美元 每个FP的成本=461000/375=1230美元,18,19,基于过程的估算,Obtained from “Process framework”,application functions,framework activities,Effort required to accomplish each framework activity for each application function,从 “过程框架”中获得,应用程序功能,对每个应用程序功能实现每个框架活动所需的工作量,框架活动,2

8、0,基于过程估算的实例,如果平均一个劳动力价格是每月8 000美元,则项目总成本的估算值是368,000美元, 工作量的估算值是46人月。,活动 任务 功能,合计 %工作量,客户沟通 策划 风险分析 工程 构造发布 客户评估 合计,分析 设计 编码 测试,21,基于工具的估算,项目特色,校准因素,LOC/FP估算数据,project characteristics,calibration factors,LOC/FP data,22,基于用例的估算,以620 LOC/pm作为这类系统的平均生产率,一个劳动力价格是每月8 000美元,则每行代码的成本约为13美元。根据用例估算和历史生产率数据,项

9、目总成本的估算值是552,000美元 ,工作量的估算值是68人月。,用户界面子系统 工程子系统组 基础设施子系统组 LOC估算合计,用例 场景 页 场景 页 LOC LOC估算,基于用例的估算公式,LOC估算=NLOCavg+(Sa/Sh-1)+(Pa/Ph-1) LOCadjust N-实际用例数 LOCavg此类系统中,每个用例的历史平均LOC LOCadjust 调整值。以LOCavg 的n%来表示 Sa 每个用例包含的实际场景数 Sh 此类系统中,每个用例包含的平均场景数 Pa 每个用例的实际页数 Ph 此类系统中,每个用例的平均页数,23,基于用例的估算,用户界面LOC=6*560+

10、(10/12-1)+(6/5-1)*0.3*560=3365.6 工程子系统LOC=10*3100 +(20/16-1)+(8/8-1)*0.3*3100=31232.5 基础设施LOC=5*1650+(6/10-1)+(5/6-1)*0.3*1650=7969.5 所需人月=42568/620=68.65 人月,24,25,经验估算模型,通用式:,工作量 调优系数 规模,指数,通常以人月为 单位来表示所 需的工作量,一个常数或者 基于项目复杂 度的一个变量,通常是LOC 或功能点估 算变量,经验常数,usually derived,as person-months,of effort req

11、uired,either a constant or,a number derived based,on complexity of project,usually LOC but,may also be,function point,empirically,derived,General form:,effort = tuning coefficient * size,exponent,26,构造性成本模型(COCOMO)II,COCOMO II 实际上是一种层次结构的估算模型,主要应用于以下领域: 应用组装模型。 在软件工程的前期阶段使用,这时,用户界面的原型开发、对软件和系统交互的考虑、

12、性能的评估以及技术成熟度的评价是最重要的。 早期设计阶段模型。 在需求已经稳定并且基本的软件体系结构已经建立时使用。 体系结构后阶段模型。 在软件的构造过程中使用。,27,软件方程,一个动态的多变量模型 E = LOC x B0.333/P3 x (1/t4) 其中, E 为工作量,以人月或人年为单位 t 为项目持续时间,以月或年为单位 B 为“特殊技能因子” P 为“生产率参数”,28,面向对象项目的估算-1,使用工作量分解、FP分析和任何其他适合于传统应用的方法进行估算。 使用需求模型 (第5章)建立用例并确定用例数。 由需求模型确定关键类 (在第5章中称为分析类)的数量。 对应用的界面类

13、型进行归类,确定支持类的乘数: 界面类型 乘数 没有图形用户界面 2.0 基于文本的用户界面 2.25 图形用户界面 2.5 复杂的图形用户界面 3.0,29,面向对象项目的估算-2,关键类的数量 (第3步) 乘上乘数就得到了支持类数量的估算值。 将类的总数 (关键类+ 支持类) 乘以每个类的平均工作单元数。Lorenz和Kidd建议每个类的平均工作单元数是15 20 人日。 将用例数乘以每个用例的平均工作单元数,对基于类的估算做交叉检查。,30,敏捷项目的估算,从估算目的出发,分别考虑每个用户场景 (一个微型用例) 。 将场景分解成一组开发它所需要完成的软件工程任务。 分别估算每一项任务所需

14、的工作量。注意,可以根据历史数据、经验模型或“经验”进行估算。 或者,可以利用LOC、FP或其他某种面向规模的测量 (如用例点)来估算场景的“规模”。 对每项任务的估算结果求和,就得到了对整个场景的估算值。 或者,使用历史数据,将场景规模的估算值转换成工作量。 将实现给定软件增量的所有场景的工作量估算值求和,就得到了该增量的工作量估算。,31,购买决策,系统X,外包,购买,构建,复用,简单,困难,较小的变更,简单,较大的变更,复杂,较小的变更,较大的变更,没有变更,有变更,32,计算预期成本,(路径概率) x (估算的路径成本),i,i,例如,对于“构建系统”这条路径而言:,预期成本 = 0.30 ($380K) + 0.70 ($450K),相似的,预期成本 = $382K,预期成本 = $267K,预期成本 = $410K(K表示千美元),构建,复用,购买,外包,预期成本=,= $429 K,计算预期成本,预期成本复用=0.4*275+0.6*(0.2*310+0.8*490) 预期成本购买=0.7*210+0.3*400 预期成本外包=0.6*350+0.4*500,33,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号