资源描述
国家软件与集成电路公共服务平台(成都分中心)软件开发成本管理研究 目 录第1章绪论61.1研究背景61.1.1软件成本构成61.1.2成本管理必要性71.1.3价值工程与成本管理71.2价值工程应用现状81.2.1国外应用现状81.2.2国内应用现状91.2.3国内外研究现状111.2.4当前发展趋势131.3软件成本管理存在的主要问题141.4研究意义15第2章相关理论及概念162.1软件成本管理162.1.1软件成本要素162.1.2软件成本控制162.2价值工程282.2.1基本概念282.2.2基本原理312.2.3工作程序332.2.4工作内容342.3相关利益者382.3.1基本概念382.3.2群体分类402.3.3相关利益者价值体系41第3章需求阶段中的价值工程应用493.1需求开发中的应用493.2需求管理中的应用503.3需求验证中的应用513.3.1功能定义与功能整理513.3.2功能评价53第4章软件开发成本控制流程554.1用户需求确定554.2可交付物确定564.3风险管理564.4风险对应措施58第5章结论与展望605.1结论605.2展望60第6章参考文献61摘 要软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效地组织、实施、控制、跟踪、分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润,实现客户、公司、员工三赢,获得更稳定的客户群、更多的公司利润和更稳定的项目队伍。但是,当前国内软件企业在项目成本管理方面比较薄弱,项目经常出现有订单无利润、客户不满意、员工有怨言等现象。 项目人员常常在接到软件项目时没有认真做好项目的需求分析,没有认真了解客户的真正需求,为了把项目拿下来,口头上答应客户的一切要求,并没有在合同里把条款细化、量化。而往往客户的需求也是停留在比较笼统的概念上,很难明确化,实际操作起来时,项目不能满足客户的要求,客户就会不断提出新的要求,这时候要更改项目就必须付出很高的代价。需求阶段是软件系统开发生命周期的初始阶段,其最终结果是得到关于用户需求的准确、全面、形式化的需求描述。需求阶段的质量是整个软件开发的关键,良好的需求分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本。本文针对目前软件项目需求阶段中存在的问题,结合价值工程的原理和方法,研究和探讨了软件项目需求阶段应用价值工程的方法和步骤,具体包括三部分:第一部分(第一章)研究意义与理论综述。首先介绍了软件成本管理过程、成本管理面临的问题、成本管理必要性、价值过程与成本管理、价值过程应用现状;然后介绍了本文的理论基础,包括价值工程基本理论、成本估算理论和项目利益相关者基本理论。第三部分(第三章)软件项目利益相关者价值体系的建立。首先介绍了软件项目利益相关者分析的步骤及主要利益相关者分类;然后从软件项目利益相关者的角度出发,结合软件质量的三大评价模型,分析得出软件项目利益相关者价值体系,为后文价值工程在需求阶段的应用奠定基础。 第三部分(第三章)价值工程在需求阶段中的应用。主要介绍了对需求阶段的内容进行功能评价、价值分析的具体方法和步骤。关键词:软件项目 成本管理 价值工程Abstract The software item cost management makes use of a company decided resources according to the circumstance of the business enterprise and the concrete request of the item, under the situation that the progress, quality that promises item attains customers satisfaction, to the software item cost carry on organization availably, implementation, control, follow, analysis and investigate etc. a series management activity, with maximum limit lower item cost, raise item profits, carry out customer, company and employee three win, acquire more customers, more company profited of stability with more the item troops of stability. But, at present local software business enterprise at item cost management weaker, the item usually appears order to have no profits, customer dissatisfaction; the employee has phenomena like complaint, etc. The item personnel usually didnt hard work well the need analysis of the item while receiving software item, didnt hard understand the customers real need for the sake of making item taking down and orally promised the customers whole requests, dont turn thin item in the contract, the quantity turn. And usually the customers need is to stay around more general concept up, very difficult definitely turn, the item cannot satisfy customers request while physically operating, customer the meeting continuously make a new request, by this time want to change item and then have to pay a very high price. The need stage is the software system development life cycle of the beginning start a stage, it finally as a result is get demanding concerning the customer of accurate, overall, formal of need description. The quality of need stage is the whole key that the software develops, the good need analytical activity contributes to avoiding or as early as possible picks and gets rid of an earlier period mistake, raises software rate of production thus and lowers development cost. This text aims at currently the existent problem in the software item need stage and combines the principle and method of being worth of the engineering, research and study the software item need stage apply the method and step of being worth of the engineering and concretely include three parts: The first part (chapter1) studies meaning and theory overview. Introduced first the software cost management process, cost management faces of the problem, cost manage a necessity, be worth of a process and cost management, value process application present condition; Then introduced textual theory foundation, included to be worth of engineering basic theory, cost estimating a basic theory of related of theory and item benefits. The second part(chapter 2) software item benefits the related is worth of the establishment of system. Introducing a software item benefits first is related analytical step and main benefits the related categorize; Then the benefits is related from the software item of the angle set out and combined three big evaluation models of software quality, analytical get the software item benefits is related value system, for empress the text is worth of engineering laying foundation in the application of need stage.The third part (chapter 3) is worth of engineerings application in the need stage. The contents that mainly introduced to the need stage carries on the concrete method and step of function evaluation, value analysis.Key words: software project cost management value engineering第1章 绪论1.1 研究背景软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效地组织、实施、控制、跟踪、分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润,实现客户、公司、员工三赢,获得更稳定的客户群、更多的公司利润和更稳定的项目队伍。但是,当前国内软件企业在项目成本管理方面比较薄弱,项目经常出现有订单无利润、客户不满意、员工有怨言等现象。 项目人员常常在接到软件项目时没有认真做好项目的需求分析,没有认真了解客户的真正需求,为了把项目拿下来,口头上统统答应客户的要求,并没有在合同里把条款细化、量化。而往往客户的需求也是停留在比较笼统的概念上,很难明确化,实际操作起来时,项目不能满足客户的要求,客户就会不断提出新的要求,这时候要更改项目就必须付出很高的成本代价。由于客户的需求不断变化,使得工作内容和工作量不断变化。一旦发生变化,企业就追加项目预算,预算频频变更,等到项目结束时,实际成本和初始计划偏离很大。1.1.1 软件成本构成从软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成,如图1-1所示。1、开发成本开发成本由软件开发成本、硬件成本和其它成本组成,具体包括:(1)系统软件的分析/设计费用(含系统调研、需求分析、系统分析);(2)实施费用(含编程/调试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用。2、维护成本(1)运行费用:含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费;(2)管理费:含审计费、系统服务费、行政管理费;(3)维护费:含纠错性维护费用及适应性维护费用。图1-1 软件成本构成1.1.2 成本管理必要性企业从事生产经营的目的是盈利,实现利润的最大化。对于现在的大部分企业来说,利润微小的同时还要实现快速扩张,不实行低成本运营就难以生存,可谓成本决定存亡。传统的成本管理是以企业是否节约为依据,片面从降低成本乃至力求避免某些费用的发生入手,强调节约和节省。而现代企业则认为,以节约成本控制基本理念的企业只是土财主式的企业,他们除了盘剥员工和在原材料上大打折扣以外,没有什么过人之处。企业要想有长期效益,就只能从战略的高度来实施成本控制。换句话来说,不是要削减成本,而是要提高生产力、缩短生产周期、增加产量并确保产品质量。公式一:价格=成本+利润,称之为成本主义,以这个观念经营企业肯定要垮台。公式二:利润=价格-成本,它的经济意义是价格由市场决定,企业要获得利润就要学会降低成本。如何管理项目成本是一项系统工程,贯穿于企业整个经营过程,是衡量企业生产耗费和供给的尺度,是决定价格的基础;项目成本体现了企业管理的综合水平,是提高企业竞争能力、应变能力和开拓能力的关键。加强项目成本管理是降低成本、提高企业经济效益的基本途径,是企业经营管理中的重要手段。企业要想在强手如林的竞争环境中立于不败之地,实现近期求生存、长期谋发展的目标,就必须强化成本管理,以适应市场经济发展的要求。1.1.3 价值工程与成本管理国外有研究发现,在需求阶段发现一个错误,平均仅需要花1小时修复,但是在系统测试时发现的错误需要花5-17个小时来修复。检测需求规格说明中的错误所采取的任何措施都将为项目节省相当多的时间和金钱。为防止错误而花费l元将可以为你修补错误节省3-10元。更好的需求将会带来更好的产品质量和更大的客户满意度,这可以降低产品生存期中的维护、增强和客户支持的成本。在需求质量上的投资可以使项目节省更多的资金。在项目的前期对项目价值进行管理所产生的影响是决定性的,基本上决定了项目的整体价值。在这个阶段要确定客户及利益相关者价值的内容、大小与管理方式。通过大量的调研工作,在对客户和项目利益相关者需求进行识别的基础上,平衡他们之间在利益上的冲突,以实现项目利益相关者价值的最大化,从而降低项目变更风险,控制项目开发成本。1.2 价值工程应用现状1.2.1 国外应用现状1947年,美国通用电气的麦尔斯初步创立价值工程理论,它是一门致力于研究对象的功能和成本合理匹配的技术。1956年,价值工程理论推广到船舶工业和军事工业。1959年,宇航部门把价值工程理论应用于阿波罗登月计划。20世纪60年代,价值工程理论在其他部门迅速得到推广。到20世纪70年代初,它已运用到各行各业,都取得了比较显著的经济效益。价值工程理论不仅在美国得到广泛的应用,而且在世界许多国家也得到积极引进和推广。据1975年日本对四个行业的100家公司的抽样调查,价值工程理论的平均实施率达90%,现在日本应用价值工程理论的范围和成绩,均已超过美国而居世界首位。20世纪60年代开始,欧洲各国相继引进价值工程理论管理技术,也取得了很大的成绩。除上述国家外,在巴西、澳大利亚、土耳其、墨西哥、印度、菲律宾、沙特阿拉伯、南非等国家,价值工程理论的应用也比较广泛。通过分析总结,目前价值工程在国外的应用主要集中在以下几个方面:1、价值工程在建筑业中的应用价值工程在国外主要应用于建筑行业,且取得很好的效果。价值工程的原理和方法适应建筑业的发展需要,能够降低工程成本,最大限度地保证业主投资利益。尤其在美国,价值工程基本上成为控制项目造价的手段。它一般是在设计进行到35%的阶段(相当于中国的初步设计阶段)由项目外部的专家构成价值工作组,对项目的高成本区域提出一些低成本的可比方案,优化设计,提高项目的价值系数。2、价值工程在制造业中的应用上世纪60年代,价值工程在西欧首先应用于英国的制造业。英国在引入价值工程理念之后,发现美国的方法不能在英国加以贯彻实施。因为英国当时已有完善的工料测量师体系负责降低成本的相关工作,美国式成本导向的价值工程没有单独存在的必要,所以价值工程(VE)被发展成符合其本国国情的价值管理(VM)。价值管理在时间和研究内容的范围上拓宽了,由设计、施工阶段向前延伸到项目决策阶段,向后延伸到项目的运营阶段,研究内容包括对项目功能和目标的分析、评价和论证。因此,价值管理是英国企业对价值工程的继承与发展。从目前的应用情况来看,价值工程在国外制造业中主要用于产品改革,通过功能成本分析和方案的创造、实施,用最低的寿命周期成本,可靠地实现用户所要求的功能,成效比较显著。3、价值工程在其它行业中的应用从本质上来说,价值工程可用于具有资源消耗的一切工作领域。无论是工业生产,还是日常生活,都可有针对性地施用其“妙法”,力图用最低的消耗,实现预定的目的。20世纪90年代以来,国外价值工程专家与学者开始运用价值工程的思想、观念、原理和分析方法,去研究、处理和解决管理中的有关问题,并取得了非常大的效果。价值工程应用的领域已经延伸到政府、国防、文教、卫生、公用事业和公共管理的领域。1.2.2 国内应用现状我国推广应用价值工程得到国家政府部门和各方面的倡导。1981年第一机械工业部颁发了关于积极推行价值工程的通知,有力地促进了价值工程在机械行业的应用和研究。随后许多行业在国务院相关部门引导下普及推广了价值工程。1984年国家经委就把价值工程列为在全国推广的现代化管理方法之一,还被列为“八五”期间重点培训的现代化管理方法。在1987年,国家标准局颁布了国家标准价值工程基本术语和一般工作程序(GB8223-87)。这个标准对规范价值工程活动,指导价值工程理论研究和推广应用发挥了重要作用。这些政府导向的做法为价值工程在国内的推广普及起到了积极作用。目前价值工程在我国的应用主要集中在以下几个方面:1、价值工程在工业中的应用价值工程在我国的应用主要集中在工业行业中的普通机械制造业和专用设备制造业中。现阶段主要应用在产品功能的研究、开发以及项目设计方案的优化选用上,内容包括:新产品开发,老产品改进,质量改进,工艺改进,原材料和零件材料替代,零配件及产品配套件,供应件采购以及提高设备效率,能源利用率和设备利用率,外协件的供应管理分析,产品包装分析,广告、推销分析等方面。2、价值工程在建筑业中的应用我国建筑工程领域的价值工程应用尚处于起步阶段,其应用领域主要集中在优化建筑材料和施工设备,工艺流程的改进等较低的层次上,而在工程方案的选择、工程设计的优化、工程建设的成本控制和工程招标与投标、建筑加固等方面应用很小。在建筑项目生命周期的各个阶段,价值工程都有其相应的应用方式,具体如下:(1)价值工程在决策阶段的应用:将价值工程向前延伸到项目决策阶段,价值工程就成为价值管理(VM)。在早期对项目进行价值管理研究,有利于业主进行正确的决策。由于前期的决策对项目经济性的影响大于后期的决策,即越是前期的决策对项目投资的影响程度越大。同时由于在早期进行,项目的投入少,按照价值管理提案变更目标或进行设计修改的成本就很低,所以VM研究越早进行越是有利有效,即决策阶段比设计阶段更有利、有效。 (2) 价值工程在设计阶段的应用:由建筑经济学的知识可得,建设项目的成本节约最大可能阶段就是在建筑设计阶段。在工程设计阶段应用价值工程能够更好地满足社会需要,更好地控制成本,大幅度提高投资经济效益。在初步设计阶段应用价值工程的主要任务是进行方案创造,创造方案并进行优选,寻找价值最大化的方案。(3)价值工程在施工阶段的应用:价值工程原理主要应用在施工队的选择、施工机械设备、材料的选择、转场方式和临建方案的选择和项目现场管理上,以及竣工交付等施工工序的优化上。3、价值工程在其它领域中的应用近年来,国内价值工程专家与学者也开始运用价值工程的思想、原理和分析方法,研究和解决管理中的有关问题,其应用研究领域进一步延伸,已经涉及到政府、国防、文教、卫生、公用事业和公共管理等领域。尽管国内已形成了价值工程的应用体系,积累了丰富的理论和实践经验,同时也取得了很大的经济效益。但随着国内企业改革的深化,市场经济在全社会的推行,特别是在加入WTO后,市场竞争日益加剧,需要进一步提高价值工程在各行各业的应用水平,用以增强行业竞争力。随着社会的进步,科学技术的突飞猛进,新行业也不断产生,如电子信息产业、生物工程行业、新材料、新能源开发应用的新行业等。这些新兴行业在社会经济中发挥日益重要的作用,需要引入价值工程来增效节能。1.2.3 国内外研究现状价值工程作为一门现代管理技术,具有很强的实用性和可操作性,但从目前的研究现状来看,在更高层次上则研究不足,理论深度不够,思维空间狭窄,同时,面对各种不同的复杂事物,数学模式单一,不利于更好、更有力地发挥它在促进社会生产力中的作用。事实上,许多非工程类社会系统同样希望以最少的代价来取得最大的功能效应,同样可以进行价值分析。以最少的代价获取最优的功能不仅是价值工程的基本思想,也是许多学科的基本思想。SAVE(美国价值工程师协会)在1996年6月9日的芝加哥年会上,更名为 SAVE International(美国国际价值工程师协会),提出的口号是:The Value Society价值的协会。新会号和新口号旨在面向世界、面向所有学科的价值领域,与所有以提高价值为目的的组织或个人团结协作,这标志着价值工程开始全面走向世界、全面走向其它学科领域。价值工程要取得重大发展,必须突破原有的理论框架和思维空间,以更宽阔的视野和更一般的意义来研究价值工程问题,可以从四个方面来拓展价值工程的理论框架和思维空间:1丰富“功能”的内涵,扩展“功能”的外延,对不同形式的功能进行辩证分析和统一度量。 “功能”,是指事物的特性对于目标对象的某一特定目的所能产生的效用。目前的价值工程一般只对功能进行物理意义上的分析和度量,进一步可以进行经济学意义上的分析和度量,而不能进行价值意义上的分析和度量,因而对不同形式的功能难以进行分析和比较,缺乏统一的度量标准、度量方法和度量单位。虽然所有事物的功能都有一个或若干个直接或间接的目标对象,但最终的目标对象是人类主体;而人类对功能需求的目的,归根结蒂是维持和发展自身的本质力量(对于个人来说就是发展个体的劳动能力,对于社会来说就是发展社会生产力),即任何功能的最终效用就是维持和发展自身的本质力量,这是功能的本质或核心,因此任何具体的功能在本质上都是直接或间接的使用价值。从上述的分析可以看出,任何形式的功能或使用价值可以从价值论的角度用统一的度量标准、度量方法和度量单位进行分析和度量,使功能的外延从物理意义上的功能扩展到社会经济、政治和文化等的功能。2丰富“成本”的内涵,扩展“成本”的形式,对所有形式的成本能够进行辩证分析和统一度量。事物任何功能的形成、维持和发展都以一定的成本为前提条件。人类社会为获取功能而付出的“成本”,主要体现为人力、物力和财力资源的投入。价值工程通常只能对具有经济和资源意义上的成本进行分析与计度量,度量单位通常是货币,但对那些非经济类型的成本却难以进行分析和度量,因而受到很大局限。而从成本的内涵和外延分析可以看出,任何形式的成本最终都是劳动价值或使用价值的成本,都可以从价值论的角度用统一的度量标准、度量方法和度量单位进行分析和度量。这样,价值工程可以对众多复杂的、多种形式的成本进行客观的分析和度量,使成本的外延从经济和资源意义上的成本扩展到社会经济、政治和文化等的成本。3丰富“价值”的内涵,把时间因素纳入价值的内涵之中,对众多的事物或系统的价值进行辩证分析和统一度量。在价值工程中,“价值”是功能与耗费的比值,只能反映事物或系统在某一确定时间内投入产出的相对量,而不能反映这个事物或系统的价值收益率(即价值率),不能反映其在单位时间内的投入产出效率。进一步分析可以发现,事物或系统之间的竞争并不是对“投入产出比”大小的竞争,而是对价值率大小的竞争,事物或系统的价值率越大,其发展速度就越迅猛,即:各种价值资源的分配方向和流动速度是依据价值率大小进行的,价值率越大的事物或系统,价值资源向其分配的方向就越明确,向其流动的速度也就越快。比较事物或系统价值的意义,不应依据投入产出比,而应依据事物或系统的投入产出效率或价值率。只有当功能与耗费都与时间成线性关系时,“价值率”才等价于系统的投入产出比,才等价于传统价值工程对于价值的定义(即功能与耗费的比值)。对“价值”的内涵进行扩展,可以帮助我们对众多形式的、非线性的、动态的、多层次的物质系统和社会人文系统的价值特性进行分析和统一度量,从而大大提高价值工程的客观性、精确性和应用范围。4丰富“工程”的内涵,扩展“工程”的外延,对不同社会领域的“工程”系统进行辩证分析和统一度量。科学技术发展的巨大而深刻的影响,使“工程”一词广泛应用于经济、政治和文化等非物理领域,“系统工程”一词被泛化了(当然,那些赶时髦和滥用的套话、大话不在此列)。而价值工程通常以一般的物质系统(特别是制造业及工程系统)为研究对象,很少涉及社会的经济、政治、文化等领域。如今,应该广泛地理解“工程”的内涵,不应把它局限于“人工制作的物质系统”,而应该把它扩展为“一切为人类社会的一定价值目的服务的物质系统与非物质系统”。事实上,许多社会事物如社会组织、社会团体、制度、文化传统、伦理道德、科学、教育、法律等都有其特定的功能特性;同时,为建立、维持、发展、传播和运行这些社会事物需要耗费一定的人力、物力和财力,即任何事物都有它特定的功能价值,同时都有它的成本与耗费,因而可以进行价值分析。对“工程”的内涵进行扩展,可以帮助我们对各种类型的经济、政治和文化系统的价值特性进行分析比较和统一度量,从而进一步扩展价值工程的应用范围。1.2.4 当前发展趋势近年来随着全球化浪潮的兴起,价值工程在全球范围内呈现出较为一致的发展趋势,具体体现在下述三个方面:1、形成价值导向的统一理念价值工程在全球范围内形成了价值导向的统一理念。由于受到“91l”事件的影响,各国价值工程的工作重心逐渐向提供最佳功能的产品上转移。2002年5月4-9日在美国召开的美国价值工程师协会(SAVE)2002国际年会以“工程向提升价值转变为主题也体现出这一趋势。2、着重应用于建筑业价值工程在被广泛地引入各行各业的同时,体现出着重应用于建筑业的趋势。目前价值工程己与项目管理紧密结合,成为降低成本、提升项目价值的重要推进力量。2002年SAVE国际年会以建筑业为主并专设交通工程论坛。而在日本,2001年的价值工程应用活动中,有70%来自于建筑行业。3、与信息技术相结合随着计算机技术和全球互联网的迅猛发展,价值工程技术开始与信息技术相结合。随着社会需求的日益提高,一方面价值工程的研究对象规模逐渐扩大、过程只益复杂;另一方面现实情况又要求价值管理中研究的时间必须缩短,研究的效率和方式必须得到提升。因此,利用电子信息技术和相关应用软件,打破传统的时间和空间概念,有效地加快信息的交流和传输显得非常必要。1.3软件成本管理存在的主要问题随着信息技术的飞速发展,软件企业在高新技术产业中扮演着越来越重要的角色。软件企业进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,软件企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。软件项目管理是软件企业提高竞争力的重要手段。成本管理系统是软件项目管理系统的一个子课题。有效的软件项目管理和成本控制可以更好的为软件企业积蓄财力,可以增强软件企业的竞争力。因此,软件项目管理以及成本控制成为软件项目开发中最重要的核心问题之一。就软件成本管理当前存在的问题来看,一些软件企业实施软件项目管理的许多技术还很不成熟,只有少数大型软件企业,依据标准规范以及一些项目管理辅助工具,实施相对规范的软件项目管理,不少企业在项目成本管理方面的意识还比较薄弱,经常出现项目进度延迟、成本超支的现象。在传统的项目管理软件中,一般都是进度安排和跟踪控制,大多都不能进行软件成本估计,缺乏事先成本控制,部分项目管理软件虽然具有一些成本管理的功能,但这些项目管理软件多数是面向工程项目来设计的,真正面向软件项目的项目管理软件很少,由于软件项目自身的特殊性,导致了在应用工程项目管理软件来管理软件项目时会出现很多的问题。成本管理在实践上主要体现在项目管理软件中,但是当前的项目管理软件并不能满足成本管理的需要。软件项目管理工具应该能够和成本估计相互协调,不仅利用估计者的数据,还应该能够充分利用历史数据库的数据。当前的软件项目管理工具存在有如下几点不足:1.不能进行有效的软件成本估计2.缺乏事先成本控制3.不能和估计数据自动化协调4.不能有效地利用历史数据库中的数据软件项目管理的对象是软件,它所涉及的范围覆盖了整个软件工程过程。从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段以及安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。要想对软件项目成本进行有效的管理,必须对软件项目开发的各阶段进行深入的分析,在开发过程中除了先进的技术和开发方法,还有一整套的管理方法,侧重于软件企业在软件开发过程中对计划安排、项目跟踪、资源分配和成本控制等的管理方式。目前已经有很多软件开发工具、软件开发方法以及软件管理方面的技术成果,但在软件开发过程中还是暴露出许多问题,比如开发时间拖延、开发费用增加等。为了开发出更好的软件,不仅需要成熟的技术,还需要应用好的软件管理过程。1.4研究意义在软件项目需求阶段应用价值工程原理,有助于探索提高软件项目需求阶段质量的方法,从而减少软件开发中的错误和修复错误的费用,缩短软件开发时间,从而大大降低软件开发成本。第2章 相关理论及概念2.1 软件成本管理2.1.1 软件成本要素软件成本的要素构成有工作量(人力成本)、时间进度、风险成本和其他成本等。成本管理是软件项目管理的一个主要内容。软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效的组织、实施、控制、跟踪、分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润。工作量(人力成本)是对开发软件产品所需的人力。这是任何软件项目所共有的主要成本。工作量估算是软件项目管理中最难但也是最重要的活动之一。如果已知工作量的估算,进度估算就变的容易多了。时间进度是项目开始日期到项目结束日期之间的一个时间段。进度估算是项目计划和控制的基础,倘若用户要求在更短的时间内得到软件,则会影响到总成本的评估。风险成本则是一种相对不易事先精确估算的成本要素之一,但又或多或少存在于各个软件项目中。例如软件最后能否顺利实现客户要求的功能,是否存在无法攻克的技术难题等。若要有效控制风险成本带来的影响,则需对所开发的软件项目有详细、深入的评估,找出可能存在的风险点,并判断是否在可控的范围之内。其他成本包括出差费用、通讯工具、用于项目的培训、项目团队所使用的软硬件等。以上这些成本共同构成软件工程的总成本。2.1.2 软件成本控制项目特点软件开发不同于其他产品的制造,软件项目与其他项目相比,有很大的独特性。综合来看,软件项目具有如下的特点:1、软件项目的产品是由许多人共同完成的高强度智力劳动的结晶,是建立在知识、经验和智慧基础上的具有独创性的产物。软件开发不需要使用大量的物质资源,而主要依靠的是人力资源。软件开发的整个过程主要是设计过程,没有制造过程。因此软件产业兼有知识密集型产业和人力密集型产业的特点,其研发成本高。2、软件项目的产品是无形的,软件开发的产品只是程序代码和技术文件,并没有其它的物质结果。3、软件项目的产品批量生产相应简单,其复制成本同其开发成本比较,几乎可以忽略不计。软件开发成本占软件成本的主要部分。4、软件项目的产品一般没有有形损耗,仅有无形损耗。软件产品的维护,一是由于软件自身的复杂性,特别是为了对运行中新发现的隐藏错误进行改正性维护;二是由于软件对其硬、软件环境有依赖性。硬、软环境改变时,软件要进行适应性维护;三是由于需求的变化,要求增强软件功能和提高软件性能,软件要进行完善性维护。因此,软件的维护在其生命周期中占有重要地位。同时,软件的维护过程也是软件价值的增值过程。成本管理框架图2-1 成本管理框架成本管理过程项目成本管理包含所有为了保证项目在预算内完成的过程。一般包括下述过程;1、资源计划:为了完成项目活动所需要的资源各类(人员、硬件设备、软件工具等)及其数量的一种安排。2、成本估算:开发一个完成项目活动所需要资源的大概成本估计。在传统的项目管理中,一般依靠个人经验对被分解后较小的活动进行估计,然后求其和为总体成本。成本估算是成本管理中的主要部分,后面章节将详细介绍成本估算的相关技术。3、成本预算:分配整体成本到每一个工作任务。预算可以采用两种方法:其一是自上而下法,在项目总成本之内按照每一工作包的相关工作范围来考察,按项目总成本的一定比例分到各个工作包中;其二是自下而上法,由每个工作包的具体负责人进行预算估计,然后再进行平衡和调整。4、成本控制:控制项目预算的变更。最常用的方法是挣值法,此方法根据进度的多少衡量成本的开支,能够准确判断项目的状态,但是判断需要的数据来源目前仍然是书面报告或个人主观观察数据。软件成本管理基本上可以用估计和控制来概括,首先对软件的成本进行估计,形成项目成本管理计划,在项目进行过程中,对项目实施控制使其按照计划进行。成本估算步骤软件成本估算并不是简单地通过代入公式计算出相关数据就结束了,而是一个完整的项目活动过程,应该在相应的计划和控制下进行。软件成本估算主要有以下几个步骤:1、建立目标一个软件项目要成功,就是要使系统能够在预计时间内和在预算范围内交付,并且能满足需求和质量的要求,这就需要设立目标。要设立合理的目标,切合实际的成本估算是至关重要的。成本估算是在软件项目各个不同的阶段进行的,结合软件生命周期来看,在每个阶段估算的动机和方法都是不同的。在软件生命周期前期,成本估算的目标是充分利用和挖掘有限的信息和数据,尽可能快速准确地得出估算结果,以帮助管理者进行分析和项目决策。当项目的策划和实现进行到更详细的层次时,确认早期的概要估算,同时进行更高层次的详细估算,并可以对较小的工作构件进行更详细的估算。软件成本估算的准确性随着软件项目生命周期的发展越来越高,这是因为随着软件项目向后期发展,各种相关的信息和数据将越来越明确和清晰。但可以看出,在软件开发早期阶段,软件成本的估算准确性是最低的,这主要是因为在项目早期阶段许多因素都还不确定,所能获得的信息也很模糊。本研究侧重的就是在软件项目生命周期较前阶段的成本估算,因为这一阶段的估算难度最大,最值得改进,对于软件项目管理者进行决策和工作计划的制定也最有帮助。2、计划所需的数据与资源软件成本估算活动本身也可以被看作是一个项目,仓促而毫无准备的估算必然会导致该项目的失败。因此,事先制定一个包括估算目的、产品进度与计划、责任、估算过程、所需资源、假设条件等内容的简要估算计划,将有助于软件成本估算更加有效地开展。另外,几乎所有的估算方法都需要以前项目的有关信息,因此历史数据的准备也是进行软件成本估算的必备条件。3、准确说明软件需求只有对估算对象有充分的了解,才能很好地估算它们的成本。因此,成本估算需要有尽可能明确的软件说明书,对于软件的功能、结构、性能等有明确的描述。说明书在描述中的量化程度越高,越有利于成本估算的精确度。但在项目开发早期阶段,这很难完全做到。4、尽可能详细准确地估算估算应尽量与成本估算目标保持一致,避免不必要的工作量浪费。估计过高可能导致项目花掉更多的时间,以及人员分配超出需要,增加不必要的管理开销。估计过低,可能会导致员工通过低标准的工作来响应紧迫的交付期,对软件质量造成严重影响。通常软件成本估算误差在20的范围内是可以接受的。5、估算方法选择软件成本估算方法有很多,每种方法各有其优缺点,将在2.2.3详细介绍。6、跟进从项目启动开始,就必须收集其实际成本与进展方面的数据。由于软件成本估算的输入是不完全的,每一个新阶段都比前一阶段有更完整、明确的输入信息,因此可以通过新获得的信息更新成本估算,为下一阶段的项目管理提供更准确的基础。同时,估算方法是不完善的,为了得到改进,需要将估算结果和实际值进行比较,来改善估算方法。此外,软件项目是不断变化发展的,应该及时识别和响应变化发展的情况,对估算做出更新。具体来说,每个阶段都应根据前一阶段的估算来评审和发布成本计划。当计划进行到某一里程碑时,将实际结果与计划结果相比较,如果相差很大,应及时分析原因,进行调整。通过成本绩效分析和跟进将预算和实际成本进行对比,把预算成本、实际成本和工作量进度联系起来,考虑实际成本和工作量是否匹配。如果实际成本和实际进度不匹配则重新调整成本计划,采取必要的措施防止项目成本失去控制。7、应用得出估算结果后,应在工作量估算的基础上,进行进一步的成本分析和管理。根据估算结果制定工作计划和项目进度。根据工作量估算出进度后,将工作量分配到各阶段各单项工作,做好项目工作进度计划。对于在项目早期的快速概要的估算,按该估算结果得出的是比较初步的工作进度计划,随着软件项目往后续阶段发展,应随阶段重新估算并制定相应的工作进度计划。有了精确度和效率都比较高的估算模型,计划的制定将更加方便快捷。估算方法成本估算是对完成软件项目所需工作量及费用的估计和计划,是软件项目计划中的一个重要组成部分。要实行成本控制,首先要进行成本估算。理想的是,完成某项软件任务所需费用可根据历史标准估算。但对许多软件组织来说,由于软件项目和计划变化多端,把以前的活动与现实对比几乎是不可能的。而且,在费时较长的大型软件项目中,还应考虑到今后几年的员工工资结构是否还发生变化以及管理费用在整个项目生命周期内会不会变化等问题。可见,成本估算是在一个无法以高度可靠性预计的环境下进行的。在软件项目管理过程中,为了使时间、费用和工作范围内的资源得到最佳利用,人们开发出了不少成本估算方法,以尽量得到较好的估算。算法模型1、线性模型工作量=a0+alxl+anxn 式中,x1,xn是成本驱动因素变量,a0,an是一组经过选择的、能使本模型与一组观察数据点之间的拟合度最佳的系数。开发成本一般通过将工作量乘以某一恒定的劳动力成本而求出。线性模型虽然简单,但由于在软件开发中非线性相互作用太多,以至于线性模型效果并不好。2、解析模型工作量=f(x1,xn)式中,x1,xn是成本驱动因素变量,f是一非线性或非乘积的数学函数。3、表格模型表格模型用表格表示成本驱动变量与软件开发工作量之间及成本驱动变量与用来调节工作量估计值的因子之间的关系。4、复合模型复合模型是线性、乘积、解析、表格模型的结合,对成本估算值的每一部分使用最恰当的函数形式,以此来描述成本驱动变量与软件开发工作量之间的关系。专家判定专家判定就是与一位或多位专家商讨,专家根据自己的经验和对项目的理解对项目成本作出估算。由于单独一位专家可能会产生偏差,因此常有多位专家进行估算。对于有多个专家得到的多个估算值,需要采取某种方法将其合成一个最终的估算值。可采用的方法有:1、求中值或平均值这种方法非常简便,但易于受到极端估算值的影响而产生偏差。2、小组会议组织专家们召开小组会议进行讨论,以使他们统一于或同意某一估算值。该方法能去掉一些极为偏颇无知的估算,但易于受权威人士或能言善辩人士的影响。3、Delphi技术Delphi是1948年Rand公司产生的一种预测未来事件的技术,随后在诸如联合规划和成本估算之类的各种其它应用中作为使专家意见一致的方法。采用标准Delphi技术的步骤如下:(1)协调员给每位专家一份软件规格说明书和一张记录估算值的表格。(2)专家无记名填写表格,可以向协调员提问,但相互之间不能讨论。(3)协调员对专家填在表上的估算进行小结,据此给出估算迭代表,再要求专家进行下一轮估算。迭代表上只标明专家自己的估计,其它估计匿名。(4)专家重新无记名填写表格。该步骤要适当的重复多次,在整个过程中,不得进行小组讨论。4、Wideband Delphi技术采用Delphi技术,专家们不能小组讨论,无法获得足够的交互信息,这不利于根据他人的估算值调整自己的估算值。鉴于此,将小组会议和Delphi技术结合起来,提出了Wideband Delphi技术。利用Wideband Delphi技术的步骤如下:(1)给每位专家发放软件规格说明书和估计表格。(2)专家开会讨论软件产品和任何与估算相关的问题。(3)专家以不记名的方式填写估计表格。(4)协调员汇总结果,并将结果以迭代表形式返回给各个专家。(5)专家召开小组会议讨论上次估计结果,自愿修改个人估计值。(6)如此反复进行,直到各个专家的估计逐渐接近,达到一个可以接受的范围。类比法类比法就是把当前项目和以前作过的类似项目比较,通过比较获得其工作量的估算值。该方法需要软件开发组织保留有以前完成项目的历史记录。类比估算既可以在整个项目级上进行,也可以在子系统级上进行。应用类比法的前提是确定比较因子,即提取软件项目的特性因子,以此作为相似项目比较的基础。常见的比较因子有软件开发方法、功能需求文档数及接口数等。具体使用时需结合软件开发组织和软件开发项目的特点加以确定。该方法的主要长处在于估算值是根据某个项目的实际经验得出的,可对这一经验进行研究以推断新项目的某些不同之处以及对软件成本可能产生的影响。与一般算法模型一样,依据经验的类比估算的缺点在于无法弄清以前的项目究竟在多大程度上代表了新项目的特性。自顶向下法自顶向下的估算法是从软件项目的整体出发,即根据将要开发的软件项目的总体特性,结合以前完成项目积累的经验,推算出项目的总体成本或工作量,然后按比例分配到各个组成部分中去。该方法的优点在于对系统级的重视。因为估算是在整个已完成项目的经验的基础上得出的,所以不会遗漏诸如系统集成、用户手册、配置管理之类的系统级事物的成本。缺点是难以识别较低级别上的技术性困难,这些困难往往会使成本上升;并且由于考虑不细致,它有时会遗漏所开发软件的某些部分。自底向上法自底向上估算是把待开发的软件逐步细化,直到能明确工作量,由负责该部分的人给出工作量的估算值,然后把所有部分相加,就得到了软件开发的总工作量。自底向上的估算与自顶向下的估算是互补的,它比后者需要更多的精力。由于每部分的估算值是由负责该部分的人在对任务较为详细的理解的基础上给出的,因而每部分的估算较为精确,但却易于忽略许多与软件开发有关的系统级成本,如系统集成、配置管理、质量保证等,所以给出的总估算值往往偏低。基于项目生命周期全生命周期造价管理(Life Cycle CostingLCC)是指导项目设计者自觉地、全面地从项目全生命周期出发,综合考虑项目的开发成本和运营与维护成本,从而实现更为科学的项目设计和更加合理的选择资源,以便在确保设计质量的前提下,实现降低项目全生命周期成本的目标。根据项目的成本研究和软件项目的特点,需求验证阶段软件项目的成本估算可按照开发和维护成本计算,即:C=Cl+C2。式中:C为软件的成本;C1为软件的开发成本:C2为软件的维护成本。(1)软件的开发成本Cl的测算软件的开发成本按其工作量及单位工作量成本来测算是可行的,具体测算方法为按软件的软件规模(一般为软件源程序的指令行数,不包括注释行)、社会平均规模指数以及工作量修正因素来进行。、(2)软件维护成本C2的测算,软件的维护为修正现有可运行软件并维护其主要功能不变的过程。软件在其交付使用后,其维护阶段在软件生命周期或生存期中占较大比重,有的可达软件生存周期的5070。因此,软件的维护成本是软件成本测算中不可忽略的一部分。软件的维护包括三类:改正、纠正性维护;适应性维护;完美性维护。其中类是为扩充功能、提高性能而进行的维护,在软件资产价值评估中一般不计入该软件成本,而、两类,则与软件的开发过程有着紧密的联系,应计入软件成本。在软件维护阶段,对软件工作量的影响因素与开发阶段的影响因素基本相同。因此,维护的可靠性越大,规模越复杂,隐错越难发现,纠错越难。软件越复杂,要使其适应软、硬环境变化,进行适应性维护也越困难。当然,可靠性大、复杂度高的软件,其可维护性要求也越高,软件在运行中出错的可能性也会少些。基于上述分析,软件维护成本的测算,可按软件开发成本乘以一个该软件的维护参数来求取。这一维护参数,可按软件的复杂度从简单到一般、到复杂的顺序,分别取0.15、0.20、0.25及0.30、0.35、0.40等。从财务角度来看,应列入软件成本的有如下的项目:(1)硬件购置费,如计算机及相关设备的购置,不间断电源、空调器等的购置费。(2)软件购置费,如操作系统软件、数据库系统软件和其它应用软件的购置费。(3)人工费,主要是开发人员、操作人员、管理人员的工资福利费等。(4)培训费。如开发人员的技术培训等。(5)通讯费,如购置计算机网络设备、通讯线路器材等费用。(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。(7)财务费用。(8)管理费用,如办公费、差旅费、会议费、交通费。(9)材料费,如打印纸、
展开阅读全文