快捷搜索:

软件项目估计

1 什么叫软件项目预计

众所周知,软件项目预计是软件项目开拓活动的紧张环节,然则,今朝国内外还没有一个对软件项目定义的统一观点。大年夜家都知道,软件项目预计包括对软件项目的规模、事情量和资源和BUG数等预计。但一些更细的问题还值得我们去覃思和斟酌,如

◇ 预计的工具是什么,

◇ 什么光阴进行预计,

◇ 什么时刻对预计的监视和跟踪,

◇ 预计的准确性标准是什么,什么是有效的预计,

◇ 哪些事情算预计的事情量,

◇ 若何选择预计的措施和对象,

◇ 预计应遵守的原则和立场是什么,什么叫朴拙预计,

◇ 什么人才能做预计职员,要有些什么常识和履历,为什么要做软件项目预计,

◇ 更深层次的问题,什么是预计文化,她包孕哪些内容等(在英文中评估和预计是同一个词estimations,但从汉角度理解,评估可所以对现有工具猜测,如房产评估,整体资产评估,而预计方向于对未成形的客不雅事务的猜测,如企业产品市场占领率预计等)。

软件项目预计的工具是全部软件项目呢?照样项目的事情产品。根据SEI的SW_CMM模型定义,软件事情产品和软件产品不合,软件事情产品是指在软件项目开拓历程中孕育发生的各类事情产品,它包括需求阐发阐明书、设计阐明书,源代码等工程产品也包括项目治理的事情产品如周报,设置设置设备摆设摆设治理申报等。而软件产品是指交付给客户的软件事情产品,它是软件事情产品的一个子集,如履行代码,用户手册和掩护手册等。我们觉得,软件项目预计是一个课题,预计工具必须是客不雅的,详细来说预计工具可所以需求阐发阐明书,履行代码和测试用例和终极提交给客户的软件系统或者它的一个子系统等,当然,一样平常观点的软件项目预计是指提交给客户的软件系统的规模、完成它所必要的事情量和资源预计。软件系统规模可以用功能点,特性点和工具点以及履行法度榜样代码行等数据和单位来度量,需求阐发阐明书的规模也可以用系统功能点,特性点和工具点等来度量,但也有用需求阐明书文档的大年夜小和页数来度量的。同样,设计阐明书,测试用例等都可以用系统的功能点,特性点和工具点来度量,也可以用文档的大年夜小和页数来衡量。只是各类度量措施之间要有一个很好的可兑换性。换句话,从理论上讲,需求阐发阐明书上的规模和终极提交给客户的软件系统的规模是同等的。但BUG数、事情量和资源的预计就不一样, 软件系统的BUG数、所需的事情量和资源,不是需求阐发阐明书、设计阐明书、源代码等工具的预计值 ,而是需求阐发阐明书、设计阐明书、源代码等工具的BUG数、事情量和资源的预计总和。

什么时刻进行软件项目的预计?什么时刻对预计的监视和跟踪?一样平常觉得,软件项目预计只是在项目启动前的事情,着实不是这样,在全部软件开拓和掩护都有预计活动。如图1所示。当然,详细预计光阴跟着预计的措施和预计的工具不合会有差别。由于不合的度量措施要求具备的软件项目资料准确度不一样。

我们觉得软件规模预计和软件规模度量不合,软件规模预计是在软件事情产品没有完成之间对软件工程产品的预计,而度量活动应在软件事情产品完成之后。当然,大年夜部分软件度量措施也可以用来进行软件规模预计。同时,软件规模预计和软件规模度量一样可以在软件生命周期的每一个阶段进行。作为预计活动,软件规模预计也应该有计划和跟踪历程。

图1 软件项目预计光阴示意图

图例阐明:

1=初步预计

2=可托赖的预计(它是软件项目治理如计划的根基)

3...7=预计新工具和对曩昔预计的跟踪

7=以文档的要领总结曩昔的预计

8=掩护期的预计,如对客户新需求的预计

在软件企业,分外是我国的软件企业,预计职员每每迫于引导要求尽快预计的压力,草率地完成预计,导致差错的预计,影响项目的开拓。事实上,预计职员应根据预计工具的详细环境,拟订不合的预计计划,计划内容可以包括预计的工具阐明,预计职员的角色和职责,预计的措施和预计,预计的风险识别,预计的事情量预计,预计活动进度安排(如网络预计的所需的信息安排,包括软件需求,历史数据等,进行预计,预计结果确定等)。大年夜的预计活动还必要取得介入预计职员对预计计划的允诺,交给机构高档治理者审阅后履行预计活动,确保预计活动顺利进行。

软件项目应在周例会或里程碑会议跟踪项目预计环境。并跟着软件开拓活动赓续深入,在软件开拓后阶段要对前一阶段的预计进行跟踪修正。跟着软件开拓赓续进行,开拓职员或预计职员对软件项目的详细细节越来越清楚,做出的预计结果也应该越来越正确(当然,软件预计结果首先要求是准确的,而后才追求正确)。

机构应网络这些预计数据(如图1中?所列活动),包括预计活动本身的数据如预计事情量和预计结果,为今后预计活动供给指示。

可以这样理解,软件项目预计是指以准确的查询造访资料和项目信息(如职员和设备信息)为依据,从预计工具的历史、现状和及其规律性启程,运用科学的措施,对预计工具的规模,所需事情量和资源进行的测定。那些临时凭小我履历一时凭灵感或感到对软件项目规模和事情量的预计不是真正软件项目预计。软件项目预计是项目决策科学化的对象,是项目组体例计划、预见计划履行环境、加强计划指示的定量依据,也是企业改良经营治理的有效手段之一。同时,软件项目预计在软件贸易估价活动中起到紧张的感化。

2 软件项目预计成长现状

今朝,国际上已有许多软件规模预计措施,如功能点(Function Point )、特性点(Feature Point)、工具点(Object Point)、德尔菲(Delphi)、隐隐逻辑(Fuzzy Logic)、标准构件法(Standard Component )等,这些措施跟着各国钻研者的赓续钻研细化又有许多详细的措施,如国际功能点用户协会(IFPUG The International Function Point Users' Group)提出的IFPUG措施、英国软件度量协会(UKSMA United Kingdom Software Metrics Association )提出的Mk II FPA措施、荷兰功能点用户协会(NEFPUG Netherlands Function Point Users Group)提出的NESMA 措施以及软件度量合营协会(COSMIC the COmmon Software Metrics Consortium)提出的COSMIC-FFP措施,这些措施都属于Albrecht 功能点(Function Point )措施的成长和细化。

今朝大年夜部分软件预计措施有对象支持(如表1所示)。国际上今朝已经有一些组织接受和积累天下各地软件企业的软件预计和度量数据,建立了被广泛应用的历史数据库,如在功能规模度量领域,有一个ISBSG(国际软件基准组织International Software Benchmarking Standards Group)数据库。别的,COCOMO II Estimating Model也有富厚的预计和度量数据供给。

表1 部分软件度量措施及其支持对象

措施

支持的对象

数据点(Data Points

PCCALC, SoftCalc

工具点(Object Points)

SoftCalc

特性点(Feature Points)

Checkpoint/KnowledgePlan

IFPUG

Checkpoint/KnowledgePlan,

PCCALC, ISBSG-Venturi,

Function Points Workbench

Mark II FPA

MK II Function Points Analyzer

FFPv1

HierarchyMaster FFP, FPCAnalyzer

FFPv2

HierarchyMaster FFP (supportfor FFPv2 in development)

有些软件规模预计措施被国际标准化组织(ISO)纳入国际标准。如上面提到的IFPUG、Mk II FPA、NESMA和COSMIC-FFP措施。此中COSMIC-FFP是今年被国际标准化组织(ISO)正式赞许纳入国际标准的,其标准号是ISO/IEC 19761:2003。软件度量合营协会COSMIC(the COmmon Software Metrics Consortium)是由澳大年夜利亚、加拿大年夜、芬兰、爱尔兰、意大年夜利、日本、荷兰和英国的软件度量专家于1998岁尾志愿组成的,它的引导人是Alain Abran和Charles Symons。根据这些标准,国际上已有部分软件产品价格预计公司,专门从事软件价格的预计,软件规模的预计是他们事情的根基。但跟着面向工具、组件重用以及极限编程等新的软件开拓措施呈现,赓续有学者提出新的软件规模措施,如如构件点(Construction Points)、猜测性工具点(Predictive Object Points)。软件规模预计已成为了软件工程钻研领域的一个紧张偏向。

今朝,我国从事软件规模预计措施钻研的职员较少,田俊国等人曾在软件工程网的先容德尔菲(Delphi)和功能点(Function Point )法。中南大年夜学的李建华、费耀平等人参考德尔菲(Delphi)法,提出了一种叫两两对照(Paired-comparisons)的预计措施。 北京谋略机利用和仿真技巧钻研所汤铭端、吴际等人在《软件学报》上颁发一种?quot;扩展功能点(EFP)"的软件规模预计措施,我国有部分职员研制了工具点度量措施的支持对象,如合肥大年夜学的Li Xinke等人曾开拓过一种用于面向工具软件度量的对象。

如上所叙,软件规模预计包括对许多不合的软件事情产品的预计,如"需求文档"、"设计文档"、"源代码"、"测试用例"等。跟着预计工具不合,度量规模的单位也不合,就软件规模来说,衡量规模的单位有代码行、功能点个数、匀称承袭深度等。代码行LOC常用于源代码的规模预计,常应用的单位有SLOC( Single Line of Code)、KLOC(Thousand Lines of Code)、LLOC(Logical Line of Code)、PLOC(Physical Line of Code)、(N)CLOC ( (Non) Commented Line of Code)、DSI(Delivered Source Instruction)。功能点可以用于"需求文档"、"设计文档"、"源代码"、"测试用例"度量,根据详细措施和编程说话的不合,功能点可以转换为代码行。匀称承袭深度(Depth in Inheritance Tree)是工具点(Object Point)中一个度量措施。今朝,国际上有部分学者(如德国的马歌德保大年夜学的Mathias Lother等人)正在钻研各类度量措施和单位之间的兑换性,并呼吁从事软件度量和预计工程和钻研职员,在提出一种新的度量措施时刻必然要斟酌和其他措施之间的可兑换性。

西方国家和印度的企业实际利用软件项目度量和预计较多,有些企业还针对自己的行业特征开拓适用于自己的软件项目预计对象如波音公司开拓一种叫3-D功能点预计措施,3-D功能点识别了反应利用法度榜样难题的3维(数据,功能,节制)。数据难题多是MIS/商业软件的范例,而科学/工程软件是功能难题多,实时软件是节制难题多。而波音软件恰是集这三个方面于一身,以是,3-D功能点得当于波音软件的度量和预计。

我国大年夜陆有部分企业也正在进行科学的软件规模预计和度量,但数量不多。Wu Simon在一次案例钻研中查询造访过500家喷鼻港商业公司,发明进行过真正意义上的软件项目预计的企业有79%,还有21%的企业没有进行过科学的软件项目预计。

3 软件项目预计的基础准则

在软件项目预计活动历程中,一些软件从业职员每每会说,"软件项目预计有什么用,我们预计的时刻可能有456个功能点,可到交付的时刻却有600多个,根本就牛头纰谬马嘴"。是的,利用一些软件度量措施进行软件项目预计每每会给出一个正确的结果,如IFPUG功能点等,然则,我们觉得,软件项目预计首先要求结果是准确的,也便是精确的,而后再进一步要求正确的。差错的预计将影响项目治理职员决策,影响项目的开拓。恰是由于这样,有些软件项目预计措施不给出正确的结果,如有些隐隐逻辑法,而是给一个范围,如前面的例子,假如预计的时刻说规模400~700个功能点,虽然和456个功能点比不敷正确,然则准确的。

这并不是说软件项目预计便是主不雅想象,弗成捉摸。在实际预计历程中可以借鉴一些实用的履历不雅点或者说行径准则来赞助削减预计的差错。如:

◇ 预计光阴越早,差错越大年夜

◇ 任何一个预计都比没有预计好

◇ 预计文档化做得越好,得到预计履历的时机越大年夜

◇ 用于预计的资料数据越多,预计的结果越好

◇ 有关预计的工具的信息越准确,预计就越可能准确

◇ 预计的工具最好是对照小且事情单元是自力的

◇ 在预计历程中,大年夜部分通讯身分每每会被轻忽

◇ 虽然有各类预计措施和公式,没有1:1的转换公式

◇ 量力而行的预计职员越多,预计的结果越客不雅

◇ 预计的目的是用来做决策,而是预计完了就完了。

一个有效的软件项目预计应满意以下特征或要求

● 软件项目预计结果要能再现

如上所说,具有越多的项目准确信息,预计的结果越准确。这并不是说后面的预计可以和前面的预计完全不合,两者风马牛不相及。有效预计是这样,后面进行的预计在相同前提下,即拥有项目资料的相等的环境,不合的预计职员利用相同的预计措施,两者的结果是一样的。这便是项目预计结果的可再现性。当然,跟着项目赓续深入,预计职员应该会得到更多,更具体的项目资料,那么预计的结果应该也加倍准确和正确。这种对预计历程进行对照可以为今后的预计积累更多的履历。事实上,对预计活动继续的跟踪可以建立一种机制,这种机制可以清楚的显示项目需求等变化环境。(有人在继续进行软件项目预计的企业做过查询造访,他们发明,在项目的历程中,一样平常每月会有1~3%需求伸展)

● 利用了多种预计措施

采纳多种预计措施可以从不合的角度对照预计结果,削减预计的差错和包管安然

● 预计结果要颠末事实求实地推敲和质疑

● 预计历程是可治理和节制的

● 预计历程是文档化

4 软件项目预计措施

大年夜部分预计措檀越如果供给一个对预计工具的规模的度量,在此根基上,可以算出相关的事情量和资源。假如是对全部项目进行预计,获得的总体的资源可以根据一个百分比分配到软件开拓的每一个阶段。现在有许多不合的闻名预计措施。Wide-band Delphi着实是预计历程领导,隐隐逻辑法的目的是借助隐隐逻辑理论,拟定量谋略预计项目和参考项目的相似度,从而根据历史项目(参考项目)的历史数据谋略预计项目的规模,这要求机构有历史数据并且网络的历史数据是有效的。代码行、功能点和工具点等措施是根据软件项目(或产品)的特性提出的软件预计措施。从文献来看,功能点措施是一种今朝最受推戴的措施,Cocomo模型也广泛地被应用。在道理上,功能点措施和Cocomo模型都是基于客户需求或软件规模预计事情量。

代码行的毛病是要等到项目的着末阶段才能获得,而且编码一样平常只占10%阁下系统开拓事情量。如前文所叙,功能点措施的上风可以从今朝有许多不合的功能点措施这个方面表现出来。 功能点措施的毛病是在项目的早期阶段如需求阐发阶段得不到项目足够的准确信息,可能预计的结果不过准确和足够正确。但无论若何,不斟酌今朝提出的一些新的预计措施如构件点(Construction Points)、猜测性工具点(Predictive Object Points)等未来的成长,功能点措施是今朝最受迎接和广泛应用的措施,今朝被国际标准化组织纳入国际标准的措施都是功能点措施。

自从1979年IBM的Albrecht提出第一个在世界范围内有影响的功能点措施以来,许多针对原著厘革、扩展的可供选择的措施被提出来。图2以光阴顺序显示了包括那些鄙人面要具体描述的措施的蜕变紧张阶段。措施之间的箭头表示各个扩展版本的互相影响。图中显示近来的措施是COSMIC周全功能点。功能阐发措施度量历程是对软件功能和规模的间接定量度量,它基于客不雅的外部利用接口和主不雅的内部利用繁杂度以及总体的机能特性,它包括三个逻辑部分组成:未调剂的功能点、加权因子和功能点:

功能大年夜小(the functional size),经由过程度量每一个自力的功能进行谋略。这是指未调剂的功能点(UFP unadusted function points)的度量历程。这个方面又包括数据流功能类型度量和事物功能类型度量,包括对外部输入、外部输出、外部查询、内部逻辑文件和外部接口文件的计数。

图2功能点措施成长过程

加权因子值(VAF the value adjustment factor),它经由过程规则中定义好了一样平常系统特性( GSC general systems characteristics )针对软件的总体情况和处置惩罚历程的繁杂度谋略确定。包括划定系统、输入和输出、利用繁杂度的级别。

图3是功能点预计模型。功能点阐发措施的结果是指调剂过的功能点,它是用加权因子值值对未调剂的功能点(UFP unadusted function points)调剂的结果。

图3 功能点预计模型

今朝FPA措檀越如果指IFPUG措施,它被许多机构广泛应用。但它有许多缺陷,此中之一便是他很难适用于MIS以外的软件。1996年,加拿大年夜人Alain Abran等人提出了周全功能点措施(Full Function Points),它扩展IFPUG措施,可以用于实时和嵌入式软件。成立于1998年,以Alain Abran和Charles Symons(Mk II FPA 提出人)为首的软件度量合营协会COSMIC集中了八个国家40多位的软件度量专家,综合斟酌了IFPUG,MarkII,NESMA和FFP1.O版的优毛病,经由过程了大年夜量项目实践,于1999年11宣布了COSMIC-FFP2.0版。着实,在探索系统和实时软件规模的蹊径上,在周全功能点措施之前还有"Bang 度量"、"3-D功能点" 、"特性点"等措施被提出。

DeMarco's的咨询活动经常使得他面临比MIS系统加倍繁杂的软件系统。1982他提出了Bang度量措施来度量系统和科学软件的规模[17]。然则因为措施太繁琐并且没有对象支持,今朝这种措施险些没有人应用。

3-D功能点是波音谋略机办事公司1991年开拓的一种覆盖系统软件(包括科学和实时领域)的度量措施。3-D功能点识别了反应利用法度榜样难题的3维(数据,功能,节制)。数据难题多是MIS/商业软件的范例,而科学/工程软件是功能难题多,实时软件是节制难题多[18]。 但今朝该措施除了波音公司应用外,没有其他企业应用。

1998美国Artemis国际咨询公司控股的软件临盆力钻研有限责任公司(Software Productivity Research, Inc)开拓了基于功能点一种实践模型~特性点规模预计模型。特性点是IFPUG功能点4.0版的扩展,它加入一个运算轨则的参数。据SPR先容特性点规模预计措施加倍得当于系统和实时软件的度量,但也能用于MIS系统。对付MIS利用法度榜样,特性点和IFPUG功能点的度量结果险些一样。但没有充分的数据显示它能够稳定地进行应用,它具有很好的可再现性和可重复性。今朝SPR也竣事了该措施的支持。

功能点预计措施有很多,它的优点是它已经作为一种广泛应用的措施被吸收,今朝正式软件规模度量的主流措施;经由过程ISO组织有四种措施成为了国际标准,他们是

◇ 周全功能点版本2.1(Full Function Points version 2.1),

◇ IFPUG 功能点(IFPUG Function Points),

◇ Mark II功能点( Mark II Function Points),

◇ NESMA 功能点;

但功能点预计措施也有许多必要降服的问题。Kemerer 引用了Pressmann不雅点[13]:"功能点预计,像 LOC,也有相关的争议…否决者说道,这种措施不是完全客不雅和寄托数据,而是更多地必要一些基于主不雅的谋略手段…";Capers Jones 发明,FP谋略措施的变量结果可以在跨越+/- 50%范围内变更。还有G. Low 和D.R. Jeffery 也颁发过声明,"在组织内,功能点谋略变更的范围大年夜约匀称在30%之内…"。由此可见,可再现性和客不雅性是功能规模度量措施的核心问题。此外,点度量措施作为一种传统的度量措施,若何办理新技巧所带来的问题也是钻研者们必须思虑的问题,如面向工具系统的规模度量,组件重用带来的实际开拓功能规模和交付给客户的功能规模不合的问题等等。这便是我们为什么说今朝有许多软件项目预计的公式,但还没有一个1:1的转换公式。

5 停止语

软件项目预计是指以准确的查询造访资料和项目信息(如职员和设备信息)为依据,从预计工具的历史、现状和及其规律性启程,运用科学的措施,对预计工具的规模,所需事情量和资源进行的测定。它是企业项目治理的有效手段之一,也是软件贸易活动中价格预计的紧张手段。今朝国际上有许多软件项目预计的措施和对象,有的已经成为国际标准。软件项目预计应该是可重复和再现的,这是软件项目预计准确与否可以实践的反省标准。

今朝国内外已经有许多软件项目预计措施,有的措施已经被国际标准化组织纳入国际标准。 软件项目预计将是软件开拓历程中一个紧张历程,一个具有异常意义的工程活动。

您可能还会对下面的文章感兴趣: