资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件开发成本估算的经验模补充资料,软件开发成本估算的经验模型,软件开发成本估算是,依据开发成本估算模型进行估算,的。,开发成本估算模型通常,采用经验公式,来,预测软件项目计划所需要的成本,、,工作量和进度数据,。,用以支持大多数模型的经验数据都是,从有限的一些项目样本,中得到的。,IBM模型,E 5.2L,0.91,D 4.1L,0.36,14.47E,0.35,S 0.54E,0.6,DOC 49L,1.01,L,是,源代码行数,(,KLOC,),,E,是,工作量,(,PM,),,D,是,项目持续时间,(,月,),,S,是,人员需要量,(,人,),,DOC,是,文档数量,(,页,)。,IBM模型是,静态单变量模型,。,在此模型中,一般指,一条机器指令为一行源代码,。,一个软件的源代码行数,不包括程序注释,、,作业命令,、,调试程序在内,。,对于非机器指令编写的源程序,例如汇编语言或高级语言程序,应,转换成机器指令源代码行数,来考虑。,转换系数表,定义:转换系数机器指令条数非机器语言执行步数。,Putnam模型,Putnam模型是一种,动态多变量模型,。适用于大型项目,但也可以应用在一些较小的软件项目中。,它是,假定在软件开发的整个生存期中工作量有特定的分布,。,大型软件项目的开发工作量分布可以用,Rayleigh-Norden曲线,表示。,用Rayleigh-Norden曲线可以导出一个“软件方程”,td,是,开发持续时间,(,年,),,K,是,软件开发与维护在内的整个生存期所花费的工作量,(,人年,),,L,是,源代码行数,(,LOC,),,Ck,是,技术状态常数,,,因开发环境而异,。,技术状态常数,C,k,的取值,COCOMO模型(COnstructive COst MOdel),结构型成本估算模型是一种,精确,、,易于使用,的成本估算方法。,DSI,(,源指令条数,)定义为,代码,的,源程序行数,。若一行有两个语句,则算做一条指令。它,包括作业控制语句,和,格式语句,,,但不包括注释语句。,KDSI,1000DSI,。,MM,(度量单位为,人月,)表示,开发工作量,。,TDEV,(度量单位为,月,)表示,开发进度,。它由工作量决定。,软件开发项目的分类,软件开发项目的,总体类型,:,组织型,嵌入型,半独立型,COCOMO模型的分类COCOMO模型,按其详细程度,分成三级:,基本COCOMO模型,中间COCOMO模型,详细COCOMO模型,基本COCOMO模型,是,静态单变量模型,,用,源代码行数,(,LOC,)为,自变量,的经验函数计算软件开发工作量。,中间COCOMO模型,在用,LOC,为,自变量,的函数计算软件开发工作量(称为名义工作量)的基础上,,用涉及产品,、,硬件,、,人员,、,项目等方面的影响因素调整工作量估算,。,详细COCOMO模型,包括中间CO COMO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一步骤(分析、设计等)的影响。,基本COCOMO模型,基本COCOMO模型的工作量和进度公式,中间COCOMO模型,进一步考虑,15种影响软件工作量的因素,,通过,定下乘法因子,,,修正COCOMO工作量公式和进度公式,,可以更合理地估算软件(各阶段)的工作量和进度。,中间COCOMO模型的名义工作量与进度公式如下所示。,中间COCOMO模型的名义工作量,与进度公式,15种影响软件工作量的因素,fi,产品因素:,软件可靠性、数据库规模、产品复杂性,硬件因素:,执行时间限制、存储限制、虚拟机易变性、环境周转时间,人的因素:,分析员能力、应用领域实际经验、程序员能力、虚拟机使用经验、程序语言使用经验,项目因素:,现代程序设计技术、软件工具的使用、开发进度限制,此时,工作量计算公式改成,例1.一个,32,KDSI,的声音输入系统是一个输入原型,或是一个可行性表演模型。所需可靠性非常低。把此模型看做半独立型软件。则有,MM,3.0(32),1.12,146又查表知,f,1,0.75,其它,f,i,1.00,则最终有MM 1460.75 110.,例14.一个规模为,10KDSI,的商用微机远程通信的,嵌入型软件,,,使用中间COCOMO模型,进行成本估算。,程序名义工作量,MM 2.8(10),1.20,44.38(MM),程序实际工作量,MM 44.38,44.381.17 51.5(MM),开发所用时间,TDEV 2.5(51.5),0.32,8.9(,月,),如果分析员与程序员的工资都按每月6,000美元计算,则该项目的开发人员的工资总额为,51.56,000 309,000(,美元,),做为对比,现在用,IBM模型,计算,:,PM 5.2(10),0.91,42.27(人月),D 4.1(10),0.38,9.84(月),S 0.54(42.27),0.60,5.1(人),详细COCOMO模型,详细COCOMO模型的名义工作量公式和进度公式与中间COCOMO模型相同,。,工作量因素分级表分层、分阶段给出。针对每一个影响因素,按,模块层,、,子系统层,、,系统层,,有三张工作量因素分级表,供不同层次的估算使用。,每一张表中工作量因素又按开发各个不同阶段给出,。,例如,关于软件可靠性(RELY)要求的工作量因素分级表(子系统层),如表所示。,使用这些表格,可以比,中间COCO MO模型,更方便、更准确地估算软件开发工作量。,软件可靠性工作量因素分级表(子系统层),进度安排,软件开发项目的进度安排有两种方式:(1)系统,最终交付日期已经确定,,软件开发部门必须在规定期限内完成;(2)系统,最终交付日期只确定了大致的年限,,最後交付日期由软件开发部门确定。,进度安排落空,会导致市场机会的丧失,使用户不满意,而且也会导致成本的增加。,因此,在考虑进度安排时,要把工作量与花费时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监控软件开发的进展情况,使软件开发进度不致拖延。,软件开发小组人数与软件生产率的关系,当几个人共同承担软件开发项目中的某一任务时,,人与人之间必须通过交流来解决各自承担任务之间的接口问题,,即所谓,通信问题,。通信需花费时间和代价,会引起软件错误增加,降低软件生产率。,若两个人之间需要通信,则称在这两个人之间存在一条通信路径。如果一个软件开发小组有,n,个人,每两人之间都需要通信,则总的通信路径有,n,(,n,-,1)/2,(条)。,设一个人单独开发软件,生产率是,5000行人年,。若,4 个人,组成一个小组共同开发这个软件,则需要,6条通信路径,。若在每条通信路径上耗费的工作量是,250 行人年,。则小组中每个人的软件生产率降低为,500062504,=5000375,=4625 行人年。,从上述分析可知,,一个软件任务由一个人单独开发,生产率最高,;而对于一个稍大型的软件项目,一个人单独开发,时间太长。因此,软件开发小组是必要的,。,但是,开发小组不宜太大,成员之间避免太多的通信路径。,在开发进程中,切忌中途加人,避免太多的生产率损失。,任务的确定与并行性,当参加同一软件工程项目的人数不止一人的时候,开发工作就会出现并行情形。,软件开发进程中设置许多里程碑。里程碑为管理人员提供了指示项目进度的可靠依据。,软件工程项目的并行性提出了一系列的进度要求。,因为并行任务是同时发生的,所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。,项目负责人应注意构成关键路径的任务,即若要保证整个项目能按进度要求完成,就必须保证这些任务要按进度要求完成。,制定开发进度计划,402040规则,在整个软件开发过程中,编码工作量仅占 20,编码前工作量占40,编码后工作量占 40。,402040 规则只应用来做为 一个指南。实际的工作量分配比例必须按照各项目的特点来决定。,COCOMO模型,开发进度TDEV与工作量MM的关系:,TDEV a(MM),b,如果想要缩短开发时间,或想要保证开发进度,必须考虑影响工作量的那些因素。按可减小工作量的因素取值。,按此比例确定各个阶段工作量的分配,从而进一步确定每一阶段所需的开发时间,然后在每个阶段,进行任务分解,对各个任务再进行工作量和开发时间的分配。,进度安排的方法,可以把用于一般开发项目的进度安排的技术和工具应用于软件项目。,为监控,软件项目的进度计划和工作的实际进展情况,,为表现,各项任务之间进度的相互依赖关系,,需要采用图示的方法。,在图示方法中,必须明确标明:,各个任务的,计划开始时间,,,完成时间,;,各个任务,完成标志,(即文档编写和评审);,各个任务与参与工作的人数,各个,任务与工作量之间的衔接情况,;,完成各个任务所需的物理资源和数据资源。,(1)甘特图(Gantt Chart),在甘特图中,每一任务完成的标准,不是以能否继续下一阶段任务为标准,而是,以必须交付应交付的文档与通过评审为标准,。因此在甘特图中,文档编制与评审是软件开发进度的里程碑。,(2)PERT技术和CPM方法,PERT技术叫做,计划评审技术,,CPM方法叫做,关键路径法,,它们都是安排开发进度,制定软件开发计划的最常用的方法。,它们都采用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,把应当完成的任务用图或表的形式表示出来。,三个模块开发的网络图,通常用两张表来定义网络图。,一张表给出,与一特定软件项目有关的所有任务,(也称为任务分解结构WorkBreakdown Structure);,另一张表给出,应当按照什么样的次序来完成这些任务,(有时称为限制表RestrictionList)。PERT技术和CPM方法都为项目计划人员提供了一些定量的工具。,确定关键路径,,即决定项目开发时间的任务链。在关键路径上的各个任务都是时间余量为零的关键任务,不能有任何时间延误。,应用统计模型,,对每一个单独的任务确定最可能的开发持续时间的估算值。,计算边界时间,,以便为具体的任务定义时间窗口。,
展开阅读全文