软件开发工程管理2008五_第1页
软件开发工程管理2008五_第2页
软件开发工程管理2008五_第3页
软件开发工程管理2008五_第4页
软件开发工程管理2008五_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

上讲提要需求规约说明需求验证需求管理项目计划介绍本讲主要内容LOCFP估算技术COCOMO软件项目计划计划从估算开始建立计划整体计划贯穿项目始终详细计划完成规格说明之后必须产生的估算什么?估算成本内部成本外部成本估算开发周期影响估算的因素项目复杂性项目规模结构不确定性影响估算结果的最大因素:?不同开发人员之间的差距:产品规模上: 6:1产品执行时间上: 8:1开发时间上: 9:1编码时间上: 18:1调试时间上: 28:1平均: 5:1软件项目计划活动

——估算需要的资源有哪些项目资源?开发环境可复用构件人员软件项目计划活动

——软件项目估算(1)怎么进行估算?将估算拖延到项目的后期基于已经完成的类似项目进行估算使用相对简单的分解技术以生成项目成本及工作量估算使用一个或多个经验模型进行软件成本及工作量的估算软件项目计划活动

——软件项目估算(2)估算内容:产品规模度量产品成本估算产品规模度量

——代码行(1/4)代码行数代码行(LOC)LinesOfCode已交付源代码指令(KDSI)ThousandDeliveredSourceInstructions产品规模度量

——代码行(2/4)项目LOC工作量成本文档页数错误缺陷人员A1210024168365134293B27200624401224321865C20200433141050256646……………………产品规模度量

——代码行(3/4)可用的度量每千行代码(KLOC)的错误数每千行代码(KLOC)的缺陷数每个代码行(LOC)的花费每千行代码(KLOC)的文档页数每人月的错误数每人月的代码行(LOC)每页文档的花费产品规模度量

——代码行(4/4)支持者:LOC是所有软件开发项目的“生成品”易于计算很多软件估算模型使用LOC作为输入反对者:LOC测量依赖于语言对设计得很好但较小的程序会产生不利的评判估算时需要一些难以得到的信息思考题项目设计编码测试合计人月%人月%人月%人月SLOCA3.9235.3327.44416.76050B2.71213.4596.52622.68363C3.51126.8831.9632.213334D0.8212.4620.7183.95942E1.8107.7447.84517.33315F19.02829.74419.02867.738988G2.1217.4740.5510.138614H1.3712.7665.32719.312762I8.51422.73828.24759.526500计算每个项目的生产率计算组织的总体生产率产品规模度量

——功能点(1/10)功能点(functionpoint):用来量化程序规模,又与编程语言无关的度量单位FP由五个使用户受益的外部用户类型组成:外部输入类型外部输出类型外部查询类型内部逻辑文件类型外部接口文件类型产品规模度量

——功能点(2/10)外部输入类型该输入事务使内部计算机文件更新外部输出类型输出数据给用户的事务外部查询类型根据用户提供的信息引发,但不更新内部文件内部逻辑文件类型系统使用的固定“文件”外部接口文件类型与其他计算机应用程序的交互产品规模度量

——功能点(3/10)每种类型对系统规模的影响由“复杂度因子”决定复杂度分为“高”、“中”和“低”三种外部用户类型复杂因子低中高输入346输出457查询346内部文件71015外部接口5710产品规模度量

——功能点(4/10)各个因子的复杂程度可由相关表格查得输出、查询复杂度表记录类型数数据类型数<66~19>190或1低低中2或3低中高>3中高高文件复杂度表记录类型数数据类型数<2020~50>501低低中2~5低中高>5中高高输入复杂度表记录类型数数据类型数<55~15>150或1低低中2低中高>2中高高产品规模度量

——功能点(5/10)功能点计算步骤:为产品的各个组件指定对应的复杂度级别查表找出对应级别的功能点系数对分配给每个组件的功能点求和即:FP=Σ(各个复杂度等级的信息域数量×权值)思考题软件学院某项目需要实现一个程序,该程序可从成绩管理系统中取出学生成绩和学号,从学籍管理系统中取出学生基本信息,然后生成一个报告,该报告将学生信息按照平均分降序排列输出。假定该报告是高复杂度的、其他所有元素为中等复杂度的,试计算该程序的功能点。某内部逻辑文件中包括了关于借阅图书的信息。该信息包含两种独立的记录类型:借阅记录和书目记录。其中借阅记录包括借阅记录编号、借阅时间、借阅期限、借阅者编号、被借书目编号等,书目记录包括书名、书编号、书类别等。查表计算该逻辑文件所对应的功能点数。产品规模度量

——功能点(6/10)思考:两个项目的功能点相等,意味着两个项目的规模一定相同吗?所以,前文得到的实际上是UFP(unadjusted)应针对不同问题对该值加以规正使用TCF产品规模度量

——功能点(7/10)技术复杂因子TCF(TechnicalComplexityFactor)共有14个因子每个因子的取值范围为0~50为不存在或没有影响3为平均的影响5为重大的影响1硬件负荷应用运行在的硬件平台工作强度如何?2数据通信多少个通信设施在应用或系统之间辅助传输和交换信息?3分布数据处理分布的数据和过程函数如何处理?4性能用户要求相应时间或者吞吐量吗?5事务频度事务执行的频率(天、周、月)如何?6在线数据输入在线数据输入率是多少?7终端用户效率应用程序设计考虑到终端用户的效率吗?8在线更新多少内部逻辑文件被在线事务所更新?9处理复杂度应用有很多的逻辑或者数据处理吗?10重用性被开发的应用要满足一个或者多个用户需要吗?11易安装性升级或者安装的难度如何?12易操作性启动、备份、恢复过程的效率和自动化程度如何?13跨平台性应用被设计、开发和支持被安装在多个组织的多个安装点(不同的安装点的软硬件平台环境不同)吗?14可扩展性应用被设计、开发以适应变化吗?产品规模度量

——功能点(8/10)FP计算步骤(续):计算UFP计算技术复杂因子TCF(TechnicalComplexityFactor)查表得到各部分影响度累加得到总影响度DI(DegreeOfInfluence)TCF=0.65+0.01*DI计算功能点FPFP=UFP*TCF产品规模度量

——功能点(9/10)可用的度量每个功能点(FP)的错误数每个功能点(FP)的缺陷数每个功能点(FP)的花费每个功能点(FP)的文档页数每人月的功能点(FP)数产品规模度量

——功能点(10/10)支持者:FP与程序设计语言无关基于项目开发初期就有可能得到的数据反对者:FP的计算基于主观的数据FP没有直接的物理含义产品规模度量

——二者的转换程序设计语言LOC/FP汇编320C128Cobol106Fortran106Pascal90C++64Ada9553VB32Smalltalk22PB16SQL12思考题项目设计编码测试合计人月%人月%人月%人月SLOCA3.9235.3327.44416.76050B2.71213.4596.52622.68363C3.51126.8831.9632.213334D0.8212.4620.7183.95942E1.8107.7447.84517.33315F19.02829.74419.02867.738988G2.1217.4740.5510.138614H1.3712.7665.32719.312762I8.51422.73828.24759.526500如果项目a和项目d的负责人已经正确地估计了SLOC,并使用组织的生产率进行估计该项目的工作量,那么估计值与实际值有多大差距?估算技术

——总论有哪些估算技术?类比估计法专家判断法自底向上法自顶向下法参数模型法估算技术

——类比估计法类比估计法也称作基于案例的推理关键之处:如何标识出不同系统之间的相同和不同之处一种解决办法:使用欧式距离思考题假定要匹配的案例基于两个参数——待构建系统的输入数和输出数。已知新项目有7个输入和15个输出。组织历史项目A有8个输入和17个输出。求两项目间欧式距离。该组织的项目B有5个输入和10个输出。问用项目A和项目B对新项目进行估算更合理,为什么?估算技术

——专家判断法(1/2)专家判断法指估计由领域的专家作出通常要权衡多个专家的意见关键之处:如何保证专家能独立得出估计一种解决办法:使用Delphi法估算技术

——专家判断法(2/2)估算值计算公式:S=(Sopt+4Sm+Spess)/6例:乐观4600LOC,最可能6900LOC,悲观8600LOCS=(4600+4*6900+8600)/6=6800LOC估算技术

——自顶向下法自顶向下法思想是将系统的影响因素提取出来,并根据某种规律换算得出整体估计。特点:该方法通常与参数模型法相关有的参数模型关注系统规模,有的则关注劳动生产率估算技术

——自底向上法自底向上法思想是将不能直接估计的任务分解为若干可以估计的子任务,进而对子任务估计汇总得到整体估计。特点:该方法基于工作分解结构更适合于后期的项目策划阶段分解技术(1/4)有哪些分解技术?问题分解过程分解分解技术(2/4)对问题的分解算法:定义产品范围;通过分解范围来标识功能;Dowhile有功能剩余选择功能j赋所有功能到子功能表分解技术(3/4)Dowhile有子功能剩余选择子功能kIf子功能k类似于历史数据库中描述的子功能dthen记下子功能d的历史成本、工作量、规模数据;基于任意不同调整成本、工作量、规模数据;使用调整后的成本、工作量、规模数据来导出部分估算,Ep;

项目估算={Ep}的总和;

elseif子功能k的成本、工作量、规模可以被估算then导出部分估算,Ep;

项目估算={Ep}的总和;

else分解子功能k为更小的子功能;将这些子功能加入子功能表;分解技术(4/4)对过程的分解步骤:将过程分成相对较小的任务集合分别估算完成每个任务所需的工作量分别对每个功能都进行基于过程的估算估算示例(1/5)例:一个CAD应用开发软件包 CAD软件接受来自工程师的二维或三维几何数据。工程师通过用户界面与CAD系统进行交互并控制它,该界面应表现出良好的人机界面的特征。所有几何数据及其他支持信息都保存在一个CAD数据库中。需开发设计分析模块,以产生所需的输出,这些输出将显示在各种不同的图形设备上。软件在设计中要考虑与外设进行交互并控制它们。用户界面及控制设施二维几何分析三维几何分析数据库管理计算机图形显示设施外设控制功能设计分析模块估算示例——LOC(2/5)功能LOC估算用户界面及控制设施2300二维几何分析5300三维几何分析6800数据库管理3350计算机图形显示设施4950外设控制功能2100设计分析模块8400总代码行估算33200针对此系统的平均生产率是620LOC/pm,每一个劳动力价格是8000美元,则每行代码的成本约为13美元,总项目成本估算是431000美元,工作量估算是54个人月。估算示例——FP(3/5)信息域值乐观值可能值悲观值估算计数加权因子FP计数输入数20243024497输出数12152216578查询数16222822588文件数44541042接口数2232715总计3204硬件负荷应用运行在的硬件平台工作强度如何?2数据通信多少个通信设施在应用或系统之间辅助传输和交换信息?0分布数据处理分布的数据和过程函数如何处理?4性能用户要求相应时间或者吞吐量吗?3事务频度事务执行的频率(天、周、月)如何?4在线数据输入在线数据输入率是多少?5终端用户效率应用程序设计考虑到终端用户的效率吗?3在线更新多少内部逻辑文件被在线事务所更新?5处理复杂度应用有很多的逻辑或者数据处理吗?5重用性被开发的应用要满足一个或者多个用户需要吗?4易安装性升级或者安装的难度如何?3易操作性启动、备份、恢复过程的效率和自动化程度如何?5跨平台性应用被设计、开发和支持被安装在多个组织的多个安装点(不同的安装点的软硬件平台环境不同)吗?5可扩展性应用被设计、开发以适应变化吗?FP=320*(0.65+0.01*52)=375针对此系统的平均生产率是6.5FP/pm,每一个劳动力价格是8000美元,则每个FP的成本约为1230美元,总项目成本估算是461000美元,工作量估算是58个人月。估算示例——基于过程(4/5)活动客户交流计划风险分析工程建造发布客户评估合计任务分析设计编码测试功能用户界面及控制0.502.500.405.008.40二维几何分析0.754.000.602.007.35三维几何分析0.504.001.003.008.50数据库管理0.503.001.001.506.00计算机图形显示0.503.000.751.505.75外设控制功能0.252.000.501.504.25设计分析模块0.502.000.502.005.00合计0.250.250.253.5020.54.5016.546.0%工作量1%1%1%8%45%10%36%每一个劳动力价格是8000美元,总项目成本估算是368000美元,工作量估算是46个人月。估算示例——解决分歧(5/5)三个估算分别为46人月、54人月、58人月;平均53人月;最大偏差约为13%只要估算最大偏差在20%以内,通常都可以接受差别很大的原因:项目的范围未能被充分理解或被误解;基于问题的估算技术中所使用的生产率数据对于该应用是不合适的,或是太陈旧了,或是被误用了。其他估算模型介绍前文功能点由Albrecht提出,现在叫IFPUG功能点还有很多功能点:MarkII功能点用于英国COSMIC全功能点用于其它国家对象点……MarkII功能点MarkII功能点为英国政府标准假定一个信息系统由具有相同基本结构的事务所组成即:用户输入-〉使用数据存储处理-〉转化为用户输出对于每个事务:UFP=Wi*(输入数据元素类型数)+We*(引用的实体类型数)+Wo*(输出数据元素类型数)Wi、We、Wo通过询问开发人员的历史经验得到Wi、We、Wo三者的和必须等于2.5推荐值为:Wi=0.58、We=1.66、Wo=0.26思考题在学生成绩查询系统中,学生需要访问学生成绩表和课程详细信息表才能得到自己某课程的成绩和学分。输入的数据元素为:StudentID、CourseName;输出的信息为:StudentID、StudentName、ScoreOfCourse、CourseCost。请计算该事务的功能点。COSMIC全功能点(1/2)COSMIC全功能点由加拿大人提出,在多国使用不仅可用于MIS,也用于实时系统或嵌入式系统思想:假设功能规模是通过“数据移动”的个数来度量一个数据移动是一个数据组的传输一个数据组是一个有区别的、非空的、没有顺序且没有冗余的数据属性的集合。COSMIC全功能点(2/2)有4种类型的数据移动:进入(E)进入是从用户穿越被度量系统的边界传输数据到系统内部,这里提到的用户既包括系统的使用人员,也包括其他软件或者硬件系统退出(X)退出是一个数据组从一个功能处理通过边界移动到需要它的用户读(R)读是从永久性的存储设备读取数据写(W)写是存储数据到永久性的存储设备思考题某小型计算机系统控制停车场车辆的出入。每当一辆汽车停在停车场的栏杆外面请求进入的时候,感应器将汽车信息传递给计算机系统。系统检查现在停车场中停泊车辆的数量。获得的停泊车辆数量被写进存储装置中,防止意外导致的数据丢失。如果数量没有超出停车场的容量,那么抬起横杆放行进入,并且停车数量加一。当一辆车离开的时候,感应器收集信息传递给系统,停车数量减一。有一个系统管理员系统,可以用来设置最大停车数,也可以在系统重启的时候用来调整和覆盖车辆的数量。请识别出该系统中的进入、退出、读和写。对象点基于对象的软件产品规模估算SEI提出根据企业存储的实现各种类型和复杂性的对象和方法所需要的代码行数经验估算模型

——总论经验估算模型思想:使用模型确定产品成本使用LOC或FP等作为模型的输入参数经验估算模型分类:由数学推理得到由统计数据得到混合模型经验估算模型

——模型结构模型的结构形式:E=A+B*(ev)C其中ABC是经验导出的常数,E是人月数,ev是估算变量(LOC、FP、etc.)

E=5.2*(KLOC)0.91 Walston-Felix模型E=5.5+0.73*(KLOC)1.16 Bailey-Basili模型E=5.288*(KLOC)1.047 Doty模型

E=-13.39+0.0545FP Albrecht模型E=60.62*7.728*10-8FP3 Kemerer模型E=585.7+15.12FP Maston、Barnett模型经验估算模型

——COCOMO(1)COCOMO是什么?COnstructiveCOstMOdelBoehm推导出的经验估算模型它由分层次的一系列模型组成基本COCOMO中间COCOMO详细COCOMO经验估算模型

——COCOMO(2)如何使用COCOMO?将软件从整体上分成有机式

、半分离式、嵌入式三种模式进行估算有机式

:项目相对简单,一小组有经验的程序员在极为熟悉的环境中开发半分离式:项目为中等规模,开发小组可能由经验之不同的混合人员组成嵌入式的:项目必须在严格的约束条件下开发,待解决问题较少见,无法借助于经验利用E=a*Sb*EAF估算成本特性

软件开发模式

有机式

半分离式

嵌入式

产品目标的系统理解充分

很多

一般

有关工作经验

大量

很多

适中

对需求一致性的要求

基本

很多充分

对外部接口说明一致性的要求

基本很多充分有关新硬件和操作程序的并行开发

若干

适中

大范围

对创新的数据处理结构、算法的需求

最低

若干

很多

提前完成时的奖金

低适中高产品规模范围

小于50KDSI小于300KDSI所有规模

应用实例

分批数据处理简单库存、生产管理普通操作系统

事务处理系统简单指令控制新操作系统

复杂事务处理系统超大型操作系统宇航控制系统

经验估算模型

——COCOMO(3)基本COCOMO工作量计算方法:确定开发模式估计产品规模S根据开发模式查表得到a和b计算工作量:E=a*Sb开发模式ab有机式2.41.05半分离式3.01.12嵌入式3.61.20经验估算模型

——COCOMO(4)基本COCOMO开发时间计算方法:计算工作量根据开发模式查表得到c和d计算开发时间:t=c*Ed开发模式cd有机式2.50.38半分离式2.50.35嵌入式2.50.32思考题项目设计编码测试合计人月%人月%人月%人月SLOCA3.9235.3327.44416.76050B2.71213.4596.52622.68363C3.51126.8831.9632.213334D0.8212.4620.7183.95942E1.8107.7447.84517.33315F19.02829.74419.02867.738988G2.1217.4740.5510.138614H1.3712.7665.32719.312762I8.51422.73828.24759.526500假定表中所有系统都是有机式的,请用基本COCOMO和表中的SLOC估计每个项目的人月数。经验估算模型

——COCOMO(5)中间COCOMO计算方法:确定开发模式估计产品规模S根据开发模式查表得到a和b计算额定工作量(nominaleffort)=a*Sb将计算结果乘以15个“软件开发工作量因子”例1:有组织的模式,交付时12KDSI额定工作量=3.2*(12)1.05=43人.月开发模式ab有机式3.21.05半分离式3.01.12嵌入式2.81.20经验估算模型

——COCOMO(6)例2:开发一个基于微处理器的通信处理软件嵌入式模式,交付时10KDSI额定工作量=2.8*(10)1.20=44人.月成本影响因素情形级别工作量因子要求的软件可靠性软件错误带来严重的经济后果高1.15数据库规模20000字节低0.94产品复杂度通信处理非常高1.30执行时间限制将使用70%的可用时间高1.11主存限制64KB主存中的45KB(70%)高1.06虚拟机的变更性基于商用微处理器硬件额定1.00计算机周转时间平均两小时周转时间额定1.00分析员能力好的高级分析员高0.86应用经验三年额定1.00程序员能力好的高级程序员高0.86虚拟机经验6个月低1.10编程语言经验12个月额定1.00现代编程实践的使用所用技术大多数超过了一年高0.91软件工具的使用处于基本的微机工具水平低1.10要求的开发进度表9个月额定1.00实际额定工作量=1.35*44=59人.月思考题某企业开发一个新项目,在该项目组中,分析员能力被认为是异常出众的;程序员的能力是高的,但只有少量特定应用领域的经验,而且将使用的编程语言对他们来讲是新的。不过,他们熟悉操作系统环境。如果该项目额定工作量估值为5人月,请估计实际

温馨提示

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

评论

0/150

提交评论