kangyimei-北航“软件工程与项目管理”讲义XXXX_第1页
kangyimei-北航“软件工程与项目管理”讲义XXXX_第2页
kangyimei-北航“软件工程与项目管理”讲义XXXX_第3页
kangyimei-北航“软件工程与项目管理”讲义XXXX_第4页
kangyimei-北航“软件工程与项目管理”讲义XXXX_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

软件工程与项目管理SoftwareEngineeringandProjectManagementBeiHangCollegeofSoftwareOct.2010-Dec.2011康一梅kangyimei@第六讲软件估算软件估算SoftwareEstimationInput:需求说明书系统设计对象设计变更请求Output:软件规模工作量进度TheSoftware-EstimationStoryEstimation-ProcessOverviewSizeEstimationEffortEstimationScheduleEstimationEstimateRefinementSoftwareEstimation软件估算定义

估算的通常定义:对未来事实非零可能性的最乐观的预测。软件项目估算是指以准确的调查资料和项目信息(如人员和设备信息)为依据,从估算对象的历史,现状及其规律性出发,运用科学的方法,对估算对象的规模,所需工作量和成本进行的测定。SoftwareEstimation介绍有些估算做的很仔细,而有些却只是凭直觉的猜测。大多数项目超过估算进度25%到100%,但也有少数一些组织的进度估算准确到10%以内,能控制在5%之内的还没有听说(Jones,1994)。

SoftwareEstimation介绍软件项目估算是项目计划的依据,但是大多数软件开发组织没有意识到软件估算的重要性。调查结果表明:35%的组织没有对软件开发的成本和时间作估算。50%的组织没有记录任何正在进行的项目的相关数据。57%的组织没有使用成本会计。80%的项目在成本或时间上超出预算。超出成本和时间的项目里仅有50%的是有意义的超出。进行了成本估算的组织里,62%的组织是基于感觉和经验,仅仅16%的组织使用了正式的估算方法,如成本估算模型。SoftwareEstimationCaseStudy案例

Carl负责Gaga-safe公司库存控制系统1.0版本的开发(ICS),在参加项目监督委员会第一次会议的时候,他对期望的功能已经有了总体设想。Bill是监督委员会的领导,他问:“Carl,ICS1.0需要多长时间?”Carl回答:“大概要9个月,不过这只是粗略的估算。”“不行,”Bill说,“我真希望你说3或4个月,我们一定要在6个月内拿出系统,能完成吗?”“我不能肯定,”Carl坦白地说,“我还得仔细研究一下,不过我相信可以找到办法在6个月内完成。”“那么把6个月当成项目完成的目标,”Bill说,“无论如何我们都必须这样做。”委员会的其他人一致同意了这个决定。到第五周的时候,又增加了一些产品概要设计工作,这使Carl更确信项目的时间更接近9个月而非6个月,然而他还是认为运气好的话有可能在6个月内完成项目。他不想被看作惹麻烦的人,所以决定等等再说。

——凭直觉的项目估算SoftwareEstimationCaseStudy案例(续)Carl的团队努力地工作着,进展稳定,但需求分析的时间比期望的要长。预定6个月要完成的项目已经过去4个月了。“2个月无论如何也做不完剩下的工作。”他只好告诉Bill,项目需要延长2个月,总共需要8个月时间。几个星期后Carl意识到设计进度也不像期望的那么快。“先做容易的部分,”他告诉项目组成员,“其余的部分遇到时再考虑。”Carl再次向监督委员会汇报:“8个月的项目已经过去7个月,详细设计基本完成,工作卓有成效,但是8个月内还是无法完成。”Carl通报了第2次进度拖延,并将完成时间定为10个月。Bill对拖延产生了抱怨,并要求Carl想办法仍将进度安排在8个月左右。第9个月,项目组完成了详细设计,但部分模块的编码还没有开始。Carl第3次要求要求延期——12个月。Bill?编码进行顺利,但一些地方需要重新设计和重新实现,而这些地方项目组没有把详细设计调整好,一些实现过程相互冲突。在第11个月的项目监督委员会上,Carl宣布了第4次项目延期——13个月。Bill?结果?……——凭直觉的项目估算SoftwareEstimationTheSoftware-EstimationStory软件估算与建筑预算一年的时间建这样一幢房子?没问题!太好了,那我们赶快开工吧!——软件与建筑SoftwareEstimationTheSoftware-EstimationStory软件估算算——软件件开发是是一个改改进的过过程盖一幢房房子要花花多少钱钱呢?这这取决于于房子本本身。一一个新的的计费系系统要花花多少钱钱呢?这这也取决决于计费费系统本本身!一些组织织希望在在需求定定义投入入前就把把成本估估算的误误差控制制在10%以内内,尽管管项目估估算的精精确程度度越早达达到越好好,但理理论上是是不可能能实现的的。如果果真能那那么早实实现,精精确度可可以控制制在2%以内。。软件开发发是一个个逐步细细化的过过程,在在每个阶阶段,都都可能做做出影响响最终项项目成本本与进度度的决策策。SoftwareEstimationTheSoftware-EstimationStory软件估算算——可能能细化的的数量估算收敛图初始的产品定义批准的产品定义需求说明书产品设计说明书详细设计说明书产品完工项目成本(工作量和成本)项目进度1.0x1.0x4.0x2.0x1.5x1.25x0.8x0.67x0.5x0.25x1.6x1.25x1.15x1.1x0.9x0.85x0.8x0.6xSoftwareEstimationTheSoftware-EstimationStory软件估算算——可能能细化的的数量基于项目目阶段的的估算误误差系数数工作量和规模进度阶段乐观悲观乐观悲观初始产品定义0.254.00.601.60批准的产品定义0.502.00.801.25需求说明书0.671.500.851.15产品设计说明书0.801.250.901.10详细设计说明书0.901.100.951.05SoftwareEstimationTheSoftware-EstimationStory软件估算算——估算算与控制制功能资源功能资源项目的演变项目的演变产品规模产品规模功能趋于与可用的资源相匹配资源趋于与想得到的功能相匹配期望的功功能与可可用的资资源大多数软软件项目目在开始始时,期期望的功功能与可可用的资资源之间间不匹配配,但随随着项目目的进展展,功能能或资源源(或两两者)必必定要互互相匹配配SoftwareEstimationTheSoftware-EstimationStory软件估算算——合作作表达你合合作的意意愿估算既不不要过高高也不要要过低,,应该正正好与费费用相符符。估算算的目标标是寻找找估算与与实际情情况的交交汇点。。精确与准准确:航航班时刻刻通常精精确到分分,但不不准确。。可能的的最短软软件开发发进度是是通过建建立最可可能的准准确估算算而不是是最精确确的估算算达到的的。如果果想获得得最快的的开发速速度,就就要避免免错误的的精确。。SoftwareEstimation软件估算算步骤确定软件件范围确定工作作所需资资源确定估算算内容估算改进进SoftwareEstimation确定软件件范围确定软件件估算范范围,就就是确定定目标软软件的数数据和控控制,功功能,性性能,约约束,接接口以及及可靠性性。软件估算算步骤SoftwareEstimation确定工作作所需资资源功能资源功能资源项目的演变项目的演变产品规模产品规模功能趋于与可用的资源相匹配资源趋于与想得到的功能相匹配期望的功功能与可可用的资资源大多数软软件项目目在开始始时,期期望的功功能与可可用的资资源之间间不匹配配,但随随着项目目的进展展,功能能或资源源(或两两者)必必定要互互相匹配配软件估算算步骤SoftwareEstimation确定工作作所需资资源可重用软软件资源源可分为为以下几几种:可直接复复用的构构件具有完全全经验的的构件具有部分分经验的的构件能够从第第三方厂厂商获得得或已经经在以前前的项目目中使用用过的软软件,这这些构件件已经经经过验证证及确认认,且可可以直接接用在当当前的项项目中。、以前在在类似项项目中建建立的规规约,设设计,代代码或测测试数据据,在本本项目中中需做修修改。、以前在在类似项项目中建建立的规规约,设设计,代代码或测测试数据据,在本本项目中中需做实实质上的的修改。。软件估算算步骤SoftwareEstimation确定估算算内容规模估算算工作量估估算进度估算算成本估算算缺陷数估估算软件估算算步骤SoftwareEstimation规模估算算软件规模模指的是是非常普普通意义义上的软软件总的的范围。。它包括括功能集集的深度度和广度度以及软软件的难难度和复复杂性。。规模估算算方法有有以下几几种:用估算算算法,如如功能点点方法,,特征点点,对象象点,模模糊逻辑辑,标准准构件法法,Delphi方法法,PERT方方法等。。用规模估估算软件件。如果参与与过类似似的项目目,并知知道它的的规模,,那么按按百分比比形式估估算新系系统每个个主要部部分与旧旧系统相相似部分分的规模模。每部部分的规规模加起起来是总总规模。。软件估算算步骤SoftwareEstimation工作量估估算对软件所所需的工工作时间间的估算算,通常常以人时时,人天天,人月月,人年年等单位位来衡量量。工作量估估算可以以采用以以下方法法进行::使用估算算软件直直接从规规模估算算得出使用组织织中的历历史数据据确定具具有已估估算规模模的先前前的项目目花了多多少工作作量。使用COCOMO模型型或其他他模型将将代码行行估算转转换成工工作量估估算。采用Delphi方法法,PERT方方法等直直接进行行工作量量估算。。软件估算算步骤SoftwareEstimation进度估算算进度估算算是针对对以阶段段为单位位的估算算,进度度以不同同阶段的的里程碑碑作为标标志,而而不是对对每一个个细小任任务都加加以估算算,对任任务的适适当分解解很重要要,分解解的越细细反而会会不准确确。进度估算算可以采采用以下下方法进进行:采用经验验法,或或Delphi方法,,PERT方法法等直接接进行工工作量估估算。使用组织织中的历历史数据据。使用COCOMO算法法或其他他算法的的进度估估算步骤骤,提供供一种更更好的估估算。基于承诺诺的进度度表。即即将任务务分解后后,由承承担任务务的项目目组成员员给出进进度承诺诺,这种种方法许许多时候候非常有有效。软件估算算步骤SoftwareEstimation进度估算算方法经验估算方法法月进度=3.0*人月(1/3)例:65人月的的工作量量,进度度=3.0*65(1/3)12个月月5-6人人(65/12)3.0,4.0,2.5SoftwareEstimation由功能点点计算进进度的幂幂次软件类型最优级平均最差级系统软件0.430.450.48商业软件0.410.430.46封装商品软件0.390.420.45这个准则则不能取取代更仔仔细的进进度估算算,但它它提供了了一个获获得粗略略进度估估算的最最简单方方法。Jones的一一阶估算算准则SoftwareEstimation进度估算算方法成本估算算包括人力力,设备备,有形形的,无无形的支支出成本本估算,,其中以以人力与与软硬件件设备成成本为主主要部分分。容易被忽忽视的是是学习成成本,培培训成本本,风险险成本,,维护成成本等。。人力成本本主要基基于工作作量,进进度估算算。软件估算算步骤SoftwareEstimation缺陷数估估算包括需求求,设计计,代码码中的缺缺陷,缺缺陷数影影响项目目的工作作量,进进度估算算。通常以千千行代码码缺陷数数等表示示。缺陷数估估算往往往需要使使用组织织中的历历史数据据。软件估算步骤骤SoftwareEstimation软件估算方法法功能点估算((1984IBM方法))输入输出查询内部逻辑文件件外部接口文件件项目早期,需需求说明书面向数据库SoftwareEstimation功能点估算((1984IBM方法))功能点程序功能一般复杂中等复杂很复杂输入数量X3X4X6输出数量X4X5X7查询X3X4X6内部逻辑文件X7X10X15外部接口文件X5X7X10按上表计算未未调整的功能能点总数然后根据14个对程序有有影响的因素素计算“影响响系数”,这这些因素包括括数据通信、、联机数据条条目、处理复复杂性和安装装容易度等。。影响系数在在0.65到到1.35之之间。SoftwareEstimation软件估算方法法功能点估算((1984IBM方法))功能点程序功能一般复杂中等复杂很复杂输入数量6X3=182X4=83X6=18输出数量7X4=287X5=350X7=0查询0X3=02X4=84X6=24内部逻辑文件5X7=352X10=203X15=45外部接口文件9X5=450X7=02X10=20未调整功能点总数304影响系数1.15调整后功能点总数350计算功能点数数的例子SoftwareEstimation软件估算方法法Delphi’sWideband方法当许多专家基于相同同假定独立地作出了相同估计,该估计计多半是正确确的必须确保专家家针对相同的的正确的假定进行工作SoftwareEstimation软件估算方法法Delphi’sWideband方法的步步骤1.识别做估估计的群组-专家估计者者(4-6项项目经理)-作者-估计协调者者2.作者呈述述待作估计的的系统3.作者和专专家一起识别别作业和假定定4.作者和专专家一起就可可接收的估计计差异水准达达成一致(例例如20%)5.协调者整整理一份群组组所决定的作作业清单,发发给每个专家家6.针对每个个作业,专家家独立地对每每个作业作出出估计(无讨论/咨询询),将估计交交给协调者7.协调者作作出如下表格格的综合:样表SoftwareEstimation软件估算方法法Delphi’sWideband方法的步步骤8.协调者将将综合表发给给全部专家和和作者9.当%差别(variance)大于可可接受水平时时,专家与作作者讨论作业业和假定。不讨论估计值。某些作业可可能作进一步步分解或合并并10.返回步步骤5;继续续工作直到全全部作业处在在可接受水平平之内偏差率=Max{(最大值-平均均值),(平均值-最小小值)}/平均值SoftwareEstimation软件估算方法法Delphi’sWideband方法的关关键绝对不讨论估估计。讨论作作业和假定估计是保密的的。估计者不不知道相互的的估计应至少有三个个估计者将项目分解到到小的作业((约20个人人日)SoftwareEstimation软件估算方法法PERT方法法PertSizing(PutnamBeta))方法是一种种基于统计原原理的估计方方法,是一种种简单易用、、实效性强的的软件估计方方法。对于指定的估估计单元(可可能是规模、、进度、工作作量等),由由直接负责人人给出估计结结果,估计结结果由3个值值构成:最小小值、最大值值、最可能值值,通过计算算公式:期望值=(最大规模+4*最可能规模+最小规模)/6标准偏差=(最大规模-最小规模)/6得到估计的结结果。SoftwareEstimation根据给出的三三个值,推算算出来最有可可能接近实际际值的规模。。[期望值-标准准偏差,期望望值+标标准偏差]是一个个可以接受的的规模估计范范围,如果你你的最终实际际值能够落到到该范围内,,则可以被认认为你的估计计是成功的。。初期该范围围可以较大,,随着估计的的不断精确,,该范围应该该逐渐被有意意识的减少以以求得更准确确的估计。建议:(最高高-最低)/最可能<40%%软件估算方法法PERT方法法的应用这种方法通常常与WBS((任务分解))方法结合使使用,可用于于对于规模、、进度、工作作量的估计,,通常用于规规模估计,尤尤其适用于估估计专家不足足的情况。也也可以和Delphi方方法结合使用用。SoftwareEstimation软件估算方法法PERT方法法的角色SoftwareEstimation角色职责估计协调人估计协调人对项目熟悉,根据已实现的WBS来分配各任务给单元估计责任人。项目协调人将估计结果作为度量数据归入过程数据库。单元估计责任人单元估计责任人负责某个估计单元的估计结果估计员估计员一般是某项WBS的任务责任主体,他将负责该任务的开发。估计员凭借以往的开发经验和可参考的历史过程数据,对新任务的规模进行仔细的预测。软件估算方法法PERT方法法的改进点1、根据实际际估计结果,,给出项目的的实际值与最最低、最高估估计值的差距距。2、给出每模模块实际值与与最低、最高高估计值的差差距,计算准准确估计的所所占比率。3、在多个项项目估计的基基础上,修正正最低和最高高值的建议范范围,趋势减减小。4、收集项目目估计过程中中的问题,改改进估计方法法的每个步骤骤,并增加常常见偏差指导导。5、项目估计计值和实际值值以及分析作作为经验数据据保存到过程程数据库,供供以后参考。。SoftwareEstimation软件估算方法法将WBS、PERT、Delphi几种方法结结合起来使用用的示例WBS是估算算的基础,估估算作业可以以用WBS表表给出,每个个专家单独估估算时采用PERT方法法,而整个估估算采用Delphi估估算。假定一个软件件系统分为5个功能模块块,我们请5个专家对项项目的需求、、设计、编码码、测试工作作的工作量进进行估算,工工作量的单位位是人月。SoftwareEstimation软件估算方法法综合应用将WBS、PERT、Delphi几种方法结结合起来使用用的示例每个专家基于于WBS、PERT方法法单独进行估估算的示例SoftwareEstimation软件估算方法法综合应用作业乐观估计悲观估计最可能估计偏差功能模块1需求设计编码测试功能模块2需求设计编码测试将WBS、PERT、Delphi几种方法结结合起来使用用的示例WBS、PERT、Delphi综综合应用进行行工作量估算算的示例SoftwareEstimation软件估算方法法综合应用作业专家1估算值专家2估算值专家3估算值专家4估算值专家5估算值偏差率功能模块1需求设计编码测试功能模块2需求设计编码测试估算的表达方方式加减限定范围风险量化情况粗略的日期和和时间段把握性因素SoftwareEstimation加减限定范围风险量化情况粗略的日期和和时间段把握性因素估算:6个月,+3个月,-2个月+1个月延迟交付图形格式子系统-1个月招聘开发人员比预计少+1个月新开发工具没有希望的好用-1个月新开发工具比预期的好用+0.5个月员工病假+0.5个月低估规模SoftwareEstimation估算的表达方方式加减限定范围风险量化情况粗略的日期和和时间段把握性因素情况估算最佳情况4月1日计划情况5月15日当前情况5月30日最差情况6月15日SoftwareEstimation估算的表达方方式加减限定范围风险量化情况粗略的日期和和时间段把握性因素交付日期按期或提前交付的概率4月1日5%5月1日50%6月1日95%SoftwareEstimation估算的表达方方式估算改进单点估算例子子项目点估算(人月)初始产品概念阶段100已批准的产品概念阶段100需求说明书阶段135概要设计说明书阶段145详细设计说明书阶段160结束阶段170SoftwareEstimation范围估算例子子项目点估算(人月)初始产品概念阶段25-400已批准的产品概念阶段50-200需求说明书阶段90-200概要设计说明书阶段120-180详细设计说明书阶段145-180结束阶段170SoftwareEstimation估算改进估算再修正正的例子假定有一个个6个月的的进度计划划,计划4周完成第第一个里程程碑,而实实际用了5周。这时时:假定能在后后续进度中中弥补损失失的一周??把这一周加加到整个进进度中?把整个进度度乘以拖延延的数量((比例),,本例中为为25%??SoftwareEstimation估算改进软件估算的的原则与技技巧估算时间越越早,错误误越大,但但仍然要在在项目初期期就开始估估算。估算的目的的是用来做做决策,而而不是估算算完成就完完了。留出估算的的时间,并并做好计划划。避免无准备备的估算。。估算文档化化做得越好好,获得估估算经验的的机会越大大,这些经经验可以为为以后的项项目估算提提供参考使用以前项项目的数据据。使用以开发发人员为基基础的估算算。进行详细的的较低层次次上的估算算。不要忽略普普通任务。。走查估算。。使用软件工工具估算。。使用几种不不同的估算算方法。估算的目的的是得到准准确的结果果,不是寻寻求特定的的结果。SoftwareEstimation数据转换、、安装、定定制、B测测试程序管管理、向客客户或用户户演示程序序、参加变变更控制会会议、项目目进行中现现有系统的的维护与技技术支持、、缺陷修正正、与SQA的协调调、用户文文档支持、、技术文档档评审、集集成、休假假、节假日日、员工病病假、公司司和部门会会议、培训训等项目组成员员分别估算算项目的各各个部分,,然后开一一个走查会会议比较所所有的估算算。充分讨讨论估算的的差别并了了解出现差差别的原因因,一直到到估算范围围的高低界界限达成一一致意见才才算完成。。9、静夜四无无邻,荒居居旧业贫。。。1月-231月-23Wednesday,January4,202310、雨中黄叶叶树,灯下下白头人。。。20:56:3920:56:3920:561/4/20238:56:39PM11、以我独沈久久,愧君相见见频。。1月-2320:56:3920:56Jan-2304-Jan-2312、故人人江海海别,,几度度隔山山川。。。20:56:3920:56:3920:56Wednesday,January4,202313、乍乍见见翻翻疑疑梦梦,,相相悲悲各各问问年年。。。。1月月-231月月-2320:56:3920:56:39January4,202314、他乡生生白发,,旧国见见青山。。。04一一月20238:56:39下午午20:56:391月-2315、比不了得得就不比,,得不到的的就不要。。。。一月238:56下下午1月-2320:56January4,202316、行动出成成果,工作作出财富。。。2023/1/420:56:3920:56:3904January202317、做做前前,,能能够够环环视视四四周周;;做做时时,,你你只只能能或或者者最最好好沿沿着着以以脚脚为为起起点点的的射射线线向向前前。。。。8:56:39下下午午8:56下下午午20:56:391月月-239、没有失失败,只只有暂时时停止成成功!。。1月-231月-23Wednesday,January4,202310、很多多事情情努力力了未未必有有结果果,但但是不不努力力却什什么改改变也也没有有。。。20:56:3920:56:3920:561/4/20238:56:39PM11、成功就是日日复一日那一一点点小小努努力的积累。。。1月-2320:56:3920:56Jan-2304-Jan-2312、世间间成

温馨提示

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

评论

0/150

提交评论