Primavera功能点方法与软件研发项目规模成本估算
- 格式:docx
- 大小:164.99 KB
- 文档页数:10
Primavera功能点方法与软件研发项目规模成本估算与软件研发项目规模成本估算上海普华科技进展胡晓俊Primavera系统中的功能点估算方法概述➢功能点估算的概念功能点估确实是一种基于软件需求特性对软件项目的规模进行估测的方法。
1979年IBM公司的Alan Albrech第一开发了运算功能点的方法,这种方法是通过评估和计量软件产品所需的内部差不多功能和外部差不多功能数目,再依照技术复杂度因子(权重)对这些软件功能计数进行量化,得到软件研发项目规模的最终结果。
同时那个结果与软件的成本估算有着紧密的关系。
另外功能点这种估算方法与实现产品所使用的编程语言和技术没有关系,能够用于各种软件开发项目的规模估算中,目前功能点的估算方法差不多被广泛的认可在信息系统、数据库密集型、4GL应用系统开发的规模测量中。
功能点的估算有两个目的:第一是作为软件规模的测量、对比和分析(如软件度量方法)的基础;第二,也是更重要的目标,是作为软件成本估量模型的输入,软件的成本估量则是基于功能点和工作量之间的体会成本估量关系(CER)进行的。
Primavera系统是一个应用于多行业的企业级项目治理的综合平台,要紧应用于企业的多项目时刻进度的治理、资源角色治理、费用成本治理、沟通治理、综合治理等项目治理领域。
功能点估算的功能能够在Primavera系统Project Management组件中的一个自上而下估算的工具中实现。
那个工具只是整个Primavera系统中的一小部分,但它将自上而下估算的方法和功能点估算的方法演绎成可实际操作应用的步骤,➢功能点估算的过程功能点的估算能够划分为三个步骤:统计未调整的功能点计数(UFP)、统计总阻碍度(TDI)和运算最终调整功能点计数(FP)。
其中最终调整功能点计数确实是我们功能点估算的最终结果。
它是用来度量软件产品功能的标准单位,并可作为软件研发项目规模成本估算的基础。
功能点的运算公式为:FP = UFC×TCF,TCF称为技术复杂度因子,是由总阻碍度TDI运算出来的:TCF = 0.65 + 0.01×TDI。
例如,针对上面所述的软件项目a,如果已估算出该项目的软件规模是33.3kloc,而且该项目属于半独立型,即cocomo模型中的参数a、b、c、d的取值分别是3.0、1.12、2.5、0.35,那么根据模型公式e=a*(kloc)b可以估算出该项目的工作量是3.0*(33.3)1.12,即152人月;然后根据公式d= c*ed可以估算出该项目的开发时间是2.5*(152)0.35,即14.5月。
2.其它估算方法其它估算方法包括:专家估算、类比估算等等。
专家估算方法是由一组专家来对软件项目所需的成本、工作量和进度等进行估算。
一般地,这些专家具有应用领域或者开发环境方面的知识、参与了以往类似软件项目的开发。
为了避免专家估算的片面性,专家估算方法一般要求每位专家给出估算的最小值a、可能值m和最大值b,然后计算出每位专家估算的平均值esti=(a+4m+b)/6,最后根据各位专家的估算情况计算出最终的估算值est=(est1+est2+est3+……+estn)/n。
如果软件开发组织或者项目组拥有一批经验丰富的专家,可以考虑采用该方法。
专家估算方法具有人为因素多、主观因素大的特点,一般应用于软件开发的初期阶段,此时软件项目组往往难以获得估算软件项目所需的各种数据和信息。
类比估算方法是指估算人员根据以往类似软件项目实施所积累下来的数据,通过分析待开发软件项目和以往软件项目二者之间的相似性,估算出软件项目的开发工作量、成本和进度等。
使用该方法的前提是:待估算的软件项目和以往的软件项目必须具有一定的相似性(如它们均属于同样的应用领域),并且拥有以往类似软件项目的开发数据(如工作量、周期、参与的人数、规模和成本等)。
软件估算发生在事前,因而估算的结果与实际的结果有所偏差是不可避免的。
但是,如果估算的偏差过大,那么估算的结果将会对软件项目的实施和管理产生消极的影响,甚至可能导致软件项目的失败。
因此,在对软件项目的规模、成本和工作量等进行估算的过程中,要避免低劣的估算,尽可能地获得合理和准确的估算数据。
软件项目成本估算方法
软件项目成本估算是软件开发过程中至关重要的一环。
一方面,正确的成本估算能够帮助项目经理和开发团队掌握项目进度和资源
分配,从而提高项目的成功率和效率;另一方面,错误的成本估算可能会导致项目的失败,浪费公司资源,甚至对公司造成不可挽回的损失。
在软件项目成本估算中,常用的方法包括基于历史数据的经验式估算、功能点估算和卡内基梅隆大学的软件工程学研究所提出的COCOMO模型。
经验式估算是一种基于历史数据的方法,通常使用Excel表格或其他工具来计算估算值。
该方法的优点是简单易用,适用于小型项目和简单的软件开发任务。
但是,该方法存在精度不高、不适用于复杂项目等缺点。
功能点估算是一种根据软件功能量和功能复杂性来计算成本的
方法。
该方法的优点是能够比较准确地估算软件成本,适用于大型和复杂的软件开发项目。
但是,该方法需要有经验的软件开发人员进行估算,对项目经理和开发团队的专业素质要求比较高。
COCOMO模型是一种基于软件项目规模、复杂度和开发环境等因素来计算成本的方法。
该模型可以根据软件项目的不同特点进行定制化,具有较高的精度和适用性。
但是,该模型需要较高的技术支持和专业知识,对于初学者来说比较复杂。
综上所述,软件项目成本估算方法需要根据项目的规模、复杂度、
开发环境和人员素质等因素进行选择和调整,以达到最佳的成本估算效果。
同时,项目经理和开发团队需要定期评估和更新成本估算,以保证项目进度和资源分配的正确性和合理性。
软件系统开发成本估算法功能点估算含例子目录一、功能点估算法概念 (1)二、功能点估算法的特点 (1)三、功能点分析的步骤(含例子) (2)3.1 识别项目的类型 (3)3.2 识别项目的范围和边界 (3)3.3 按不同功能点计算 (4)3.3.1功能点估算分类 (4)3.3.2识别功能点的重要原则 (5)3.3.3内部逻辑文件与外部接口文件 (5)3.3.4事务类型功能点的计算规则 (11)3.3.5计算调整因子 (18)3.3.6计算调整后的功能点个数 (32)3.4 总结 (41)一、功能点估算法概念功能点估算法是软件项目管理众多方法中比较有技术含量的一个,也是最实用的一个。
在软件项目管理中项目计划制定的优劣、合理直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。
如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。
二、功能点估算法的特点项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。
对软件项目范围的估算有很多种方法,常见的是LOC代码行和FP功能点法。
它们之间的区别和关系如下:∙功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高。
假如这个时候使用LOC代码行估算法,则误差会比较大。
∙使用功能点估算法无需懂得软件使用何种开发技术。
LOC代码行估算法则与软件开发技术密切相关。
∙功能点估算法是以用户为角度进行估算,LOC代码行估算法则是以技术为角度进行估算。
∙通过一些行业标准或企业自身度量的分析,功能点估算法是可以转换为LOC代码行的。
在项目刚开始的时候进行功能点估算可以对项目的范围进行预测。
在项目开发的过程中由于需求的变更和细化可能会导致项目范围的蔓延,计算出来的结果会与当初估计的不同。
因此,在项目结束时还需要对项目的范围情况重新进行估算,这个时候估算的结果才能最准确反映项目的规模。
软件项目成本估算方法
软件项目成本估算是软件开发过程中的重要环节,它能够帮助项目管理者合理地安排资源和时间,从而提高开发效率。
在实际应用中,有多种软件项目成本估算方法可供选择,如基于经验公式的估算方法、基于功能点的估算方法、基于工作量的估算方法等。
其中,基于经验公式的估算方法是最为简单和常用的方法之一。
该方法利用历史数据和专家经验,通过一些数学公式对项目的成本进行估算。
这种方法的优点是快速、简单,能够在项目初期就得到一个大致的成本估算结果。
但是,它的缺点也很明显,由于完全依赖历史数据和专家经验,因此其估算结果的准确性和可靠性都受到一定的限制。
另外,基于功能点的估算方法是一种比较科学和精确的估算方法。
该方法通过对软件功能点数量的估算,再结合一些经验系数,得到项目的总成本。
这种方法的优点是准确、可靠,能够较为精确地估算项目的成本。
但是,由于需要对项目的功能点进行详细分析和估算,因此相对来说比较繁琐和复杂。
最后,基于工作量的估算方法是一种折中的估算方法。
该方法通过对项目的工作量进行估算,再结合一些经验系数,得到项目的总成本。
这种方法的优点是比较简单、易于掌握,同时也能够相对准确地估算项目的成本。
但是,由于它仍然需要对项目的工作量进行详细估算,因此相对来说也比较耗时和繁琐。
总之,不同的软件项目成本估算方法各有优劣,需要根据实际情
况选择合适的方法进行估算。
在估算过程中,应该尽可能地利用历史数据和专家经验,同时也需要对项目的具体情况进行仔细分析和估算,以确保估算结果的准确性和可靠性。
针对软件开发项目的成本估算方法论在软件开发项目中,成本估算是非常重要的一个环节。
它可以帮助开发人员尽可能地控制开发成本,同时也可以帮助客户更好地理解开发团队所需要的资源和时间。
在本文中,我们将探讨针对软件开发项目的成本估算方法论。
一、了解项目需求和范围在进行成本估算之前,我们首先需要对项目的需求和范围有一个全面深入的了解。
只有在清晰明确的项目需求和范围基础上,才能够更准确地估算项目的成本。
在这一阶段,可以根据项目的愿景和目标来进行分析和解决,可以应用产品经理的思维方式,找出用户的问题和需求,常常需要对应的工具进行需求管理,比如Jira等。
这一阶段也需要与客户或利益相关者交流,以确保他们对项目的期望和目标有清晰的认识。
二、确定开发方法和技术针对软件开发项目,不同的开发方法和技术会对开发成本产生显著的影响。
因此,在进行成本估算之前,需要确定项目所采用的具体技术和开发方法。
比如,在Web前端,可以用Angular、React、Vue等框架来提高开发效率和降低开发成本,而在后端处理方面,可以使用Spring Boot、Django等来提高开发效率。
三、理解开发人员的能力和经验开发人员的能力和经验也会对成本估算产生影响。
对各种技能水平的综合考虑,包括代码编写能力、工具使用能力、解决问题的能力、协作的能力等。
如果开发团队中有一些有经验的开发人员,他们通常会更快地解决问题和交付工作。
在成本估算过程中,需要对每个开发人员的技能和经验进行评估。
四、估算项目时间在进行成本估算时,需要对项目完成的时间进行评估。
这意味着需要考虑每个模块的开发时间、测试时间和交付时间,以及整个项目的实现时间。
根据项目的规模和复杂度,可以使用不同的方法来估算项目的时间。
比如,在使用敏捷开发方法的情况下,可以使用短时间的迭代周期来估算项目时间。
在使用瀑布式开发方法的情况下,可以使用详细的工作计划和时间表来估算项目的时间。
五、考虑额外开销在进行成本估算时,还需要考虑到项目中可能出现的额外开销,比如工具和设备的购置费用、上线费用、维护费用等。
浅谈Primavera 6.1在工程项目管理中的应用本文浅谈Primavera 6.1在工程项目管理中的应用,主要分为以下五个章节:第一章:绪论1.1 研究背景1.2 研究意义1.3 研究目的1.4 研究内容1.5 研究方法第二章:Primavera 6.1的基本概念及特点2.1 Primavera 6.1的概述2.2 Primavera 6.1的技术特点2.3 Primavera 6.1的功能模块第三章:Primavera 6.1在工程项目计划管理中的应用3.1 工程项目计划管理的基本要素3.2 Primavera 6.1在工程项目计划管理中的应用方法3.3 基于Primavera 6.1的工程项目计划管理实战案例分析第四章:Primavera 6.1在工程项目进度控制中的应用4.1 工程项目进度控制的基本原理4.2 Primavera 6.1在工程项目进度控制中的应用方法4.3 基于Primavera 6.1的工程项目进度控制实战案例分析第五章:Primavera 6.1在工程项目成本管理中的应用5.1 工程项目成本管理的基本原则5.2 Primavera6.1在工程项目成本管理中的应用方法5.3 基于Primavera6.1的工程项目成本管理实战案例分析第六章:结论6.1 构建Primavera 6.1在工程项目管理中的应用框架6.2 总结Primavera 6.1在工程项目管理中的应用优势和局限性6.3 展望Primavera在未来工程项目管理中的发展前景。
第一章:绪论1.1 研究背景工程项目管理是现代经济活动中的重要组成部分,而有效的项目管理往往可以提高工程项目的质量和效益。
在工程项目管理中,计划、进度和成本三个方面是需要重点关注和管理的。
然而,在工程项目中,计划调整、进度把控和成本控制难度较大,如果使用传统的手动计算和绘制方法进行管理,往往会出现信息不全面、准确性差和时效性不足等问题,导致工程项目管理的效果不佳。
(1)确认并分析项目的特征。
项目组应与用户共同确认项目的各项需求,这是项目工作的出发点,也是开展项目策划的初始条件。
(2)选择项目将遵循的生存期模型,确定各阶段的任务。
(3)确定应得到的阶段性工作产品以及最终的产品。
(4)开展项目估算,包括估算产品规模、工作量、成本以及所需的关键计算机资源。
(5)制订项目进度计划。
(6)对项目风险进行分析。
(7)制订项目计划。
项目估算和风险分析都是项目策划的重要内容,缺少了这两项工作制订出的计划必定是盲目的,也是脱离实际情况的。
在项目估算中,要解决的问题是项目实施的几个主要属性,即将要开发产品的规模(size)、项目所需的工作量(effort)以及项目的成本(cost)。
我们知道,在项目开始时要想十分准确地给出上述3个项目属性的准确数值是不可能的,但为了做好计划就必须设法尽可能地得到近似的数据,在此对这3个量给出粗略的解释。
(1)规模。
项目的规模指的是得到最终软件产品的大小。
一般以编程阶段完成以后得到程序的代码行表示,如以1千代码行为单位,记为KLOC。
当然,在项目开始,还没有得到程序,其程序可能的长度只是估计。
近年来常用的另一表示方法是功能点,记为FP,它是根据软件需求中的功能估算的。
(2)工作量。
项目的工作量按项目将要投入的人工来考虑,以一个人工作一个月为单位,记为“人月”。
(3)成本。
软件项目的成本通常只考虑投入的人工成本,如某项目投入的总人工费用为12万元。
一个软件组织在完成多个项目以后积累了一些数据,进行成本分析后便可得到自己的生产率数值和人工价格。
●生产率是平均每个人月完成的源程序行数,可记为KLOC/人月或FP/人月。
●人工价则为每人月的价值。
有了这两个数值,如果在估出项目规模以后就可以很容易得到项目的工作量和成本,即工作量=规模/生产率成本=工作量×人工价13.2.2 软件规模估算的功能点方法功能点方法(function point)简称FP方法,该方法克服了项目开始时无法得知源程序行数的实际困难,从软件产品的功能度(functionality)出发估算出软件产品的规模。
如何科学估算软件研发计划的资源需求和成本在如今竞争激烈的软件开发行业,科学估算研发计划所需资源和成本是至关重要的。
只有通过准确的预算规划和资源管理,才能保证项目的顺利进行并取得成功。
本文将探讨如何科学地估算软件研发计划的资源需求和成本,从而帮助项目团队更好地筹备和执行项目。
首先,对软件研发计划进行充分的需求分析是非常关键的。
在制定预算和资源计划前,必须清楚了解项目的具体需求和目标。
这包括确定项目的功能特性、技术要求、时间表等方面。
只有明确了项目需求,才能更好地评估所需资源并进行成本估算。
其次,要合理评估项目所需的各类资源。
资源包括人力资源、物质资源、技术资源等。
在人力资源方面,需要考虑到项目开发团队的规模和结构,确定需要招聘的人员数量和技能要求。
在物质资源方面,需要预估所需的软件和硬件设备、开发工具等成本。
同时,还需考虑到潜在的风险因素,如市场变化、技术更新等,以及相应的备用计划。
在资源评估的过程中,不能忽视成本管理。
成本是项目成功的重要因素之一,必须通过科学的方式进行估算和控制。
在制定成本预算时,需要考虑到项目阶段、人员工资、设备购置、外包服务等各个方面。
同时,还需制定相应的监控机制,定期评估和调整成本计划,确保项目能够按照计划顺利进行。
另外,要注重团队管理和沟通。
项目的成功不仅仅取决于资源和成本的准确估算,团队的协作和沟通也是至关重要的。
项目经理需要做好团队管理,促进团队之间的合作和协调,确保项目各阶段的顺利进行。
同时,要建立有效的沟通机制,及时反馈项目进展和问题,做出相应的调整和决策。
最后,要不断总结和优化经验。
在软件研发计划的执行过程中,必然会遇到各种挑战和困难。
项目团队需要保持开放的思维,接受并学习新的经验和教训。
通过总结项目经验,发现问题并改进工作流程,不断提高团队的执行效率和项目的成功率。
综上所述,科学估算软件研发计划的资源需求和成本是实现项目成功的关键之一。
通过充分的需求分析、资源评估、成本管理、团队管理和优化经验等方面的努力,可以帮助项目团队更好地规划和执行项目,取得成功。
实⽤的软件系统开发成本估算法软件成本管理含例⼦软件系统开发成本估算法功能点估算含例⼦⽬录功能点估算法概念功能点估算法是软件项⽬管理众多⽅法中⽐较有技术含量的⼀个,也是最实⽤的⼀个。
在软件项⽬管理中项⽬计划制定的优劣、合理直接关系到项⽬的成败,项⽬计划中对项⽬范围的估算⼜尤为重要。
如果项⽬负责⼈对项⽬的规模没有⼀个⽐较客观的认识,没有对⼯作量、所需资源、完⼯时间等因素进⾏估算,那么项⽬计划也就没有存在的意义。
功能点估算法的特点项⽬范围的估算在CMMI的“MA”度量分析管理和“PP”项⽬计划中均有涉及。
对软件项⽬范围的估算有很多种⽅法,常见的是LOC代码⾏和FP功能点法。
它们之间的区别和关系如下:功能点估算法常⽤在项⽬开始或项⽬需求基本明确时使⽤,这时进⾏估算其结果的准确性⽐较⾼。
假如这个时候使⽤LOC代码⾏估算法,则误差会⽐较⼤。
使⽤功能点估算法⽆需懂得软件使⽤何种开发技术。
LOC代码⾏估算法则与软件开发技术密切相关。
功能点估算法是以⽤户为⾓度进⾏估算,LOC代码⾏估算法则是以技术为⾓度进⾏估算。
通过⼀些⾏业标准或企业⾃⾝度量的分析,功能点估算法是可以转换为LOC代码⾏的。
在项⽬刚开始的时候进⾏功能点估算可以对项⽬的范围进⾏预测。
在项⽬开发的过程中由于需求的变更和细化可能会导致项⽬范围的蔓延,计算出来的结果会与当初估计的不同。
因此,在项⽬结束时还需要对项⽬的范围情况重新进⾏估算,这个时候估算的结果才能最准确反映项⽬的规模。
功能点分析的步骤(含例⼦)图1功能点估算法的步骤具体步骤包括:1.识别功能点的类型。
2.识别待估算应⽤程序的边界和范围。
3.计算数据类型功能点所提供的未调整的功能点数量。
4.计算⼈机交互功能所提供的未调整的功能点数量。
5.确定调整因⼦。
6.计算调整后的功能点数量。
识别项⽬的类型国际IFPUG组织将软件项⽬分为三类,功能点估算法适⽤于任何⼀类项⽬:新开发项⽬⼆次开发的项⽬功能增强的项⽬识别项⽬的范围和边界使⽤UML的“UseCase”⽤例图是以⽤户⾓度进⾏识别项⽬范围和边界的最好⽅法,在画⽤例图时就必须明确系统的边界。
制定软件项目预算成本步骤与方法制定软件项目预算成本是一项复杂且关键的任务,它需要对项目需求、工作量、资源、时间和成本等多个因素进行综合考虑和分析。
下面我将详细介绍制定软件项目预算成本的步骤和方法。
一、项目需求分析在制定软件项目预算成本之前,首先要对项目需求进行详细分析。
明确项目的目标、范围、功能需求、技术要求等,以确保对项目有清晰的认识和全面的了解。
这一阶段的任务还包括对项目需求的优先级进行排序,以便在后续开发过程中根据优先级进行资源分配和进度安排。
二、工作量估算工作量估算是制定软件项目预算成本的核心环节,主要是对完成项目所需的工作量进行估算。
工作量估算可以采用多种方法,如专家判断法、类比估算法、比例法等。
根据项目的实际情况和需求,可以选择适合的估算方法,或者结合多种方法进行估算。
在进行工作量估算时,需要考虑以下因素:1.项目规模:根据项目的规模和复杂度来估算工作量。
2.技术难度:考虑项目中涉及的技术难度和复杂度,以及开发人员的技术水平。
3.团队能力:考虑开发团队的技能、经验和能力,以及团队成员之间的协作效率。
4.历史数据:如果有类似项目的历史数据,可以参考历史数据进行工作量估算。
在工作量估算过程中,需要对各个功能模块的工作量进行详细估算,并在此基础上得出完成整个项目所需的总工作量。
三、资源分配在完成工作量估算后,需要制定资源分配计划。
资源包括人力资源、物资资源、时间等。
在资源分配过程中,需要根据工作量估算的结果,结合项目的实际需求和进度要求,对各项资源进行合理分配。
1.人力资源:根据工作量估算结果和开发团队的技能、经验等,确定需要哪些岗位和人员,并对其数量和质量进行评估和分配。
2.物资资源:根据项目需求和实际情况,确定需要哪些设备和物资,并对其数量和质量进行评估和分配。
3.时间:根据项目的实际需求和进度要求,对各项工作的时间进行合理安排,确保项目按时完成。
在资源分配过程中,还需要考虑资源的均衡和优化,以确保资源的合理利用和项目的顺利进行。
PrimaveraP6精品培训•PrimaveraP6软件概述•基础操作与界面介绍•项目计划编制与管理•资源管理与成本控制目录•协同工作与沟通协作平台搭建•高级功能应用与拓展CHAPTERPrimaveraP6软件概述软件背景及发展历程起源PrimaveraP6最初是为了满足大型工程项目的计划、进度和成本管理需求而开发的。
发展随着软件的不断升级和改进,PrimaveraP6逐渐增加了资源管理、风险管理、协同工作等功能,成为一款综合性的项目管理软件。
收购与整合Oracle公司收购Primavera后,将P6与Oracle的其他产品进行了整合,进一步提升了软件的性能和功能。
0102强大的计划管理功能全面的资源管理风险管理功能协同工作能力与Oracle产品无缝…030405功能特点与优势分析适用范围及行业应用适用范围行业应用CHAPTER基础操作与界面介绍安装配置步骤详解01020304安装前准备安装过程配置数据库启动与登录界面布局及主要功能模块主要功能模块界面布局系统提供项目管理、资源管理、进度计划、风险管理、报表与分析等核心功能。
导航与操作自定义界面优化性能快捷键设置个性化设置自定义设置与优化建议CHAPTER项目计划编制与管理创建新项目计划流程梳理明确项目目标和范围制定项目章程识别干系人制定项目管理计划任务分解、资源分配和时间安排技巧分享任务分解01资源分配02时间安排03进度监控、变更管理和风险应对策略探讨进度监控变更管理风险应对策略CHAPTER资源管理与成本控制资源分配方法深入讲解资源分配的原则和方法,如根据项目优先级、任务紧急程度、资源可用性等因素进行合理分配,以确保资源的有效利用和项目的顺利进行。
资源库建立详细介绍如何建立和维护一个全面、准确的资源库,包括人力资源、物资资源、设备资源等,以确保项目所需资源的及时供应和有效管理。
资源冲突解决探讨项目中可能出现的资源冲突问题,提供解决方案和应对策略,如资源平衡、资源优化等,以确保项目的顺利进行和资源的最大化利用。
软件研发项目成本估算方法在软件研发项目中,成本估算一直是一个关键的问题。
不管是企业内部开发团队,还是外包给软件开发公司,准确估算项目成本都是保障项目成功的重要一环。
然而,由于软件开发的复杂性和不确定性,成本估算往往会面临挑战。
下面将探讨一些常用的软件研发项目成本估算方法。
首先,成本估算的一个重要因素是项目的规模。
规模越大,所需的资源和成本也会相应增加。
因此,通常采用基于功能点的估算方法来评估软件开发项目的规模。
功能点是衡量软件功能复杂度的一种指标,根据功能点的数量,可以估算项目所需的工作量和成本。
这种方法虽然简单直接,但是需要在项目启动阶段对所有功能点进行详细的定义和评估,以确保估算的准确性。
另外,成本估算还会受到技术复杂度和开发人员经验的影响。
对于技术领先、创新性强的项目,往往需要更多的开发人员和资源,成本也会相应增加。
因此,在估算成本时,需要考虑项目的技术风险和技术难度,以确定项目的实际成本。
此外,项目的时间规划也是成本估算的重要考量因素。
软件研发项目通常会按阶段划分,每个阶段都有自己的时间要求和成本限制。
因此,在估算成本时,需要充分考虑项目的时间规划和进度控制,以避免项目延期和成本超支。
除了以上几种方法,还有一些更加精细的成本估算技术,比如基于模型的成本估算方法。
这种方法利用历史数据和统计模型来预测项目的成本,从而提高成本估算的准确性和可靠性。
然而,基于模型的成本估算方法也需要大量的数据支撑和训练,才能得到准确的成本预测结果。
综上所述,软件研发项目成本估算是一个复杂而关键的过程,需要考虑多个因素的影响。
通过合理的规划和准确的估算方法,可以降低项目的成本风险,保障项目的成功实施。
希望以上提到的软件研发项目成本估算方法能够为您在实际项目管理中提供一些参考和帮助。
P r i m a v e r a软件系统中的功能点方法与软件研发项目规模成本估算上海普华科技发展有限公司胡晓俊Primavera系统中的功能点估算方法概述➢功能点估算的概念功能点估算是一种基于软件需求特性对软件项目的规模进行估测的方法。
1979年IBM公司的Alan Albrech首先开发了计算功能点的方法,这种方法是通过评估和计量软件产品所需的内部基本功能和外部基本功能数目,再根据技术复杂度因子(权重)对这些软件功能计数进行量化,得到软件研发项目规模的最终结果。
并且这个结果与软件的成本估算有着密切的关系。
另外功能点这种估算方法与实现产品所使用的编程语言和技术没有关系,可以用于各种软件开发项目的规模估算中,目前功能点的估算方法已经被广泛的认可在信息系统、数据库密集型、4GL应用系统开发的规模测量中。
功能点的估算有两个目的:第一是作为软件规模的测量、对比和分析(如软件度量方法)的基础;第二,也是更重要的目标,是作为软件成本估计模型的输入,软件的成本估计则是基于功能点和工作量之间的经验成本估计关系(CER)进行的。
Primavera系统是一个应用于多行业的企业级项目管理的综合平台,主要应用于企业的多项目时间进度的管理、资源角色管理、费用成本管理、沟通管理、综合管理等项目管理领域。
功能点估算的功能可以在Primavera系统Project Management组件中的一个自上而下估算的工具中实现。
这个工具只是整个Primavera系统中的一小部分,但它将自上而下估算的方法和功能点估算的方法演绎成可实际操作应用的步骤,➢功能点估算的过程功能点的估算可以划分为三个步骤:统计未调整的功能点计数(UFP)、统计总影响度(TDI)和计算最终调整功能点计数(FP)。
其中最终调整功能点计数就是我们功能点估算的最终结果。
它是用来度量软件产品功能的标准单位,并可作为软件研发项目规模成本估算的基础。
功能点的计算公式为:FP = UFC ×TCF,TCF称为技术复杂度因子,是由总影响度TDI计算出来的:TCF = 0.65 + 0.01×TDI。
因此功能点的计算公式也可以表示为:FP = UFC×(0.65 + 0.01×TDI),如下图所示。
用于估算第一步的未调整功能点计数(UFP)的计算用于估算第二步的总影响度(TDI)的计算用于估算第三步最终功能点计数(FP)的计算过程示意图: 第一步:计算未调整的功能点计数(UFP )计算输入:✧ 内部逻辑文件(ILF )是最终用户可以进行维护和识别的逻辑相关数据组,这些数据通过外部输入维护并完全保存在应用程序的内部。
最低、平均和最高复杂度的权重分别为7、10和15。
✧ 外部接口文件(EIF )外部接口文件是仅用于引用目的的逻辑相关数据的用户可识别的组。
数据完全驻留在应用程序外部,由其它应用程序所维护。
外部接口文件是其它应用程序的内部逻辑文件。
最低、平均和最高复杂度的权重分别为5、7和10。
✧ 外部输入(EI )外部输入是数据由外向内跨越边界的基本处理过程。
数据可能来自于数据输入屏幕、电子输入或其它应用程序。
数据可以是控制信息或业务信息。
如果数据是业务信息,它用于维护一个或多个内部逻辑文件。
如果数据是控制信息,它不必更新内部逻辑文件。
最低、平均和最高复杂度的权重分别为3、4和6。
✧ 外部输出(EO )外部输出是导出的数据由内向外跨越边界的基本处理过程。
数据创建发送给其它应用的报表或输出文件。
这些报表和文件由一个或多个内部逻辑文件和外部接口文件所创建。
最低、平均和最高复杂度的权重分别为4、5和7。
✧ 外部查询(EQ )外部查询是包括输入和输出构件的基本处理过程。
输入和输出构件导致一个或多个内部逻辑文件和外部接口文件的数据检索。
该信息被发送出应用程序边界。
输入过程不会更新任何内部逻辑文件以及输出不包含导出的数据。
最低、平均和最高复杂度的权重分别为3、4和6。
计算输出:✧ 未调整的功能点计数(UFP )未调整的功能点计数是对各种复杂度的内部逻辑文件、外部接口文件、外部输入、外部输统计未调整功能点计数(UFP ) 统计总影响度(TDI) 计算最终调整功能点计数(FP ) 软件各种复杂度功能特性的计数 各种复杂度的权重因子 当前这种类型功能计数的加权总和所有类型功能计数的加权总和出和外部查询的加权合计。
第二步:计算总影响度因子(TDI)当前选中系统特征的每个系统特征的每个分值得具体含义的说明计算输入:总影响度因子是14个系统特征值的累计总和,每个系统特征值采用0~5的分值进行计量,分别代表无影响(no influence)、偶尔影响(incidental)、适度影响(moderate)、平均影响(average)、重大影响(significant)和根本性影响(essential),具体的评分标准含义这里不详述了,使用Primavera系统的用户可以在功能点估算的系统特征对话框中找到每一个系统特征含义的说明和每一个系统特征取值的评分标准的说明,这些说明可以帮助实施功能点估算的人员进行判断和取值。
✧确定分布式数据处理(Distributed Data Processing)的分值,该值表明分布式数据和功能如何被处理。
✧确定配置项负载(Heavily Used Configuration)的分值,该值表明对当前的硬件平台的使用程度。
✧确定性能(Performance)的分值,该值表明用户对响应时间或吞吐量是否有所要求。
✧确定事务率(Transaction Rate)的分值,该值表明事务执行的频繁程度。
✧确定安装容易程度(Installation Ease)的分值,该值表明转换和安装的困难程度多大。
✧确定在线更新(Online Update)的分值,该值表明多少内部逻辑文件会被在线的事务更新。
✧确定复杂处理(Complex Processing)的分值,该值表明应用软件是否具有大量的逻辑或数学处理。
✧确定操作容易程度(Operational Ease)的分值,该值表明应用软件在启动、备份和恢复的有效性/自动化程度。
✧确定用户使用效率(End-User Efficiency)的分值,该值表明应用软件是否就最终用户使用效率上有所设计。
✧确定修改容易程度(Facilitate Change)的分值,该值表明应用软件是否被设计以方便于修改。
✧确定多个地点(Multiple Sites)的分值,该值表明应用软件是否设计支持多个地点场所/机构。
✧确定重用性(Reusability)的分值,该值表明应用软件开发以满足一个或是多个用户的需要。
✧确定在线数据项(On-line Data Entry)的分值,该值表明百分之多少的信息是在线输入的。
✧确定系统特征数据通讯(Data Communications)的分值,该值表明系统具有多少数据通讯设备。
计算输出:总影响度因子(TDI)是14个系统特征分值的累计总和。
第三步:计算最终调整功能点计数(FP)最终调整功能点(FP)的计算公式最终调整功能点计数可以通过该公式进行计算,FP = UFC×(0.65 + 0.01×TDI)。
即它由前面步骤中得出的未调整功能点计数(UFP)和总的影响度(TDI)来确定。
如何通过Primavera实现软件研发项目规模成本估算Primavera软件中的自上而下的估算方法能够在项目计划编制的前期对其规模、进度和成本进行预估,这不仅可以对项目风险和投资赢利情况作一个预测,也对以后的项目计划编制提供了参考。
相比其他的各种软件规模的估算方法,这种自上而下的估算方法所能获得的数据是较为精确的,但是如果直接手工的去进行估算,在算法上会较为费时费力,所以我们可以借助一些软件的工具来实现,例如在Primavera的项目管理解决方案中,我们就可以利用其中的自上而下估算功能(包括功能点估算)来实现软件研发项目早期的规模、成本、进度的预估。
例如在某个公司在对财务软件系统的集成升级过程中就使用这种方法。
该软件研发的项目计划是在04年8月份开始的。
在其开始之前我们并不是急于编制实施计划,而是先对需要开发的这个系统的功能数量进行测量,并采用功能点这种标准单位来度量,以获得当前这个项目的规模情况,通过本公司的研发团队的平均产量等历史经验值将该软件规模的功能点折算成项目所需总的人工或非人工资源数量,以便我们今后的计划编制过程中确定每道作业的计划工期和每个资源的预算用量。
另外通过Primavera软件系统也可以实现项目经验和方法的积累提炼和重复利用,这是在Primavera 软件系统的Methodology Management组件中实现的。
它可以将一些类似项目的历史数据和方法保存成可以供新项目参考利用模板,例如我们在这个财务系统的集成开发项目中就可以使用MethodologyManagement库中的某个类似的模板来快速建立一个成本、进度估算模型和框架。
关于这方面的详细内容不在本文讨论范围内。
我们接下来就以这个财务软件系统的集成项目为例,讨论一下通过Primavera系统进行软件研发项目规模成本及进度估算的具体实现。
为了讨论的方便,我们简化了该项目进度计划的内容。
1)估算软件研发项目的功能点计数软件项目的功能点估算的值是作为软件规模和成本估算的基础,因此我们首先对该软件研发项目的功能点做统计。
实际上,在Primavera的自上而下估算方法中可以采用两种估算方法:第一种是直接利用先前的经验数据来做估算,即可以通过人为的经验判断来确定项目所需的人工或非人工资源数量,在人为判断的过程中也可以利用历史上类似项目的情况作参考,比如可以参考Methodology Management中相关的历史数据。
这种方法较多的应用在传统的工程建设项目上,但不太适合于软件研发项目估算,因为其达不到软件开发项目对估算结果精确度的要求。
第二种方法是基于功能点的估算来确定项目所需资源数量。
这种方法因其独有的统计方式和计算方法仅针对软件研发项目,所以无法应用在别的类型项目的估算上。
如下图,在使用Primavera软件的自上而下估算功能时,首先将估算方法调整为功能点的方法,通常功能点是要通过统计和计算得出的,继而得出项目所需的人工数量或非人工数量,因此这里我们需要先进入到功能点计算的界面中去。
另外,简便期间,本案例中我们仅基于功能点来估算人工数量,事实上它也可以基于功能点估算非人工数量。
我们还可以选择在整个财务系统集成项目中进行估算还是在该项目某一块特定的范围内进行估算,这里我们选择整个项目。
选择本次对人工资源估算估算范围为整个项目基于功能点估算人工数进入功能点的统计计算界面根据之前的介绍,功能点的计算可以分为三个步骤:计算未调整功能点计数(UFP);计算总影响度(TDI);计算最终功能点计数(FP)。