Logo cn.artbmxmagazine.com

软件开发成本估算

Anonim

软件开发成本的估算是计算机项目分析中非常重要的因素,拥有衡量项目成本,确保效率,卓越性,质量和竞争力的指标是一个战略问题。成本分析是确定有效开展工作或项目所需资源的过程。

成本评估根据金钱,工作量,能力,知识和时间来确定必要资源的质量和数量,从而影响业务管理。当前,有一组未使用的度量标准,可以将其应用于任何类型的软件项目以计算其成本。

这项研究提出了一套度量标准的设计,以计算软件开发过程中的成本。度量标准尽可能通用,与特定的软件方法无关,而是与将软件评估为商业产品有关。

在选择指标时,要考虑它们对决策的影响,为项目分析提供关键要素,例如项目经理在理解技术,行政技能和个人技能方面的足够才能。用于沟通。决策能力,与受益人的积极关系,项目团队参与分析的能力以及充足的资源。评估收入和成本,行政和管理支持以及项目成员之间必须存在的承诺。

关键词:度量,成本,软件开发,软件方法论。

抽象

在信息技术项目的分析中,软件开发过程中的成本估算是一个非常重要的问题。构成一个战略主题,并用指标来衡量软件开发项目的成本,同时保持这些流程的效率和竞争力。成本分析是确定有效开展工作项目所需资源的过程。

对软件项目成本的评估决定了所需资源的质量和数量,包括金钱,工作量,能力,知识和剩余时间,这些因素直接影响到企业效率。

如今,有一组度量标准并没有得到很好的使用,它可以适用于任何类型的软件项目,因为这些项目在编程工具,方法论,平台等方面都存在很大的延迟。即使在很多情况下,估算中使用的要点之一就是开发人员的经验。

这项调查提出了一组度量标准的设计,以度量软件产品的成本和生存能力以及评估这些度量的工具。此度量标准是最通用的,并且未与特定的方法或框架相关联,而是像商用产品那样评估软件。

关键词:度量,成本,软件开发,软件方法。

介绍

软件开发成本的估算是项目分析中一个非常重要的因素,拥有度量标准来衡量软件项目的成本以确保效率,竞争力,有效性和卓越性是一个战略问题。任何经济体系中必不可少的要素都是通过允许高度可靠性的敏捷机制,确保成本在规划国家和从根本上正确指导公司方向方面的作用。

当前,那些打算达到竞争水平的公司需要一个良好的成本系统作为决策的基础。按职责范围和成本中心定义不同类型的成本对任何组织都是一个很大的优势。

在当今的商业世界中,至关重要的是要达到客户和竞争对手所期望的效率水平。为此,必须知道实体的成本;它们可以提供实体的计划,评估和控制操作所需的信息,从而可以做出有助于实现组织目标的战略,战术和运营决策。

实现对运营成本或费用的有效度量和管理意味着竞争优势,这将使组织能够更好地评估其所有活动的费用,制定旨在减少这些活动的决策,从而达到既定目标并满足您潜在客户的需求。

成本分析是确定执行工作或项目所需资源的过程。成本评估决定所需资源的质量和数量,包括金钱,精力,能力,知识和时间,这些资源在不同情况下无法估算,或者在其他情况下会发生,因此认为成本如此之低以至于成本并非如此分析是必要的。同样,经常发生的情况是,一旦启动该项目,开发人员就会意识到完成该项目所需的设备,材料和人力资源不可用,并且该项目失败了(Jones,2004)。

成本分析不仅可以帮助确定项目及其维护的成本,还可以帮助确定项目是否可行。应该对软件进行评估,以评估使用新软件工程方法和工具所带来的生产力和质量方面的收益,并为估算建立基准。

计算软件开发成本及其准确性已成为开发软件产品的实体和希望软件成本与估算值匹配的客户的关键因素。足够准确的估算值可以使公司更好地计划其管理的项目,并更好地为每个项目分配必要的资源,而估算值中的错误可能意味着项目计划最终将面临更多的问题。最初预期的是质量下降,交货日期延迟,为该项目预留的过多资源,从而导致预算过多。

软件开发成本计算模型基于一组变量,这些变量被称为诸如成本,工作量或规模之类的因素,每个模型均基于其自身的一组因素进行估算。

估计方法受所需的大量数据及其获取困难的影响。由于尚未完全定义要开发的应用程序,因此在项目的初始阶段就加剧了信息的缺乏,随着项目的发展,人们对系统有了更多的了解,因素之间的关系也越来越多,估计精度更高。

软件开发是一项非常复杂的活动,其产生的无形产品主要取决于执行该软件的人员的智力和创造力。在此类项目的所有阶段都存在人为错误,其纠正可能非常昂贵。具有最精确成本的软件产品的结果意味着对软件的分析,设计,编程和测试使用方法,过程,度量标准和标准,以使工作理念统一(Jones,1996)。

随着越来越多的数据可用,估计活动不会在项目中一次完成,因此可以进行更精确的估计,从而可以更好地计划其余项目。

在可以进行估计的所有点中,何时可用的数据最少,是在最初时刻,此时仍在评估项目的可行性。从为第三方开发和销售特定软件的角度来看,从早期开始,此估算是最重要的估算之一。

正确的软件项目早期评估是一项艰巨的任务。这种情况是已知的,这就是开发公司为何每次都尝试将分析和设计与编码分开出售的原因,以便可以更可靠地估算编码。特别是,统一软件开发流程坚持认为,只有在开发阶段结束时,它才能提出可靠的经济建议,这意味着在达到此目标之前就消耗了项目资源的25%至30%期间(Ivar Jacabson,统一软件开发过程,2000年)。

不管哪种说法更正确,事实是市场需要在开始工作之前确定价格。物质和人力资源的成本是双方之间必须调和的另一个问题,目的是最大程度地减少错误并最大程度地提高结果的质量,这就是为什么从采购初期就进行良好的成本计划非常重要的原因。草案。

因此,需要提供一种解决方案,将所提出的问题定义为科学研究问题,问题如何计算软件开发中计算机产品的总成本?

这项研究的目的是设计一套度量标准来计算软件产品的成本。

为了解决问题情况,有必要执行一组特定目标:

  1. 告知与软件产品成本相关的当前趋势,方法和最重要的概念;确定用于计算软件成本的主要模型;研究在创建软件产品时使用的度量标准。

根据上述内容,可以定义以下假设:如果有一组度量标准来计算软件产品的成本,则将有助于确定项目的可行性。

研究对象:软件工程。

行动领域:计算软件开发成本的方法。

为了制定这些指标,需要考虑一系列研究问题:

在全球范围内,用于衡量软件产品成本的当前度量标准是什么?

了解最新的软件开发方法,以及它们如何影响最终产品成本计算过程?

从早期阶段考虑成本,开发软件有哪些优势?

通过有效地计算软件产品的成本,可以节省多少人力和金钱资源?

该研究具有科学新颖性:

本文提出的理论要素支持制定一套衡量公司软件产品复杂性的指标,这种分析将提高决策能力,对公司而言是正确的,对进步和完善非常有用。促进卓越效率和竞争力的商业和经济绩效指标。开发在该国乃至世界范围内新颖的新仪器,对继续加强当今使用的方法构成了挑战。

作为研究方法,观察是用来获得许多研究知识的。一种分析综合方法,可以分析理论和现有文献,随后进行与研究对象有关的最重要元素的提取。作为收集信息的一种技术,采访被用来积累其他感兴趣的数据进行调查。

本研究的内容分为三章,即一般性结论,建议和参考书目,最后是对本研究的补充和理解的附件。

第1章“管理会计和估算技术”包括国际和国家层面关于如何计算软件开发成本的最新研究成果;描述了将在整个工作中涵盖的主要概念,以及对在全球范围内用于计算软件产品成本的主要估算技术的分析,显示了将其用于制造软件产​​品的好处。决定。

第1章。管理会计和估计技术。

本章介绍了在整个研究过程中已分析的相关性的主要方面和概念。要研究的工具和技术显示了用于估算软件项目成本的技术的最新状态,从而可以分析计算机产品的可行性。分析了业务应用程序敏捷开发的方法,以及软件开发中最常用的指标。

1.1管理会计

成本会计是会计的一部分,旨在捕获,衡量,记录,衡量和控制公司价值的内部流通,目的是提供有关生产,培训决策的信息根据成本价格政策,销售价格政策和结果分析,基于生产技术定律,组织的社会定律和市场的经济定律,与其他地区密切合作职能,使负责执行的人员与管理层一起参与决策”(费尔南德斯,1993年)。

它传输财务和非财务,定量和定性信息,以便于组织的不同层次的决策制定,包括监测和实现战略目标和总体目标,所有项目的计划,控制和度量组织的活动(内部和外部),与其他职能领域的紧密合作,使负责执行工作的人员与管理层一起参与决策。它提供了用于计划和控制日常操作,决策和长期计划以及利润确定的数据(成本会计,1991)。

成本会计构成了一个工业或商业实体的通用会计的扩展基础,该实体可以快速向管理层提供与生产或销售每件商品或提供特定服务的成本有关的数据(马尔多纳多)。

建立成本会计概念基础的最重要术语是成本。研究该主题的人士提出了许多定义,稍后将介绍成本的不同定义:

  1. ”成本是已交付或承诺要交付的资源的货币价值,以换取所购买的商品或服务。» (Colín,2001)”成本是为生产某种产品而投入的精力和资源的总和。» (González,2001年)”成本是指在一定时期内应支付的与付款,合同规定的义务,消费,折旧,摊销和应用相关的一组集合,与生产,分配和融资的功能有关。 ”(Ortega,2001)”成本定义为购置商品或服务所牺牲的价值,通过在获得收益时减少资产和/或产生的负债以美元计量。 ''(Ralp Polimeni,1989)

考虑到成本的重要性,而成本的重要性是确定产品价格的必要和不可缺少的要素,因此决定引入一种新的成本研究概念。

  1. “获得计算机产品是必要的财务,物质和人力资源消耗。”

对成本执行的分析使决策者可以采取管理措施,因为确定成本是定义一个时期内将要控制的价格和费率的基本工具。考虑到成本的计算是在更严格的可靠性基础上进行的,并与既定的准则和预算相对应,因此可以将其定义为有效的管理工具,从而可以衡量公司经济活动的行为,因此,保持对实体成本的控制至关重要。

1.1.1成本的重要性。

成本是衡量经济效率的指标。它反映了劳动生产率的水平,资金使用的效率程度以及节省材料,劳动力和财务资源的结果。

它可以比较不同时期获得的结果,从而有助于有计划地以合理的方式寻求新的方式,以合理,最佳地利用生产资源,从而保证繁殖。(Rumiantsev,1975年)

成本作为一种管理工具,有助于评估可能做出的决定,成本可以衡量任何经济过程中可用资源的使用,其程度应有助于了解与计划有关的偏差的影响,以及这将确保对所拥有的物质和人力资源进行适当的计划和使用。它显示了公司的真实竞争力水平,以及与竞争对手相比成功或失败的可能性,从而促进了战略决策。 (Cueto Ible和SánchezBatista,2000年)

还有研发费用(R + D + i),这些费用是通过系统地增加知识量(包括人与文化知识)而进行的创造性工作中产生的费用和社会,并利用这些知识来创建新的应用程序(Chang,2013年)。成本有几种分类,可以根据其特征将其分组。

成本是为获得商品或服务而投入的价值。他们的目的是:

  1. 提供与成本相关的报告以衡量利润和评估存货(收益表和资产负债表。)提供对公司运营和活动进行行政控制的信息(控制报告)向管理层提供信息以告知规划和决策(分析和特殊研究)。

出于以下目的,成本被用作决策过程中的管理工具:(Audirac,1997)

  • 确定商品或服务的价格。产品成本通常用于区分产生最大毛利或损失的产品,测量工作的执行情况,即将制造或服务的实际成本与先前确定的成本进行比较,评估和控制库存。库存控制是指按销售所必需的比例在库存中保留足够数量的不同产品。

1.1.2成本分类。

与活动量或活动水平的关系:

  • 变动成本:是指总成本与相关范围内的产量或产量变化成正比而单位成本保持不变的固定成本:固定成本:指在一定时间内总固定成本保持恒定的成本。相关的生产范围,而每单位的固定成本随生产而变化,并随数量成比例混合成本:在各种相关的经营范围内,这些成本具有固定和可变的特征。混合成本有两种类型:半可变成本和分层成本半可变成本:固定部分通常表示在提供某种商品或服务时的最低费用,可变部分是实际使用该服务所收取的费用。固定部分在不同的活动级别上会突然更改,因为它们是在各个部分中获取的。在非常小的相关范围内,分层成本类似于固定成本。

关联它们的能力:

  • 直接成本:这些是管理层能够确定的特定项目或领域的成本,例如直接材料的成本和特定产品的直接人工就是直接成本的示例。(Sáez,1993)间接成本:它们在许多商品中很常见,因此不能直接在任何商品或区域中识别。这些通常使用分配技术上传到文章或区域。(盖尔,会计与成本管理,1999年)

注册,累积,分配,控制,分析,解释和报告生产,分配,管理和融资成本,是公司为保证其产品和服务质量而必须执行的一些任务。在这些分析中,软件公司不应该落后,因为每个软件工程项目都必须从对可用的资源进行良好的规划和检查开始,以创建高质量的产品,要获得最终产品,必须连续经历多个阶段它描述了软件开发的内容。

1.2软件开发

软件开发是在软件开发,操作和维护以及对这些方法的研究(即工程学在软件中的应用)中应用系统,有纪律且可度量的方法的应用。(Alain Abran,2004年)

根据IEEE软件,其定义为计算机程序的一部分,即计算机程序,过程,规则,文档和相关数据的总和。在此定义下,软件的概念超出了计算机程序的各种形式:源代码,二进制或可执行代码以及文档。

软件开发是一项复杂的活动,主要取决于人们的智力努力以及开发软件的过程和技术。

如今,通讯业的蓬勃发展引起了计算机工程师的不断雇用,他们能够创建以前只是乌托邦的程序。在创建软件专家时,来自不同科学领域的技术专家,工程师被组合在一起,他们能够根据经济和社会解决实际问题,而智力资本对于软件开发至关重要。因此,本研究考虑了与计算机应用程序开发相关的专家所拥有的知识。

在软件开发中,考虑了软件方法,下面介绍其中一些方法。

1.2.1软件开发方法论

当前,不能不提及软件开发而没有提及旨在实现满足所述要求的高效计算机系统的构建的软件开发方法,这是一项非常艰巨的任务,尤其是难以完成的任务。遵守(Pressman,1998)。

软件开发方法论对软件开发施加了严格的流程,以使其更具可预测性和效率。软件开发方法的主要目标是提高软件质量,评估每个阶段的需求

没有通用的软件方法,因为所有方法都必须适应每个项目的特征(开发团队,资源等),因此要求过程是可配置的。开发方法根据其特性和追求的目标可以分为两类:敏捷和强大。

传统或健壮的模型已定义了其阶段,并且在进入下一阶段之前需要关闭一个阶段。这些要求每个阶段都有更多的文档,并且需要对每个工作产品的完成情况进行验证,对于长期项目而言,这些工作往往很有效。

对于具有明确交付物的新软件,动态模型本质上是增量的,并且表明小型版本比大型产品更强大,文档更少,基本思想是基于代码的所有工作以及相关文档(《敏捷宣言》的原理,2005年)。

每个项目都应由最适合要创建的项目的模型决定,并要考虑其特定的应用,项目的规模,团队的经验以及项目的时间表。下面提到一些软件方法。

1.2.2稳健的方法

稳健或传统的方法以强有力的计划为指导。将您的注意力集中在对整个开发过程进行详尽的记录,并遵守初始阶段定义的项目计划。健壮的方法包括:Microsoft解决方案框架,METRIC 3和Rational Unified Process(RUP)

这些控制着技术项目的计划,开发和管理。他们是适应性强,可扩展的团队,可以组织3至4人的团队,以及需要50人或以上的项目。考虑到他们的角色和责任以及他们每个人的需求,它们促进了项目整个生命周期中软件生产中不同参与者之间的沟通和理解。其中最知名的是统一开发流程(RUP),它明确定义了在项目中应由谁,如何,何时以及做什么。

RUP具有三个基本特征,这些特征是由用例决定的,即在项目中,RUP的特征在于对用户产品应做什么的重要性,它是一个专注于体系结构的过程,其中体系结构是有组织的,并且是迭代的和增量的。(Ivar Jacabson,统一软件开发过程,2000年)这种方法通常是技术和大学教育中使用的方法。

在敏捷方法论中,概念有所不同,以下部分显示了一些最常用的方法。

1.2.3敏捷方法

敏捷方法学始于1990年代中期,位于卡内基梅隆大学的软件工程学院(SEI),这种新的过程模型重量轻。它需要更少的文档和更少的过程控制。它针对中小型软件的特定领域,针对特定领域,针对小型开发人员团队。旨在使这些开发团队能够在软件交付时快速调整,更改要求并向客户提出要求(Martin,2009年)。

动态开发从任何软件开发项目的目标都是代码这一命题开始生效,因此开发团队应将大部分时间花在编写代码上,而不是编写文档(Shore,2008年)。

敏捷方法具有几个特征,它们倾向于强调代码,频繁的产品版本,在开发中与客户不断交换,代码重用以使其更简单易读。

有几种敏捷方法,例如极限编程(XP),看板,敏捷统一过程(AUP),Scrum。在设计建议的度量标准时,除了提议对软件开发成本进行分析之外,还考虑到Scrum方法论的概念,因为其用途广泛且取得了积极的成果。

动态Scrum方法论的思想围绕团队展开,该团队围绕一个目标进行统一,并为实现该目标而进行调动。(L瑞星,2007年)

在这种情况下,Scrum提供了必要的工具来估计尽可能接近实际的情况。在许多情况下,合同是用于指定项目时间和成本的非常有用的工具。近年来,公司已经对敏捷技术给予了重视,并充分利用了其为最终用户提供的积极方面和利益,Scrum的使用主要基于时间和材料的分析,这是一种方法。它也可以用于大型项目。 (泽特勒,2001年)

使用敏捷工具的实体确保时间合理化是应用动态方法论的主要动机,另一个优势是提高生产率,更大的优势是能够控制需求的变化。客户,使客户的进步更加明显。

Scrum是一个用于软件管理和开发的框架,可以分析其变量,成本,范围和时间(参见附件1)。以下部分显示了它们之间的关系。

1.2.4铁三角

在每个项目中都有三个相关变量,所谓的“铁三角”范围反映了要执行的要求或任务,时间或计划显示了项目将持续多长时间,成本或资源用于分析多少钱,人,资源。将致力于该项目。为了维持某些质量目标,对三个变量之一进行任何修改都意味着对另外两个变量中的一个进行修改。(Kniberg,2012年)

铁三角

图1铁三角。资料来源:自己的阐述。

如果以一定的质量减少致力于该项目的人员,则有必要缩小该项目的范围和/或增加其交付日期。如果以一定的质量缩短了必须交付项目的日期,则有必要缩小项目的范围和/或增加用于该项目的资源。如果在一定质量的基础上增加了项目范围,则有必要增加项目交付日期和/或增加用于该项目的资源。

从初始阶段就计划这些变量的行为,对于获得满足客户要求的产品是必要的,在此产品中,时间和估计的成本应尽可能准确地符合合同规定。面临的挑战是要明确定义它们,以便发现风险,并且在交付产品时不会感到意外(Larman,1999)。为此,使用了有助于项目计划的估算技术。

1.3费用估算。

成本通常是可量化的,并以经济单位估算。在成本效益分析中,必须考虑那些可量化的有形方面,例如金钱,时间,资源和无形资产,这些不可思议的或不可触及的,但对分析项目成本至关重要的方面。尽管无形收益很难量化,但没有理由不考虑无形收益,因为所有对此软件感兴趣的人都必须参与其中(Sexton,2009年)。

研究中将考虑软件开发的经济指标。

成本效益分析:成本效益分析技术的基本目标是提供对执行项目所产生的成本的度量,并将所述成本预测与执行所述项目的预期收益进行比较。

在计算成本时,应考虑以下因素:(MAP,2001)

  • 硬件的购买和维护;通信费用(线路,电话,邮件等);安装费用(布线,房间调理,人力和物力,差旅费用等);系统开发成本。系统维护费用(年度费用)咨询费用:如果在项目的任何阶段都需要外部顾问,则培训费用:各种人员(开发人员,操作员,植入机,最终用户等)。材料:纸张,碳粉等。从人员的学习曲线中得出的成本涉及财务成本,广告成本等。

为了估算收益,应考虑以下问题:

  • 提高生产力:节省或更好地使用人力资源;节省当前系统的维护成本;节省购置和维护硬件和软件;或节省更换平台的重用;提高销售量或结果,并降低生产成本管理改进(库存周转,“及时”,客户关系管理等)各种材料节省:由系统提供的电子数据代替,例如:纸张,邮件,等等。财务收益其他有形收益:节省外部资源,咨询,培训等。无形收益:产品或服务质量的提高,公司形象的改善,客户服务的改善,服务质量的改善。剥削等

生产率:生产率是与软件制造的经济方面最密切相关的另一个指标。有专门针对此措施的标准(IEEE,1992)也是最有争议和最不精确的标准之一。(Oded&Mounford,2008年)

这些符合指标的经济指标是在软件中实现预期质量的途径,第3章研究了记录实际成本并在开发软件的实体中进行适当检查的重要性。

成本效益提高了项目执行的便利性,这是由以下两个因素共同决定的:

  • 成本:涉及计算机解决方案的实施,硬件/软件系统的购置和调试以及相关的运营成本效率:理解为最终产品和服务(结果)与所需投入之间的关系。 (努力)。因此,需要测量结果在多大程度上证明资源的合理性,最小化成本或优化投入。

1.3.1软件开发成本计算

当在任何人类活动中使用该软件的需求增加时,其获得的实现的复杂性和难度就越大。尽管有越来越多的技术可以促进系统的设计和开发,但是用户的新需求和新的应用程序域产生了新的问题。在开始开发应用程序之前,需要越来越多地关注各种软件参数的计划,测量和估计过程。

这种需求使软件项目管理成为至关重要的任务,而工作量估算是完成这些产品所必需的关键点,时间和金钱成本之一。如果没有对这些参数的正确估计,在开发过程中就会出现无法预料的事件和问题,导致无法在约定的时间内交付最终产品,从而导致费用和经济损失增加。 (Alvarez,2009年)

估算软件产品成本的过程由组织中使用的一组技术和过程组成,以便获得可靠的预测。这是一个连续的过程,必须在项目的整个生命周期中使用和咨询。它分为以下步骤(Agarwal和Kumar,2006年):

规模估算,成本和工作量估算,时间规划估算,计算资源估算,无风险,检查和批准,估算报告撰写,过程的评估和改进(Agarwal和Kumar,2001年) )。

下面显示了软件估算过程的不同阶段之间的交互。

软件项目估算活动

图2估算软件项目的活动。资料来源:自制。

这些估计是基于由于难以控制的外部因素的影响而产生的概率。除了这些可能性外,还必须诉诸于历史信息,该信息必须易于访问并且随时可供组织使用。重要的是要强调正确确定需求的重要性,没有正确和详尽的需求规格说明,项目就无法成功(Larman,1999)。

用于估算的工作量和时间取决于项目的规模,开发团队和要实现的目标。项目的性质和开发项目的环境是确定此任务的因素,并且极大地影响了所使用的估算方法。

估算软件项目的预算和时间有两种不同的方法:使用成本模型和使用基于相似性的推理。在这两种选择中,都必须求助于历史信息和以前存储在数据库中的先前项目的信息。估算基于四个基本点:

  • 基于项目经理的经验和成熟度,主题专家的考虑和意见,他们将不得不猜测和预测项目的完成时间或成本,专家的参与不应被认为是专业人员和项目经理的人,因为专家不属于组织,并且可能熟悉或可能不熟悉组织本身的实践,最后,使用公式和函数表示存在定量数据,可以很好地估算出估算值,并使用标准时间因子,该因子是根据先前项目计算得出的。

估计技术是解决问题的一种形式,在大多数情况下,要解决的问题过于复杂,无法视为其中一部分。因此,建议分解问题,将其视为一组小的问题,这些问题在软件开发过程的每个阶段中都是单独估计的。

估算必须考虑到每个软件需求,这些需求将构成整个系统的估算。应该分析各种估算技术,以及使用某些软件指标,并且应随着对项目的更多了解而对估算进行完善,最终目标是使估算尽可能接近实际情况。在软件开发过程中进行估算的步骤如下所示。

软件开发过程

图1软件开发过程。资料来源:自制。

估算模型的思想是提供在构建应用软件时进行成本计算的系统和方法,目前该软件的大部分成本都在分析时间的成本中,设计,编程和测试所必需的。因此,当我们在此处讨论成本估算时,我们主要指的是必要的人工工作,即构建软件所需的工作时间,尽管每个阶段都至关重要,甚至从一开始就至关重要。您必须有一个初步的想法,然后加以完善。

应该注意的是,在需求分析阶段,主要目标是识别并记录真正的需求,以一种清晰的方式将其传达给客户和开发团队的成员(Larman,1999)。

只有使用一组旨在了解或估算规模,时间,资源,开发人员的人的度量标准,软件开发中的成本估算才是可行的,下面将对其中一些进行描述。

1.3.2软件开发指标

在软件工程领域,人们经常互换使用“度量”和“度量”,但是这些术语之间还是有区别的。度量定量地表示过程或产品的某些属性(扩展,数量,尺寸,容量,大小等)。 IEEE(电气与电子工程师协会)的标准词汇表(IEEE软件工程术语标准词汇表,1993年)将度量标准定义为“对系统,组件或过程具有特定属性的程度的量化度量”。 。如果仅收集一种类型的数据(例如,组件内的错误数量),则表明已建立度量。

软件度量以某种方式与各个测量相关联,它可以是每次检查或测试中发现的错误数(Pressman,1998)。

软件工程师从这些度量中开发出度量标准,为度量标准提供信息以控制流程或软件项目。这就是这些术语之间的区别。

测量在工程界非常普遍。测量了功率,重量,物理尺寸,温度,电压,噪声信号等几个方面。度量在软件工程领域远非普遍,它更为复杂,在度量以及如何评估度量时遇到困难,有几种原因来度量产品,以表明产品的质量,评估开发人员的生产力,评估使用软件工程的新方法和工具所产生的质量收益,建立评估基准,衡量项目成本等。

对物理世界的度量可以分为两类:直接度量和间接度量(度量,估计和软件规划,2001):

直接测量。在工程过程中,将涉及成本和所付出的努力,所产生的代码行,执行速度,内存大小以及在一定时间内观察到的缺陷。

间接措施。您会发现功能,质量,复杂性,效率,可靠性,易于维护等。

在此调查中,研究了一组度量,以尽可能准确地实现测量的计算,如下所示。

软件指标:它们是与软件开发相关的指标,例如功能,复杂性,效率。

技术指标:他们专注于软件的特性,例如:逻辑复杂度,模块化程度。它测量系统的结构以及如何制作。

生产力指标。他们专注于软件工程过程的性能。换句话说,我要设计的软件效率如何。

以人为本的指标。它们提供有关人们开发计算机软件的方式的度量和信息,尤其是人类对于工具和方法的有效性的观点。这些是我将要执行系统的人员的度量。

面向大小的指标。就是要知道我将在什么时间完成该软件以及需要多少人。如果软件组织保留简单的记录,则它们是对软件及其开发过程的直接度量。

将这些度量结合起来以构成构成工作工具的估计技术。它们对于统一规模测量标准是必要的,既可以计划和控制项目,又可以在项目之间进行研究和分析以支持过程改进(Park,1992)。最常用的技术如下所示。

1.4软件开发中的成本估算技术

通过预先设置项目范围,使用软件指标作为进行估算的基础,并将项目分解为可单独估算的较小部分,已开发出各种估算技术来进行软件开发(Angelis L&Stamelo ,2000)。

由于软件行业的发展以及成本估算是一项复杂的活动,致力于在市场上提供不同成本估算工具的公司有所增加。截至2005年,其中一些估算工具为:COCOMO II,CoCots,CoStar,CostModeler,CostXpert,SoftCost。

尽管这些估算工具是由不同公司开发的并且不完全相同,但实际上它们往往会提供共同功能的核心。商业软件评估工具的主要特征包括以下属性:可靠性和质量评估,价值和风险分析,投资回报率,与项目管理工具共享数据的可能性,收集历史数据,成本和是时候完成将历史数据与预测数据相结合的估计,支持软件过程评估,对多个项目进行统计分析。

在计划项目时,必须估算所需的人力,项目的时间长短和成本。在大多数情况下,估计是使用过去的经验作为唯一指导。拥有良好的度量标准可以确保与项目工作之间的正确关联,并有助于对其进行估算。

尽管应注意,“没有可运输的成本模型。如果您希望别人开发一套可以用来预测自己的安装成本的公式,那么您可能将不得不永远等待。” (1982年,马可)

项目估算的目的是降低成本并提高服务和质量水平。通过衡量软件过程的某些方面,您可以对开发过程中发生的事情有一个高层次的了解。对先前过程的测量允许对当前过程进行预测。在开发的早期阶段就可以对过程属性进行测量,从而可以在后期进行预测。

在开发开始之前,开发过程中,从产品到客户的过渡以及整个维护阶段,过程评估都可以做出决策。

成本估算涉及对构建软件系统所需的最可能的工作量,时间和人员配备水平进行预测。这些是在整个软件生命周期中执行的。

投标或确定项目的可行性需要初步估算,这是最难进行,最不准确的。

可以通过以下方式估算成本:

专家意见:开发人员或经理描述项目参数,专家根据他们的经验进行估算。

Delphi技术:它可以系统化和改善咨询专家的意见。

类比:比专家意见更正式的方法。专家们将拟议项目与一个或多个以前的项目进行了比较,试图找到特定的异同。

项目的历史基础。

分解技术:对要分解软件的每个组件或要分解任务的低级任务进行估算。低级估算结合起来可以得出整个项目的估算。换句话说,项目的总成本是将项目划分成的所有组成部分的估算值相加的结果。这是世界上使用最广泛的一些技术。

1.4.1可可

由Barry Boehm于1981年创建的COCOMO模型。其名称表示COnstructiveCOst MOdel(构成成本模型)构成该软件的估计模型的层次结构。层次结构由以下模型组成(COCOMO模型定义手册,1990年)。

  • COCOMO基本。根据中间LOC.COCOMO中估计程序的大小来计算开发的工作量和成本。根据程序的大小和一组成本动因(包括对产品,硬件,人员和项目属性的主观评估),计算开发工作量 COCOMO详细。它结合了中间版本的特征,并在过程的每个阶段(分析,开发等)中评估成本动因的影响。

COCOMO是一种基于代码行的工具,它使估算成本非常强大,与其他仅根据规模来衡量工作量的工具不同。项目经理需要一种成本估算工具;该工具可能与COCOMO有关,因为该技术代表了用于软件评估的最完整的经验模型之一(Bumett,1998)。

COCOMO模型中检测到的缺陷之一是,对于项目成本的分析,他们仅分析开发人员的薪水,而未考虑影响软件项目成本的其他支出要素。

1.4.2 COCOMO II

COCOMO II是一个模型,可用于在计划新软件开发活动时估算成本,工作量和时间,并与现代生命周期相关联。它是从COCOMO开发的,包括更适合于软件工程师要求的更新和新扩展(Heemstra,1992)。

它旨在满足软件估算器表达的那些需求,例如对项目计划的支持,项目人员的预测,重新计划,监视,合同谈判和设计评估。

成本因素描述了与产品性质,所使用的硬件,所涉及的人员以及项目特征有关的方面。比例因子集说明了随着软件项目规模的增加而产生的节省和损失。使用一个模型还是另一个模型取决于项目的详细程度,所需估算的保真度,要求的定义以及体系结构的详细信息(Gause&Weinberg,1989)。

1.4.3代码行和功能点

功能点的度量基于国际功能点用户组(IEPUG,1994)提供的指南。功能点试图量化软件系统的功能。目的是获得一个可以完全描述系统特征的数字。估计器很有用,因为它们基于软件开发生命周期早期的可用信息。

估算软件项目时,以两种方式使用代码行数据(LDC)和功能点(PF):

  • 估计变量,用于校准软件的每个元素;基本指标是从以前的项目中收集的,与估计变量一起用于制定成本和工作量预测。

这些技术不同,但具有共同的特征。项目计划人员从对软件范围的限制声明开始,然后从该声明中尝试将软件分解为可以单独估算的小子功能。然后,为每个子功能估计LDC或PF(估计变量)。然后将基本生产力指标应用于适当的估计变量,并得出子功能的成本和工作量。合并子功能估算将得出整个项目的总估算。

它们在分解所需的详细程度上有所不同,当将LDC用作估计变量时,功能分解绝对必不可少,并且通常会带来相当大的详细程度。当前,该技术无法通过分析其代码行来反映项目的实际成本,可能有一个项目的代码行很少,并且专门用于该项目的工作量,时间,人力和物力比另一个项目要多。以前开发的并且有更多的代码行。

1.4.4 Delphi技术

创建于1940年代的美国。BarryBoehm从1981年开始将其用于软件领域。遵循的步骤是:

协调员为每位专家提供拟议项目的规格和表达意见的表格。专家匿名填写表格。他们可以问协调员问题,但不能问彼此。协调员为每位专家提供所收集意见的平均值。要求进行新的匿名估算,以说明可能进行修改的原因(Boehm,1981年)。

重复收集意见的过程,直到达成共识为止。任何时候都不会举行小组会议。

宽带Delphi: Barry Boehm提出的Delphi技术的改进。遵循的步骤是:

  1. 协调员为每位专家提供拟议项目的规范和表达意见的表格,协调员聚集专家以交流对该项目的看法,专家以匿名方式填写表格,协调员为每位专家提供收集的意见的平均值。要求提供新的匿名估算,但未指出可能进行修改的原因,协调员召集专家开会讨论其估算之间差异的原因,并以匿名形式填写表格,并重复第4、5和6点。直到达成共识。

该技术的主要优点是,它可以基于以前的经验收集专家对当前项目的意见,这些经验很难通过其他方式(人员的特殊特征,项目的特殊性)进行评估。

主要缺点在于咨询中所选人员的主观性或经验不足。

本章结论

本章说明了成本分析对决策的重要性。考虑到软件项目的优缺点,对主要模型进行了研究,以评估和分析软件项目的可行性。对估计系统提供的解决方案进行了分析,表明没有完整的精确估计,但确实为决策提供了高水平的知识。在执行了此研究过程之后,定义了敏捷Scrum方法的使用,该方法提供了可靠性和开发速度,并与COCOMO中使用的主要指标和成本效益经济指标相关联,生产力和努力是解决问题的工具。

在选择指标时,要考虑到指标对决策的影响,从而为项目分析提供关键要素,例如项目经理在理解技术,行政技能,个人技能方面的足够才能。用于沟通。决策能力,与受益人的积极关系,项目团队参与分析的能力以及充足的资源。收入和成本评估,行政和管理支持,项目成员的承诺。

拟议的度量标准包含一个新元素,量化了项目中涉及的专家的知识水平,将知识管理转移到了一个分析平面,在该分析平面中,通过将新知识的整合确定了增值过程。业务流程。管理知识是为了赋予管理系统基于自身和非组织经验的知识。正是在专有技术的重用中,才出现了新知识的丰富和出现。

识别创造产品的人所拥有的知识水平是基于对能力和无形资源进行管理的持续改进的动力,这些能力和无形资源永久性地丰富了组织提供的产品和服务并提高了其竞争地位。

持续改进意味着寻求最佳效率水平,同时意味着质量不断提高。从减少效率低下,结合以前的经验以及重用在其他情况下已成功的实践的意义上讲,它意味着进步和优化。

成本效益,进度和质量之间也建立了牢固的关系,捍卫了两者之间必须存在的协同作用。以英勇游击队的埃内斯托·切·格瓦拉的话为前提,他说:“我们必须进行更详细的成本分析,以便我们甚至可以利用人类遗失的最后一部分工作。”

该主题的专家分析的指标分为三组,如下所示:

产品指标:这些指标是软件产品在开发的任何阶段(从要求到安装)的指标,例如所需的可靠性,数据库的大小和产品的复杂性。

员工指标:分析师能力,程序员能力,员工连续性,应用经验,平台经验,语言和工具经验,开发团队的凝聚力,工作环境,团队的组织和组成工作。

项目指标使用软件工具,进行多站点开发,开发所需的时间表,流程的成熟度,项目规模,项目质量。

流程指标:这些指标是软件开发流程的指标,例如总开发时间,产品开发的天/人或月/人/人的工作量,所用方法的类型或程序员的平均经验水平。”

这些度量标准中有许多是相关联的,而其他一些则被认为对实体非常重要并被包括在内。这种选择的主要目的是针对所创建的项目进行调整,其分析不会繁琐,它们有助于工作并有助于计算项目成本,从而使团队能够不断进行改进。拟议的指标必须客观,简单,可精确定义,以便可以对其进行评估,易于获得(以合理的成本),有效,已调整为要精确测量的目标,而不是其他任何目标,稳健,它们必须对细微的变化相对不敏感在过程或产品中具有重要意义。

设计的指标包含一些关键要素,这些要素可确保产品质量,客户满意度水平,过程价值(以软件产品对其利益相关者的价值程度表示),赋予最终产品以质量,在以下方面加以区别:竞争环境。

所选值的解释如下,这些值的范围是0到100,以使其可测量,可量化,以确保更有效,更客观的计算。

所选指标:

  1. 开发团队的凝聚力:此因素考虑了项目参与者(用户,客户,开发人员,维护经理和支持区域)之间进行同步的困难。在调和目标,缺乏经验和对团队合作的了解中可能会出现这些困难。在开发团队中与客户保持高度的凝聚力,可以确保项目第一阶段确定的要求将其引导到最后,而不会突然发生变化,从而保证了产品的质量。

该指标是通过权衡以下特征来计算的:

特点 低(0-39) 中(40-79) 高(80-100)
团队成员之间协调目标的兼容性,能力和意愿 基本的 大量
团队合作经验和对困难的反应 基本的 大量
共同目标的共同愿景 基本的 大量

表1团队凝聚力指标。

  1. 使用过的技术的经验:这个因素对团队的生产力有很大的影响,认识到了解新型强大的设计工具,数据库管理器,图形界面,网络,框架等的重要性。拥有一支经验丰富的开发团队可确保产品在估计的时间内准备就绪,项目经理在与掌握所使用技术的专家一起工作时会感到安全,这可提高工作质量完成。
特点 低(0-39) 中(40-79) 高(80-100)
具有使用技术的经验 基本的 大量

表2所使用技术的度量经验。

  1. 数据模型的复杂性:数据模型使我们能够描述干预给定问题的现实要素以及这些要素之间的相互关系。拥有复杂的数据模型将迫使开发人员使用所有的知识来对解决方案进行推理,设计,建模和编程,以响应初始需求。
复杂程度 低(0-39) 中(40-79) 高(80-100)
数据模型复杂度 1至40节课 41至60节课 超过60

课程

表3数据模型的复杂性指标

  1. 行政设施:包括进行商业,经济或实际项目管理所必需的运输,获得工作工具的设施,例如存储设备,硬盘驱动器,纸张,打印机,电话,笔记本电脑,互联网帐户等。支持区域在按时获得成品方面起着根本性的作用,因此保持与客户的沟通以及团队内部的工作都是必要的。
特点 低(0-39) 中(40-79) 高(80-100)
达到目标的意愿,能力和管理 基本的 大量
轻松获得工作工具 基本的 大量
行政部门和工作团队的相互渗透。 基本的 大量

表4行政设施指标。

  1. 具备编程语言的经验:拥有编程语言的命令,您可以表达可以由计算机执行的过程。拥有一支完全掌握编程语言的团队是一个很大的优势,因为它可以减少开发时间,正确地编写要求,没有错误,为代码增加光泽并为团队增加安全性。培训较少,因为认为公认的知识是执行任务的理想选择。
特点 低(0-39) 中(40-79) 高(80-100)
编程语言经验 大量

表5使用编程语言的体验指标。

  1. 人员的连续性:此因素衡量受软件项目影响的人员的年度常任程度,团队稳定在其成员中很重要,因为一旦项目开始,其成员就是对业务有完全控制权的人员。当它们发生波动时,最终产品的质量会受到影响。拥有领导者对于实现既定目标至关重要。可能的价值如下:
特点 低(0-39) 中(40-79) 高(80-100)
工作人员的连续性 基本的 大量

表6人员连续性指标。

  1. 所需的开发进度表:此因素衡量对工作团队施加的时间限制。在给定的术语扩展或加速的情况下定义值。加快截止日期会在开发的后期阶段投入更多的精力,由于解决问题的时间短,因此积累了更多的问题来确定。保持合同约定的进度表可以为创建的项目提供质量。此外,客户的处置必须按照合同中的约定进行,这有助于满足要求。一个软件项目的有效计划取决于其进度的详细预测,预见可能出现的问题并为它们准备临时的解决方案。从需求的定义到最终系统的交付,项目经理与专家一起负责项目的设计。
特点 低(0-39) 中(40-79) 高(80-100)
所需的开发时间表 基本的 大量

表7所需的开发进度表。

该分析表明了项目复杂性,连续表显示了这些值。一旦获得了项目的复杂性,我们将继续计算按小时费率估算的时间,然后将获得的值应用于表示项目复杂性的指标总和的百分比。考虑到选择了7个指标,该总和最高可达70%,从而为可观产品带来了附加值。

特点 低(0-29) 中(30-59) 高(60-70)
项目复杂度 大量

表8项目的复杂性

使用度量标准来计算项目的复杂度将基于其具有以下特征的估计参数的计算方法:客观,易于识别,适合进行数字评估,有效,易于获得,并且可以通过售前阶段获得的信息来获得;随时准备完善,以获取更多信息,并与所使用方法的要素兼容。

例:

一个包含使应用程序计算项目复杂度的项目的估计时间为40个工时,费率为11.00美元,平均复杂度为48。

计算:

我计算工时

40 x 11 = 44

低项目复杂度

44的48%= 21.12

项目费用:

44 + 21.12 = 65.12

该项目的成本为每人65.12美元,因为其复杂性低,可以观察到的价格高于DesoftCamagüey目前使用的方法最初估计的价格。

本章结论

设计的指标将允许为所创建的产品增加价值,并提供当今所没有的足够的销售价格,从而为决策提供必要的考虑因素。

以这种方式,创造了条件以对待开发产品的复杂性进行评估。下一章专门介绍此过程。

一般结论

  • 计算软件开发中的成本是保证计算机产品管理成功的必要工具,可以保证从计划到最终交付服务的质量。软件产品,从衡量成本,无形,知识,专家团队的沟通,工作环境开始,为最终产品增值。

建议

  • 建议实施拟议的度量标准,以改进开发活动中的成本计算;继续研究该主题,深化软件估算的新技术;应用项目计划中的度量标准,并在此过程中保持持续改进的过程软件开发的所有阶段。

参考书目

  1. Amat,JM(2001)。管理控制:一种管理观点。西班牙:Gestión,2000年,安东尼,RN(1990年)。管理控制:框架,环境和过程。墨西哥:Ediciones Deusto,Avram,DO和Kühne,S。(2008)。从战略管理的角度实施负责任的商业行为:为奥地利中小企业制定框架。商业道德杂志,82(2),463.Bass,L.,Clements,P.,&Kazman,R.(1997)。实践中的软件架构。波士顿:艾迪生·韦斯利(Addison-Wesley)。贝克,K。(2000)。极限编程解释:拥抱变化。波士顿:Addison-Wesley。贝克,K。(2004)。极限编程说明:拥抱变化。阅读,马萨诸塞州。波士顿:Addison-Wesley。贝克,K。(2001年2月,2001年)。敏捷宣言。 Biffl,S.Freimut,B.&Laitenberger,O.于2011年6月25日从www.agilemani-festo.org检索。(2001)。研究软件开发中重新检查的成本效益。第23届软件工程国际会议论文集(ICSE'01)。 IEEE计算机协会,美国Biffl,S.和Gutjahr,W.(2001)。团队规模和缺陷检测技术对检验有效性的影响。第七届国际软件度量标准研讨会论文集(METRICS'01)。 IEEE计算机协会,美国Boehm,BW(1981)。软件工程经济学。纽约:PrenticeHall。Booch,G.,I。Jacobsen和J. Rumbaugh,(1999年)。 《 UML建模语言用户指南》。纽约:Addison-Wesley,Booch,G.,I.Jacobsen,and Rumbaugh,J.(2000年)。软件开发的统一过程。纽约:普伦蒂斯·霍尔(Prentice Hall),爱荷华州卡马乔(2012年)。关于Desoft公司培训课程费用表的建议。学位工作,哈瓦那大学会计学学士,古巴哈瓦那,卡诺斯J.,佩纳德斯MC和Letelier P.(2003年)。软件开发中的敏捷方法论。在第八届软件工程和数据库会议上发表。 。于2011年7月16日从http://201.249.238.203/portalopei/images/descargas/medesoft.pdf。政府技术中心检索。 (1998)。系统开发过程模型概述。于2011年3月5日从http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysde v.pdf.Chang,A.(2013)检索。国家软件公司Desoft的成本手册。古巴卡马圭: 2014年8月14日从http://cmw.desoft.cu.Colín,JG(2001)检索。成本会计。西班牙马德里:Mc Graw-Hill。Cueto Ible,E。和SánchezBatista,DA(2000)。物流运营商的新成本系统。未发表的硕士论文,卡马圭大学,卡马圭,古巴法根,缅因州(1976年),旨在减少程序开发中的错误的设计和代码检查。 IBM系统杂志,第15卷,第(3)期,第182-211页,加西亚·桑切斯,IM(2003年)。战略方向,管理控制和外部控制:朝着流程整合的方向发展。西班牙。巴塞罗那自治大学:Gestión2000.盖尔(1999)。会计和成本管理(第六版)。墨西哥墨西哥城:Mc Graw-Hill.Gilb,T.&Graham,D.(1993)。软件检查。波士顿:俄勒冈州冈萨雷斯-索兰的Addison-Wesley和JI的马丁·卡斯蒂利亚(2010)。古巴卡马圭大学战略科学和技术部门的控制指标的定义。管理挑战,4(2),79.冈萨雷斯,CD(2001)。成本会计。西班牙马德里:McGraw-Hill。Gordon,G。和James I.(1999)。软件质量保证手册。 :Prentice Hall,格雷罗,国会议员(2011)。 DesoftCamagüey的销售管理和控制系统。未发表的硕士学位论文,卡马圭大学,卡马圭,古巴HernándezHidalgo,D.,PérezAvila,JE和AriasHernández,JA(2005年)。在现代业务系统中的管理控制和管理角色。判决(8),第81-90页,Highsmith,J。(2002)。历史:敏捷宣言。于2011年1月4日从http://agilemanifesto.org/history.html检索。Jones,C.(1996)。应用软件测量。波士顿:Mc Graw-Hill。Larman,C.(1999)。 UML和模式。纽约:Prentice Hall,R。Lazo和R.González(2013)。基于软件产品线的通用开发模型。检索于2013年11月3日,来自http://cmw.desoft.cu.León,AP(2014)。 DesoftCamagüey工艺手册,。古巴卡马圭:取自2014年10月18日,来自http://cmw.desoft.cu.Lorino,P.(1993)。战略管理控制:基于活动的管理。西班牙巴塞罗那。:Marcombo,DLM lorenz,JK(1994)。面向对象的软件指标。波士顿:普伦蒂斯·霍尔(Prentice Hall),奥尔特加,公元(2001年)。成本会计。墨西哥:McGraw-Hill。Pressman,RS(1998)。软件工程。实用的方法。纽约:Mc Graw-Hill,Ralp Polimeni,FF(1989)。成本会计。管理决策的概念和应用。纽约:Mc Graw-Hill.RRHH,DN(2014)。模板P4 DesoftCamagüey。古巴卡马圭。 2014年2月21日从http://cmw.desoft.cu.Rumiantsev,A.(1975)中检索。政治经济学共产主义的类别和法律。古巴哈瓦那:社会科学,萨伊斯答(1993)。成本会计和管理会计。墨西哥墨西哥城:Mc Graw-Hill.Sanchez,A.Riesco,D.Montejano,G.和Peralta,M.(2005年)。质量指标和成本模型。根据软件行业的实际情况调整收益阿根廷:圣路易斯国立大学信息学系。于2011年7月16日从http://www.costossoftware.com检索。根据软件行业的实际情况调整收益阿根廷:圣路易斯国立大学信息学系。于2011年7月16日从http://www.costossoftware.com检索。根据软件行业的实际情况调整收益阿根廷:圣路易斯国立大学信息学系。于2011年7月16日从http://www.costossoftware.com检索。

该成本度量的确定涉及两个因素的评估和平均,即工作团队的部署和沟通。

下载原始文件

软件开发成本估算