首页 > 范文大全 > 正文

基于生命周期的软件成本管理

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于生命周期的软件成本管理范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:战略管理中的“成本优势”理念要求:管理者使用尽可能少的成本,获得尽可能多的价值。软件产品生命周期成本管理是战略成本管理的分支。通过具有经济意义的螺旋型生命周期模型建立起软件产品的价值链,从而构建有效的软件成本管理体系。

关键词:生命周期 软件成本 战略管理

中图分类号:TP31文献标识码:A文章编号:1006-4311(2011)14-0026-02

Cost Management of Software Based on Life Cycle

Zhang Lu

(The Tenth Research Institute of Telecommunications Technology,Xi'an 710061,China)

Abstract: The "cost advantage" concept in Strategic Management requires that the cost managers use cost as little as possible to get value as much as possible. The cost management of software product life-cycle is a branch of strategic cost management. The value chain of software product is built through the spiral life cycle model with economic sense in order to build effective cost management system of software.

Key words: life cycle;software costs;strategic management

0引言

传统成本管理的核心是降低产品成本。在新的竞争环境下,成本管理者必然会面临这样的问题:战略管理要求获得具有竞争优势的成本水平,如果成本管理者不能提供相关的方法和信息,则生产主管、销售主管就会建立自己的信息系统,如果这样,必然引起企业管理的混乱,最终导致企业总成本的增加,失去竞争优势。成本优势是战略管理的核心,但“降低成本”和“成本优势”是有所区别的。传统成本管理的“降低成本”就是指成本数值单方面的减少;战略管理的“成本优势”要求:使用尽可能少的成本,获得尽可能多的价值,从而为赚取目标利润提供尽可能好的基础。这里可以引入一个战略成本管理的定义:战略成本管理是指根据一个组织经营战略中的具体成本动因、内部价值链以及组织在一个更大价值链中(从产品的开发、资源的消耗到最终销售给客户)所处的位置制定决策[1]。

软件产品生命周期成本管理是战略成本管理的分支,从传统成本管理方法缺陷出发,分析软件工程特点,建立软件生命周期模型。由于软件产品的工程特点决定了,软件成本不能在生命周期的单个阶段归集,因此在生命周期模型基础上采用原型作为成本归集中心,并界定了软件生命周期与成本的确定关系。根据战略成本管理理论,软件产品生命周期成本管理通过具有经济意义的螺旋型生命周期模型建立起软件产品的价值链,从而构建有效的软件成本管理体系。

1基于生命周期的软件成本分析

软件是一个由逻辑要素组成的系统而不是一个由物理要素组成的系统[2]。因此,软件也是一种不能在传统的生产情景下生产的产品。本文所研究的对象是大型复杂的软件产品,而不是小型简单的软件。对于软件规模的分类一般采用千代码行数(KLOC)表示,≤50 KLOC为小型,50 KLOC<规模≤300 KLOC为中型,300 KLOC<规模≤1000 KLOC为大型,>1000 KLOC为特大型[7]。本文所研究的对象是规模大于300 KLOC的软件。这里引用一个生命周期成本的概念,以方便使用:在美国国家标准和技术研究院将(NIST,Hand2 book135:Life Cycle Costing Manual for the Federal Energy Management Program 1995年版)生命周期成本(Life Cycle Cost,简称为LCC)定义为“拥有、运行、维护修理和处置某一项目或项目系统所发生的成本在一段时期内的现值的总和”[3],对软件产品来说包括维护成本的现值是“全生命周期成本”,没有包括维护成本现值是“生命周期成本”。从软件工程的角度出发,软件产品首先存在一个基本生命周期模型:即线性模型。(图1)

线性模型反映了软件生命周期基本阶段的划分,是软件产品生命周期阶段的最直观的反映。但由于线性模型的划分过于简单不具有太多的实际操作价值且是单向模式已经不能适应现代复杂软件产品的要求,更多是只具有理论意义但不具有实际意义。Royce在1970年最早提出瀑布型的软件生命周期模型。(图2)

可以看出瀑布型软件生命周期模型与线性模型的区别在于不再是一个单向的过程,而是一个更为详细的往复的过程。瀑布型的两个基本前提:①为了获得成功的软件产品,无论如何必须实现每个阶段所有的子目标;②任何与模型不同的子目标实现顺序,都会使所构造的软件产品不是很成功。一个成功的软件产品指的是软件产品目标结构中的所有目标都达到期望的水平。在软件成本整个生命周期里的控制就是看所涉及的每个环节是否必要且每个必要环节是否很好的执行,从而减少资源的多余消耗。从瀑布型的两个基本前提看,瀑布型体现了一种经济性。瀑布型经济性重要体现还在于其模型的结构是一个循环往复一个不断增量的过程。这里就引出一个重要的概念:基线(baselines)[Thompson Ramo Wooldrige Inc,1973]。基线就是严格执行瀑布型的两个前提和阶段而开发出一个软件初始版本,由于严格执行了瀑布型的要求,这条基线是不能随意改动,只能在此基础上不断的通过“瀑布”往复迭代(增量),直至最终软件产品的完成。依照瀑布型来看,随着软件规模的不断增大,软件的迭代(增量)的次数也就越多,耗费的人工和资源也就越多,成本随之也就越大,就会出现一个软件成本独特的“规模不经济”现象。这与传统产品在生命周期里的特定阶段不断增加产量以期降低产品成本的“规模经济”正好相反,这也是研究软件成本的一个重要概念。通过瀑布型软件生命周期的经济性分析,可以得到这样的结论:在软件生命周期中,能及时发现软件失败风险,减少无经济意义的重复行为,是减少软件成本的关键,也是建立软件生命周期模型的经济性要求;或者说是,为避免软件不成功,而重复的行为是软件成本变化一个主要变量,它的变化影响着软件成本。随着软件规模的不断扩大,在软件生命周期早期发现失败风险也越来越困难,从而导致大型软件的成本不断攀升。如何在大型软件的生命周期早期发现软件风险成为软件成本控制的关键。在这样的背景下,由瀑布型演进出螺旋型软件生命周期模型(Spiral Model)[Boehm,1988]。

螺旋型是遵从瀑布型的思路:即需求->架构->设计->开发->测试。螺旋型的特点在于整个生命周期是规模和风险双因素驱动。通过将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险,控制软件成本。螺旋型的每一次迭代都包含了以下六个步骤:①决定目标;②识别和解决风险;③评估技术与替代解决方案;④开发本次迭代的原型和验证迭代产出的正确性;⑤准备下一次迭代;⑥提交下一次迭代方案。随着项目成本投入不断增加,软件成本也就越接近经济学成本。同时,螺旋型也便于加强项目的成本控制。在每次迭代结束后都需要对产出的原型进行评估和验证,当发现无法继续进行下去时可以及早的终止项目,避免成本的浪费。螺旋型复杂之处在于尽责、专心和知识渊博的管理行为。因为对于每一次迭代都要制定出清晰的目标,分析出相关的关键风险和计划中可以验证和测试的原型并不是一件容易的事情。螺旋型的每一次迭代一般会侧重瀑布模型中的某一个或两个阶段,如第二次迭代重点是需求,第三次迭代是总体设计和后续设计开发计划等。可以做这样的一个形象比较来区别理解瀑布型和螺旋型,瀑布型就好像是一段楼梯,软件开发过程就好像是走楼梯;螺旋形类似DNA的结构,每一段都有大体相似的结构,但总会有各自的重点,正是这些重点部分反映出不同特性。

螺旋型的软件生命周期模型,是从软件工程和经济的双重角度设计的。他注重在软件风险在生命周期的早期的发现,以期达到控制由于软件失败而重复增加成本的变量,另一方面由于螺旋型也采用软件工程的基线思想也约束了软件规模变量。因此,螺旋型是针对大型软件成本控制的生命周期的经济模型。需要指出的是,螺旋型是基于狭义生命周期的基础,不是以“全生命周期”为基础,即不包含前期调查和软件销售以后的生命阶段。为了进一步阐明软件生命周期与成本之间的确定关系,本文设计了螺旋型软件生命周期立体模型并加以说明。

图4中建立的螺旋型软件生命周期立体模型可以理解为软件企业内部的价值链模型,这是因为螺旋型是通过对软件产品生命周期的经济评价而得到的。价值链的概念是迈克尔・波特在《竞争优势》中提出的,价值链原本的含义是指企业从创建到投入经营所经历的一系列环节和活动,描述的是企业内部产品价值形成过程;目前普遍的认识是,价值链是指企业的一系列职能,企业通过这些职能逐步使其产品或服务具有有用性[1]。在图中可以看到软件产品在螺旋中是动态的,每一个螺旋迭代都可以得到一个原型,随着迭代次数的增加软件规模和风险也在增加。由于,软件产品每一阶段都包含在不同层次的原型中。因此,不能以软件生命周期阶段作为成本归集的中心,而应以不同时期的原型作为成本归集的中心。这样既符合大型软件的工程特点,也可以与准则相衔接。无论是美国的准则,还是国内新准则,都将软件成本分为费用化成本和资本化成本。我国第6号准则规定了开发阶段资本化的条件:①完成该无形资产以使其能够使用或出售在技术具有可行性;②具有完成该无形资产并使用或出售的意图;③无形资产产生经济利益的方式;④有足够的技术、财务资源和其他资源支持,以完成无形资产的开发,并有能力使用或出售该无形资产;⑤归属该无形资产开发阶段的支出能够可靠地计量[6]。在螺旋型中由于采取规模与风险双重管理,一旦产生出稳定原型(即基线),是具有稳定性和可计量性,且在第一次螺旋中重点是需求分析等文档的设计,因此,可以认定将原型1(具备主要功能与基线)作为成本资本化和费用化的分界标志。记得一位美国学者曾针对软件成本资本化与费用化的实务操作指出:“如果企业要想尽快将成本费用资本化,那么就必须尽快获得稳定的原型。”因此,螺旋型软件生命周期模型不单是软件企业战略成本管理的主体,也是软件企业成本核算与新准则衔接的有效途径。

2本文主要结论

通过以上分析,可以得到如下结论:①螺旋型的软件生命周期模型具有“经济性”;②基线和原型对于区分确认软件成本的资本化与费用化具有决定意义;③软件成本的源动因来自于规模和风险;④软件成本的有效管理在于采取具有经济意义的生命周期模型对规模和风险加以约束。

参考文献:

[1]乐艳芬.战略成本管理与企业竞争优势[M].上海:复旦大学出版社 2007:10,12.

[2]Roger S.PressmanSoftware Engineering-a practitioner's approach[M].fifth editon,Mc Graw Hill 2001:6,21.

[3]束庆,张旭.生命周期评价和生命周期成本分析的整合方法研究[J].同济大学学报(社会科学版).2003(8):82.

[4]鲁晓东,李育龙,杨健.JSP软件工程案例精解[M].北京:电子工业出版社,2005:5,8.

[5]贝瑞.贝姆.软件工程经济学[M].北京:机械工业出版社,2004:26,28.

[6]企业会计准则讲解编写组.企业会计准则讲解[M].北京:企业管理出版社,2007:68.

[7]周海玲,孙涌.关于基本COCOMO模型参数校准的探讨[J].微电子学与计算机,2005(12):59.