软件项目的规模、工作量和成本是如何进行估算的_第1页
软件项目的规模、工作量和成本是如何进行估算的_第2页
软件项目的规模、工作量和成本是如何进行估算的_第3页
软件项目的规模、工作量和成本是如何进行估算的_第4页
软件项目的规模、工作量和成本是如何进行估算的_第5页
全文预览已结束

下载本文档

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

文档简介

软件项的规模、工量和成是如何进行算的2010-08-23来源:网络1.基于代码行和功能点估算软件项目的规模是影响软件项目成本和工作量的主要因素。在基于代码行loc,ofcode)和功能(point的估算方法中利用代码行和功能点来表示软件系统的规模并通过对软件项目规模的估算进而来估算软件项目的成本和工作量。显然,一软件项目的代码行数目越多它的规模也就越大软件代码行的数目易于度量许多软件开发组织和项目组都保留有以往软件项目代码行数目的记录,这有助于在以往类似软件项目代码行记录的基础上对当前软件项目的规模进行估算。用代码行的数目来表示软件项目的规模简单易行,自然、直观且易于度量。但是其缺点也非常明显。在软件开发初期很难估算出最终软件系统的代码行数;软件项目代码行的数目通常依赖于程序设计语言的功能和表达能力用代码行的估算方法会对那些设计精巧的软件项目产生不利的影响;该方法只适合于过程式程序设计语言,不适合于非过程式程序设计语言(如函数式或者逻辑语言)。针对上述问题,人们提出用软件系统的功能数目来表示软件系统的规模。1979年ibm的提出了计算功能点的方法。该方法需要对软件系统的二个方面进行评估,即评估软件系统所需的内部基本功能和外部基本功能,然后根据技术复杂度因子对这二个方面的评估结果进行加权量化,产生软件系统功能点数目的具体计算值。具体的,以下是软件系统功能点的计算公式。fpct×(0.65+0.01×sfi)()其中,ct是5个信息量的“加权和,fi是14个因素的复杂性调节值”(i),和是经验常数。ct的计算方法如表所示,(简单用户输入数×3+一般用户输入数×4+复杂用户输入数)(简单用户输出数×4一般用户输出数×5+杂用户输出数×7+(简单用户查询数×3+般用户查询数×4+复杂用户查询6(简单文件数×7+般文件数×10+杂文件数×15(简单外部界面数×5+一般外部界面7+杂外部界面数×10)。其中,用户输数是指由用户提供的、用来输入的应用数据项的数目;用户输出数是指软件系统为用户提供的、向用户输出的应用数据项的数目;用户查询数是指要求回答的交互式输入的项;文件数是指系统中主文件的数目;外部界面数是指机器可读的文件数目(如磁盘或者磁带中的数据文件)。表3.值的加权计算参数\值\

加权因子加权

简单

一般

复杂

最终值用户输入数´3用户输出数´4

´4´5

用户查询数´3

´4

文件数

´10

´15外部界面数´5ct=

´7

´10f()14个因素的“复杂性调节值取值见表4。i表4.的取值表i序号iff

系统需要可靠的备份和复原码系统需要数据通信吗

问题

fi取值(0,1,2,3,4,5)有影响fffffff

系统有分布处理功能吗性能是临界状态吗系统是否在一个实用的操作系统下运行系统需要联机数据项吗联机数据项是否在多屏幕或多操作之间进行切换需要联机更新主文件吗输入、输出、查询和文件很复杂吗

有影响微影响平均影响大影响重影响fffff

内部处理复杂吗代码需要被设计成可重用吗设计中需要包括转换和安装吗系统的设计支持不同组织的多次安装吗应用的设计方便用户修改和使用吗例如,假设项目组要开发一个软件项目a根据用户的需求描述,该软件项目的c取值如表5所示。进一步的,假设该软件项目的14个杂性调节值全部取平均程度。那么根据表5可知,该软件项目的,14个复杂性调节因素的累加值sfi=42,因而据公式fp=ct×+(i=1..14)知,该软件项目的功能f(0.65+=,即该项目的功能点数目大致为。表5.软件项目a的ct参数\值\

加权因子

加权用户输入数用户输出数用户查询数文件数外部界面数

简单6´37´42´30´72´5

一般2´46´50´43´7

复杂5´65´75´6

最终值56103367571ct=

341用功能点来表示软件项目规模的好处是:软件系统的功能与实现该软件系统的语言和技术无关,而且在软件开发的早期阶(如需求分析就可通过对用户需求的理解获得软件系统的功能点数目,因而该方法可以较好地克服基于代码行软件项目规模表示方法的不足。其不足主要体现在:该方法没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;功能点计算主要靠经验公式,主观因素比较多;此外计算功能点所需的数据不好采集。大量的实践表明:针对特定的程序设计语言,软件系统的功能点和代码行二者之间存在某种对应关系(如表所示)。根据该表的数据,一个功能点如果用汇编语言来实现大约需要行代码,如果用c言来实现大约需要行代码如用smalltalk言来实现大约需要代码从另一个角度上看,该表反映了不同程序设计语言的描述能力是不一样的。表6.功能点和代码行之间的转换表序号12345678910

程序设计语言汇编语言cobolfottranadapl/1代码生成器

代码行/功能点320150105105917165642115假设用l表示软件系统的规(或者用表,或者fp来表示。针对一个具体的软件项目,可以采用自顶向下或者自底向上等多种方式来估算出软件项目规模的乐观值、悲观值和一般值m,然后根以下公式估算出软件项目规模的期望值:e=(a+b)/6

根据软件项目规模的期望值e以及下列公式,就可以估算出软件项目的成本和工作量。生产率=le其中,l表软件项目的规模(单位:loc者fp),表示软件工作量(单位:人月),示单个人月能够生产的功能点或者代码行数。平均成本ckl=/l其中,为软件项目总开销l表示软件项目的规模(位者fp),ckl表示每行代码者每个功能点的平均成本。对于一个特定的软件开发组织或者项目组而言其软件生产率和平均成本在不同的软件项目实施中可能是比较稳定的。如果有以往软件项目的历史信息,可以很容易地获得关于软件开发组织或者项目组的pm和ckl值。因,一旦估算出了软件项目的规模,获得了软件开发组织或者项目组的ckl的值,就可根据公式ckl=s/l计算出软件项目的成本=ckl´l,也可根据公pm=l/计算出软件项目的工作量l/。例如,假设项目组要开发一个软件项目,经过估算该项目的规模是364个功能点。进一步的,根据以往的历史数据,该项目组软件开发的生产率是8fp/月,每个功能点的平均成本为12000元人民币么该软件项目的开发成本=人民币´247人民币作量为364/8=人。基于经验模型的估算基于经验模型的估算根据以往软件项目实施的经验数据(如成本、工作量和进度等)建立相应的估算模型以此为基础对软件项目开发的有关属性进行估算造性成本模型cocomo(cost)是目前应用最为广泛的经验模型之一。在二十世纪七十年代后期,对多达63个软件项目的经验数据进行了分析和研究,在此基础上于提出了模型用于对软件项目的规模、成本、进度等方面进行估算。把cocomo模型分为基本、中间和详细三个层次,分别支持软件开发的三个不同阶段。基本模型用于估算整个软件系统开发所需的工作量和开发时间,适合于软件系统开发的初期。中间层次的cocomo模型用于估算各个子系统的工作量和开发时间适在获得各个子系统信息之后对软件项目的估算详细层次的cocomo模型用于估算独立的软构件适合在获得各个构件信息之后对软件项目的估算。由于篇幅限制,本书仅介绍基本型,其模型形式描述如下。e=a*。其中e是软件系统的工作量(单位:人月),a和是经验常数,其取值见表,kloc是软件系统的规模(单位:千行代码)。该公式描述了软件系统的规模与工作量之间的关系。d=*。其中d是开发时间(单位:月),c和d是经验常数,其取见表该公式描述了

软件系统的开发时间与工作量之间的关系。表7.基本模型参数的取值组织型半独立型嵌入型

a2.43.03.6

b

c2.52.52.5

d

各类应用程序各类实用程序、编译程序等各类实时软件、os、制程序等cocomo模型是一个综合经验模型考虑了诸多因素而是一个比较全面的估算模型模型有许多参数,其取值来至于经验值。该估算模型比较实用、易于操作,在欧盟国家应用较为广泛。例如,针对上面所述的软件项目a,如果已估算出该项的软件规模是33.3kloc,而且该项目属于半独立型,即cocomo模型中的参数、bcd取值分别是3.0、、2.50.35,那么根据模型公式*可以估算出该项目的工作量是3.0*(33.3)1.12即152人月然后根据公式=c*ed可以估算出该项目的开发时间是,即14.5。2.其它估算方法其它估算方法包括:专家估算、类比估算等等。专家估算方法是由一组专家来对软件项目所需的成本、工作量和进度等进行估算。一般地,这些专家具有应用领域或者开发环境方面的知识、参与了以往类似软件项目的开发。为了避免专家估算的片面性,专家估算方法一般要求每位专家给出估算的最小值、可能值和最大值b,后计算出每位专家估算的平均值esti=a+4m+b,后根据各位专家的估算情况计算出最终的估算值est=(est1+est2+est3+…开发组织或者项目组拥有一批经验丰富的专家,可以考虑采用该方法。专家估算方法具有人为因素多、主观因素大的特点,一般应用于软件开发的初期阶段,此时软件项目组往往难以获得估算软件项目所需的各种数据和信息。类比估算方法是指估算人员根据以往类似软件项目实施所积累下来的数据通过分析待开发软件项目和以往软件项目二者之间的相似性,估算出软件项目的开发工作量、成本和进度等。使用该方法的前提是:待估算

温馨提示

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

评论

0/150

提交评论