- 287.24 KB
- 59页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'上海交通大学工程硕士学位论文软件项目成本管理的研究软件项目成本管理的研究——以w公司信息系统软件项目为例摘要软件项目管理是软件项目开发中进行规范化管理、保证软件项目质量和进行成本控制的最重要的问题之一,成本管理是软件项目管理中的一个核心组成部分。软件项目管理的主要目的是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。本文以农批市场信息系统建设项目为例,针对软件项目成本管理过程、成本估算、成本控制等问题进行了研究。在相关国内外研究文献综述的基础上,分析了软件项目成本管理的过程、软件项目成本估算COCOMO模型和CMM模型以及成本估算的方法与步骤;以农批市场信息系统建设项目开发的项目管理过程为例,阐述了信息管理系统的结构,软件研发管理过程,以及项目成本估算与控制等,为同类型的软件项目成本管理提供了借鉴。关键词:软件项目,成本管理,成本估算,信息系统I
上海交通大学工程硕士学位论文软件项目成本管理的研究STUDYONMANAGEMENTOFCOSTOFSOFTWAREPROJECTABSTRACTEffectivesoftwareprojectmanagementisvitalforasuccessfulsoftwaredevelopmeprojectandoneofitsimportantcomponentsiscostmanagement.Thepurposeofsoftwareprojectmanagementistoensurethecompletionoftheprojectobjectivesthroughcarefulplanningandmanagingofvariousfactorslikecost,people,time,quality,risks,etc.Inordertoimprovetheefficiencyandoptimizetheoutcome,itisnecessarytofindthebestsolutionsoftimeandcostwhilemeetingthequalitystandards.Inthiscase,athoroughstudyofsoftwarecostmanagementbeforeandduringthedevelopmentprocessiscrucialanysoftwareproject.Thethesis,writtenfromaprojectmanager’sperspective,discussesthedefinitionacharacteristicsofsoftwareprojectcostmanagement.ItinvestigatessomecommonlyusedcostmanagementapproacheslikeusingcostestimationmodelssuchasCOCOMO,CMMandothercostmanagementsystems,andanalyzesthemethods,featuresandlimitationsthepresentsystems.Basedontheinvestigationandanalysis,theauthorconductsexploratorystudyontheprojectcostmanagementprocessofManagementInformationSystemdevelopmentprojectandprovidessuggestionsoncostmanagementsimilarsoftwareprojects.KEYWORDS:softwareproject,costmanagement,costestimation,ManagementInformationSystemII
上海交通大学工程硕士学位论文软件项目成本管理的研究第一章绪论项目是以一套独特而相互联系的任务为前提,有效地利用资源,为实现一个特定的目标所做的努力。成本管理是在项目具体实施过程中,为了确保完成项目所花费的实际成本不超过预算成本而展开的项目成本估算、项目预算、项目成本控制等方面的管理活动。对软件项目成本管理问题进行研究,对于软件研发单位进行软件项目的成本估算和控制具有实际意义。1.1问题的提出随着社会的不断进步、科学技术快速发展以及生产力水平逐步提高,信息管理软件应用到各个领域、各个方面,不仅成为基本的现实,而且越来越显示出其不可替代的重要作用。应用项目成本管理基本原理,加强对软件研发项目的管理,提高项目管理水平和质量,是当前一个重要课题。软件企业在我国高新技术产业中扮演着越来越重要的角色。成本管理是软件项目管理的一个子课题。有效的软件项目管理和成本控制可以更好的为软件企业积蓄财力,可以增强软件企业的竞争力。软件项目管理以及成本控制成为软件项目开发中最重要的核心问题之一。目前我国软件企业实施软件项目管理的许多技术还很不成熟,只有少数大型软件企业,依据诸如CMM和1509000的标准规范以及一些项目管理辅助工具,实施相对规范的软件项目管理。大部分中小型软件企业,尚没有进行规范的和有约束力的软件项目管理,尤其是在项目成本管理方面,软件企业的意识还比较薄弱,经常出现项目进度延迟、成本超支的现象。因此研究软件项目的成本管理,建立企业的软件成本控制体系己成为一个迫切而重要的任务。中小型软件企业,与大型公司相比,在资金、规模上存在先天不足。对于大型软件企业可以采用1509000、CMM(capabilitymaturitymode)等成熟的软件项目管理体系来保证产品成本和质量。中小型软件企业在现有的条件下,如何参照成熟体系形成适合自己清况的成本控制体系,产品能在满足客户需求前提下尽量降低成本实现利润,这是中小型软件企业能否生存并成长的关键。一方面,1
上海交通大学工程硕士学位论文软件项目成本管理的研究通过对中小型软件企业成本管理体系的改善、加强,制定出适合自己的成本控制体系,为中小型软件企业的软件设计提供理论指导,为中小型软件企业的经营带来相应的经济效益。国内大多数软件企业几乎都是100人以下的中小企业,经过多年的发展大都无法成长壮大。究其原因,管理散漫,开发成本过高是一个重要原因。通过本课题的研究,也对软件行业其它公司的成本管理有一定的借鉴意义。1.2国内外研究现状概述1.2.1软件开发成本管理研究现状在20世纪50年代末,计算机系统应用于非常狭窄的领域,规模较小,其软件成本大约只占整个计算机系统项目的10%~20%。随着信息技术的进步,生产规模的扩大,计算机硬件的价格不断下降,软件成本在计算机系统中所占的比例越来越大。到60年代中期已经增至50%左右。近二十年来,计算机硬件的成本持续降低,而软件成本则不断增加,其在计算机系统总成本中所占的比例呈现日益扩大的趋势。从软件危机爆发以来,人们就开始研究如何将工程化的思想引入到软件项目的开发中,从而产生了“软件工程”思想。软件工程思想覆盖软件开发的各个阶段,还涉及到软件开发组织相关的各个层面。在七十年代中后期,一些学者开始探讨软件项目管理,主要偏向于探讨软件项目管理某个环节中的技术问题,例如质量因素的定义、功能点分析方法、软件估算模型等。八十年代初,随着微型计算机运算速度的迅猛提升和软件项目管理知识的发展,开始出现了应用于软件开发过程的管理工具。八十年代中后期,各种管理技术不断得到改善或加强,出现了不少新的软件管理技术,如软件估算模型、功能点度量技术。SEI在八十年代末建立了软件过程能力成熟度模型(CMM模型),来评估一个软件公司开发过程的能力。美国项目管理学会(ProjectManagementInstitution,PMI)的PMBOK将项目管理分成九大知识领域,成本管理是其中的最重要组成部分之一。PMBOK1996版发布后,获得了广泛的认同,PMBOK总结了项目成本管理实践中成熟的理论、方法、工具和技术,也包括在成本管理方面的一些成果。此外,国际上有多种项2
上海交通大学工程硕士学位论文软件项目成本管理的研究目管理认证体系,如ISO9000系列、Deming的持续质量改进(CQI)等,也都提到了成本管理。目前普遍使用的软件项目管理工具很多,如McriosotfProject2003、VisualSuoreeSaef、PVCS、P3、RatinoalRose等。项目管理工具McriosotfProject2003的功能是管理、规划任务,并在项目执行过程中跟踪这些任务。PVCS侧重于变更管理和版本控制,在软件开发过程中可以完善地管理软件系统中的多种版本,自动创建完整的文档,保障软件的维护,全面记载系统开发的历史过程,包括谁作了修改、修改了什么、为什么修改,管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化,管理需求分析等。很多公司也采用源代码管理工具VisualSuoreeSaef,它的功能是对程序资源进行版本管理和跟踪,建立公司的代码知识库,保存开发过程中每一个过程版本,这样可以提高代码的重用率,还便于同时维护多个版本和进行新版本的发布。与PVCS相比它没有PVCS的问题跟踪及消息通讯的功能。RatinoalRose的功能是把用户的需求用UML语言描述产生需求说明书。通常是和RUP结合起来使用,侧重需求和设计的工具。成本估算模型有很多,其中COCOMO模型是世界上应用范围最为广泛的成本估算模型。BarryBoehm博士(1981)在经典著作《软件工程经济学》中就介绍了COCOMO。COCOMO是一个计划和执行软件项目的目标成本模型,为软件解决方案的成本和进度隐含关系提供了一个良好定义的、开放的工程基础。在过去几年中,COCOMO进行了一些调整和改进,如对COCOMO模型进行深入了分析,软件项目成本估算方法的改进,“基于活动”的软件项目成本管理方法,引入目前项目管理中先进的赢得值管理系统,提出一种新的Web系统软件开发项目成本估算模型(人天评估模型),使其能更好地适应现代软件工程的发展趋势,在软件行业中取得了一定突破。国内在软件项目成本控制方面的研究尚处于探索阶段,没有较为成型、有效、实用的软件项目成本控制解决方案。同时我国的软件行业为了加紧步伐,非常重视吸取国外软件行业科学的管理理念与方法。目前,我国软件项目人员大多具有软件开发专业技术背景,但是普遍缺乏经济观念,成本意识淡薄。一些项目成本预算和估算的准确度差,失去控制标准。虽然许多软件研究单位都对成本管理表现了极大的兴趣,做出了不少努力,但是成本管理并没有得到广泛应用,这与对成3
上海交通大学工程硕士学位论文软件项目成本管理的研究本控制的技术和实践缺乏了解有很大关系。因此,笔者认为很有必要加强软件项目成本控制在我国软件企业实践中应用方面的研究。1.2.2软件开发项目成本估算研究存在的问题近年来,我国的软件开发产业得到了很大的发展。我国的软件企业与当今国际软件产业相比,特别是与美、日等发达国家相比差距明显。随着软件规模越来越大,结构越来越复杂,开发费用逐步增加,国内软件开发单位的开发技术和生产管理方式都还相对落后,这些导致软件开发的管理难度增大。在软件项目成本管理方面,尤其是成本估算和成本控制研究方面存在很多问题,主要问题如下:(1)对于软件成本管理不够重视。长期以来,软件在国内市场中得不到应有的重视,基本上是作为硬件合同的附属品。用户对软件的重要性没有充分的重视,大多数的软件项目没有考虑后期的维护、升级费用,对于软件项目的成本估算不准确。(2)项目成本估算和控制过程研究程度不够。一些项目成本预算和估算的准确度差,失去控制标准。在项目管理中,相关的管理部门通常要求项目经理做出项目的估算或预算,并以此为标准,进行项目的控制和考核。但在实际工作中,由于项目具有一次性和不确定性的特点,以及项目经理自身的经验和水平的限制,使项目估算或预算的准确性很差,一有变化,项目经理就追加项目预算。预算频频变更,最终失去了项目的控制标准,成本控制也流于形式。等到项目结束时,实际成本和初始计划已经大相径庭。可见,随着软件开发技术的发展,软件项目实施已经成为一项复杂的系统工程。在计算机系统总成本中,软件成本已经超过了硬件成本所占的比重,直接影响到投资者的决策和软件项目的开发。没有合理而准确的软件成本估算,就无法很好地进行软件项目的管理。软件项目成本受到诸多因素的影响,例如人员、技术、环境、策略等,这些因素有很多是不确定或不断变化的,这些都增加了软件成本估计的难度。因此,研究准确可靠地估算软件成本方法,对于软件项目策划和管理均具有指导意义。1.3研究思路与论文结构4
上海交通大学工程硕士学位论文软件项目成本管理的研究1.3.1研究思路问题的提出国内外研究现状项目成本管理论软件项目管理软件项目成本管理的相关理论软件项目成本估算实证研究图1-1论文框架Figure1-1:ArticleStructure1.3.2论文结构第1章绪论:概述了软件项目成本管理的重要性以及国内外对一问题的研究现状与进展,分析了成本估算研究在当前存在的主要问题。第2章软件项目成本管理的相关理论:介绍了项目管理过程和软件项目成本管理过程,以及软件成本管理的框架和过程。第3章软件项目成本估算:阐述了COCOMO模型和CMM模型,以及软件项目成本估算步骤和估算方法。第4章针对W公司的一个具体软件开发项目“农批市场信息系统建设项目”5
上海交通大学工程硕士学位论文软件项目成本管理的研究将设计出的软件项目成本管理模式进行了应用,进行了详细的成本评估、成本计划及成本控制设计,形成了一份完整的项目成本管理分析报告和成本管理方案。第5章结论与展望:总结全文取得的成果与结论。1.4本章小结本章对国内外研究软件项目成本管理的基本现状进行了分析,认为国外对软件项目管理的研究进行得比较早,上世纪七十之后人们就将工程化的方法引入到软件产品的开发中,出现了许多优秀方法,其中COCOMO模型是世界上应用范围最为广泛的成本估算模型;我国虽然对这一问题的研究取得了很大的进展,但仍处于探索阶段,没有较为成型、有效、实用的软件项目成本控制解决方案。目前国内软件项目成本管理特别是成本估算研究方面的主要问题表现在,一是对于软件成本管理不够重视,二是对项目成本估算和控制过程研究程度不够。本章分析这些问题的此基础上,确定了论文的研究主题,即“软件项目成本管理研究――农批市场信息系统建设项目为例”,并且阐述了论文的研究思路。6
上海交通大学工程硕士学位论文软件项目成本管理的研究第二章软件项目管理过程的和成本相关理论项目管理是伴随着项目的进行而进行的,目的是为了确保项目能够达到期望的结果的管理行为。软件项目管理和其他项目管理一样,它是一个过程,贯穿于软件项目的始终。为实现项目目标,使软件项目开发获得成功,应当对软件开发项目的范围、可能的风险、需要的资源,实现的任务、成本以及进度的安排等进行全面的了解和掌握,这就需要实施软件项目管理。本章针对软件项目管理过程有关问题,着重分析软件成本管理过程的基本规律,从而提出软件成本管理的基本框架和管理具体的过程。2.1软件项目管理的基本理论从概念上讲,软件项目管理是为了使软件项目能够按预定的成本、进度、质[1]量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理是为了使软件开发项目获得成功而进行的一系列活动。成本管理是软件项目管理的一部分,对于软件项目管理的方法同样适用于成本管理.2.1.1软件项目开发的特点与传统的工程项目相比,软件项目有其特殊性,不同之处主要表现在:(l)软件是一种逻辑实体,不是具体的物理实体,它具有抽象性,软件开发的产品只是程序代码和技术文档,并没有其它形式的产品;(2)软件的开发过程中没有明显的制造过程,主要是设计过程,是人的智力活动;(3)软件的开发和运行常常受到计算机系统的限制;(4)软件的开发至今尚未摆脱手工艺的开发方式;(5)软件系统本身是很复杂的;因此软件项目管理的独特性决定了它不能像管理其它的项目一样管理软件7
上海交通大学工程硕士学位论文软件项目成本管理的研究项目。软件项目管理的主要内容有:(6)文档(包括程序代码)的管理——软件管理的基础;(7)人力资源管理——软件项目管理的核心;(8)成本、进度、质量和风险管理——软件项目管理的对象。软件开发过程是一个系统工程,在很大程度上与现代的工业生产有所不同。比较突出的是到目前为止其工作方式仍然是以手工生产方式为主。软件开发过程是一种复杂的、系统的生产过程。其生产方式决定了软件生产效率相对来说比较低。由于软件项目的特殊性,使得软件开发按照某种模式自动生产的可能性较小,但可以通过规范开发过程来提高软件生产率。对一个软件企业而言,规范的软件开发过程和项目管理过程对软件企业有着非常重要的意义。2.1.2软件项目计划管理a.软件项目计划软件项目开发过程中,计划编制是一个复杂的、重要的阶段,软件项目计划管理在软件开发过程中处于一个十分重要的地位,这是因为软件项目计划体现了对客户的理解,并为软件工程的管理和运作提供可行的计划,是有条不紊的开展软件项目管理活动的基础,是跟踪、监督、评审计划执行情况的依据,没有完善的工作计划常常会事倍功半,或者使项目在质量、日期和成本上达不到要求,甚至使软件工程失败。因此制定周密、简洁和精确的软件项目计划是成功的开发软件项目的关键。软件项目计划为执行和管理软件活动提供了基础。软件项目计划是指为了软件工程的动作和软件项目活动的管理提供一个合理的基础和可行的[2]工作计划的过程。其目的是为执行软件工程和管理软件项目制订合理的目标。软件开发周期估算,软件项目规模估算,项目成本估算和制定成本计划是软件项目计划的内容的重要部分。b.软件项目计划管理软件项目计划管理过程可以分为六个阶段,计划初始阶段、计划制订阶段、计划审查和批准阶段、开发过程度量和评价阶段、修改计划阶段。(l)计划初始阶段8
上海交通大学工程硕士学位论文软件项目成本管理的研究首先确定一位软件项目经理,然后由项目经理检查项目的工作描述,明确初始要求,对成本、资源和时间需求进行初步估计,指明项目的初始风险和限制,收集初始的计划数据,成立计划级并指定项目负责人。(2)制定软件开发计划软件项目计划组检查软件开发计划的案例,选择制定计划的样板,分析案例存在的问题,提出修改意见,把软件开发计划样板改造成适合本项目的软件开发计划,提交软件开发计划草稿。(3)对软件开发计划进行审查和批准项目计划负责人与项目的风险承担者一起,对软件开发计划的草稿严格的技术检查,对查出的问题提交解决方法,并将草稿作一体化的修改更新,为软件开发计划确定正式的承诺,提交基本软件开发计划和最终软件开发计划的文档检查报告。对软件开发计划制定过程中出现的需求改变或者是新的过程定义需求报告提交给软件工程过程组。(4)实施软件开发计划项目人员执行软件开发计划规定的任务,开展相应的活动。在这个过程中,要执行软件质量保证,检查软件质量报告。同时进行项目跟踪和监控,确保计划的完成。(5)软件开发过程的度量和评价在实施过程中根据开发人员提出的意见,找出计划和执行情况的差距,找出造成差距的原因,对过程提出修改意见,估计改进后的效果,为重新制定软件开发计划提供根据。(6)修改软件开发计划分析过程改进后的结果,决定是否需要对软件开发计划进行修改,提交软件开发计划的问题报告和修改意见本文仅偏重于项目成本计划的制定,对项目开发的总体计划只稍加的讨论。成本计划过程同样也有以上六个阶段。2.1.3软件项目控制管理良好的计划是项目成功的基础,上一节介绍了软件项目计划管理,本节主要内容是对计划的实际实施的跟踪与控制。在软件开发过程中,由于软件项目本身9
上海交通大学工程硕士学位论文软件项目成本管理的研究所具有的特点使得项目的实际开发进程并不能完全按照软件项目计划中的预测进行,为了项目经理能够及时了解项目实施过程的状态,而要根据软件项目计划进行跟踪与监控项目计划的完成情况和成果。a.项目监控过程项目控制是指在项目按计划执行过程中,由于诸多的不确定,项目的进展必然会偏离轨道,项目管理者根据项目的最新信息,与项目原计划相比较,在找出偏差原因的基础上,纠正偏差或调整项目计划的全过程。实施项目跟踪和监控是为了及时的发现开发进程和项目计划的差距,使项目经理及时了解软件开发过程的状态,采取必要的措施,避免软件工程师的黑箱操作以及项目的期限延长和成本问题。通过比较实际的和计划的软件规模、工作量、费用和进度之间的差别来获取项目的进展状况。如果计划与实际有偏差,采取纠正措施。纠正措施包括修订计划和重计划后续的软件活动,以反映项目的真实完成情况软件项目跟踪与控制以软件项目计划为依据,控制分成三个阶段:(1)与计划作比较,找出偏差(2)和趋势分析(3)采取偏差纠正措施软件项目跟踪与控制过程如图2一1所示10
上海交通大学工程硕士学位论文软件项目成本管理的研究开始公布初始计划收集项目信息项目进度与目标比较公布修订计划否满意采取补救措施是否项目完是项目结束项目审查文档总结结束Figure2-1:TrackingProcessofSofewareProject图2一1软件项目跟踪过程b.项目监控内容项目监控的主要内容有如下几个方面:(l)跟踪项目的日程,进行进度控制。进度控制是其中非常重要的一项工作。不论是大项目,还是小项目,进度控制都非常关键,进度控制是项目能否成功的最主要的判断标准之一,如果掌握不好,除造成项目延期之外,有可以会导致整个项目的失败。(2)跟踪软件工作产品的规模以及项目的软件工作量和成本,进行成本控制。成本控制就是监控成本的正负偏差,分析原因和采取措施以确保项目朝着有利的方向发展。本文重点讨论成本管理问题,所以在后面的章节将作详细论述。(3)项目变更控制项目中的某项工作一旦发生变动,相应的各有关文件均必须修正,然后再执11
上海交通大学工程硕士学位论文软件项目成本管理的研究行。在项目管理中缺少信息变更信息是很糟糕的,但得到错误的信息更糟糕。在项目开发中,如果部门间所依据的执行文件不符或相背,那么可以想象,其执行结果将变得不可接受。变更控制的目的并不是控制变更的发生,而是对变更进行管理,确保变更有序进行。对于软件开发项目来说,发生变更的环节很多,。因此变更控制显得格外重要。2.2软件项目管理过程软件项目的成本管理既有与一般项目成本管理相同的共性,也有其自身的特殊性。软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理是为了使软件开发项目获得成功而进行的一系列活动。软件项目管理的三个最关键要素是时间、成本和质量。软件开发过程是一个系统工程,在很大程度上与现代的工业生产、建设项目有所不同。目前,软件开发方式仍然是以手工生产方式为主。软件开发过程是一种复杂的、系统的生产过程,其生产方式决定了软件生产效率。由于软件项目的特殊性和与研发人员的相关性,使得软件开发很难按照自动生产进行,但可以通过规范开发过程来提高软件生产率,即可采用软件项目管理的方法。项目管理协会(ProjectManagementInstitution,PMI)总结了[8]一套项目管理知识体系(ProjectManagementBodyofKowledge,PMBOK),成为现代项目管理的行动指南。PMBOK把项目管理知识划分为九个知识领域和5个管理过程,九个知识领域包括项目整体管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。每个知识领域包括数量不等的项目管理过程。按照项目的生命周期理论,项目的5个管理过程包括:(a)项目启动阶段:该阶段是由一系列决策性的项目管理工作与活动所构成的项目管理工作过程,定义了一个项目或阶段的工作与活动,决策其起始与否,并决定是否有意向后推进的过程。该阶段的标志就是项目可行性报告。12
上海交通大学工程硕士学位论文软件项目成本管理的研究[12]表2-1项目管理过程过程类别启动计划执行控制结束知识领域整体项目计划制度项目计划执行整体变更控制范围计划范围审核范围启动范围定义范围变更控制活动定义活动排序时间进度控制活动历时估计进度计划编制资源计划成本成本估计成本控制预算质量质量计划质量保证质量控制组织计划人才资源团队建设人员获取管理沟通沟通计划信息发布绩效收尾风险管理计划风险识别风险定性风险分析定量风险分析风险应对计划招标采购计划合同采购招标对象选择招标计划关闭合同管理13
上海交通大学工程硕士学位论文软件项目成本管理的研究(b)项目计划阶段:软件项目计划是指为了软件工程的动作和软件项目活[26]动的管理提供一个合理的基础和可行的工作计划的过程。该阶段是由一系列计划性的项目管理工作与活动所构成的项目管理工作过程,包括拟定、编制并改进一个项目或项目工作阶段的目标、工作计划方案、资源计划、成本预算等方面的工作,从各种备选方案中选择最好的方案,以实现所承担项目目标的过程。(c)项目执行阶段:该阶段是由一系列组织性的项目管理工作与活动所构成的项目管理工作过程,包括组织和协调各项任务与工作、人员和其他资源,激励项目团队完成既定的工作计划,形成项目可交付成果的过程。(d)项目控制阶段:该阶段是由一系列控制性的项目管理工成的项目管理工作过程,包括制定标准、定期监控和测量项目进展计划存在的偏差,采取纠正措施等活动的过程。(e)项目收尾阶段:该阶段是由一系列文档化和移交性的项所构成的项目管理工作过程,包括制定一个项目或项目阶段移交的目阶段正式接收,进而使项目顺利结束的过程。每个管理过程包括输入、输出、所需工具和技术。各个过程通相互联系,构成整个项目管理活动,软件项目管理过程见表2-1。2.3软件项目成本管理过程软件的成本作为一个经济学范畴,反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支[25]的总和。成本管理是软件项目管理的一个主要内容。软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效的组织、实施、控制、跟踪分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润。2.3.1成本管理框架成本管理从时间维度上可以分为初期、中期、后期和结束四个阶段。从运作维度上可以分为计划、执行和控制三个基本过程以及分析、评估和总结三项基本活动;从内容维度上涉及进度跟踪、风险分析与识别、有效沟通等方面。图2-214
上海交通大学工程硕士学位论文软件项目成本管理的研究所示形成了成本管理的框架,采用了预测、计划、决策、控制、分析、考核的过程管理模式。2.3.2成本管理过程项目成本管理包含所有为了保证项目在预算内完成的过程。一般包括以下几[13]个过程:(a)资源计划。计划所需的资源包括决定为实施项目活动需要使用什么资源(人员、设备和物资)以及每种资源的用量,其主要输出是一个资源需求清单。一般来说,软件项目需要的资源主要包括人力和硬件设备两大部分。资源计划是为了完成项目活动所需要的资源各类(人员、硬件设备、软件工具等)及其数量的一种安排。(b)成本估算。成本估算包括估计完成项目所需资源成本的近似值。其主要输出是成本管理计划。成本估算主要是开发一个完成项目活动所需要资源的大概成本估计。在传统的项目管理中,一般依靠个人经验对被分解后较小的活动进行估计,然后求其和为总体成本。成本估算是软件成本管理中非常重要的部分,精确的成本估算是进行软件成本管理的重要条件。本文重点对成本估算进行研究。后面章节将详细介绍成本估算的相关技术。环境(工具和技术)项目寿命周期初期预测计划成本管理模式成本晚期决策执行管理过程考核中期控制结束分析-评估-总结项目寿命管理[13]图2-2成本管理框架Figure2-1:StructureofCostManagement15
上海交通大学工程硕士学位论文软件项目成本管理的研究(c)成本预算。成本预算是分配整体成本到每一个工作任务,即将整个成本估算配置到各单项工作,以建立一个衡量绩效的基准计划。其主要输出是成本基准计划。成本估算估计完成项目各活动所需每种资源成本的近似值,成本预算的过程是把估算的总成本分配到各个工作细目,建立基准成本以衡量项目执行情况。可见成本估算的准确性直接决定成本的预算情况。预算可以采用两种方法,其一,是自上而下法,在项目总成本之内按照每一工作包的相关工作范围来考察,按项目总成本的一定比例分到各个工作包中;其二,是自下而上法,由每个工作包的具体负责人进行预算估计,然后再进行平衡和调整。(d)成本控制。成本控制是控制项目预算的变更,根据成本基准计划来控制项目预算的变化,成制过程的主要输出是修正的成本估算、更新预算、纠正行动、完工估算和取得的经验教训。成本控制的基准是项目管理人员根据项目的具体情况确定允许的偏差范围。在一个项目的进行中,成本基准计划并非一成不变的,而是随着用户的需求变化,项目的变更请求基准计划可能会得到不断的校正。最常用的方法是挣值法,此方法根据进度的多少衡量成本的开支,能够准确判断项目的状态,但是判断需要的数据来源目前仍然是书面报告或个人主观观察数据。在整个过程中成本估算是成本管理的重点和基础。有效的成本估算能增强成本管理的计划与控制能力。通过软件成本估算提供软件项目的时间、工作量、成本分布等关键数据,这些数据有助于根据需求和环境的发展特征,对软件项目进行实时的过程控制,能够为每个项目阶段与活动提供正确的计划和控制基础,来更好地加强软件成本管理。软件成本管理基本上可以用估计和控制来概括,首先对软件的成本进行估计,形成项目成本管理计划,在项目进行过程中,对项目实施控制使其按照计划进行。本文主要研究成本估算这一部分,同时也对成本控制进行一定的分析。2.4本章小结本章对项目成本管理过程、软件项目管理过程以及成本管理框架、软件成本管理过程进行了介绍与分析,软件项目管理五类管理过程包括启动、计划、执行、控制、结束;成本管理从时间上可以分为初期、中期、后期和结束四个阶段,从运作上可以分为计划、执行和控制三个基本过程以及分析、评估和总结三项基本16
上海交通大学工程硕士学位论文软件项目成本管理的研究活动,从内容上涉及进度跟踪、风险分析与识别、有效沟通等方面;项目成本管理一般包括资源计划、成本估算、成本预算、成本控制等。本章对软件项目成本管理的相关理论进行了介绍。17
上海交通大学工程硕士学位论文软件项目成本管理的研究第三章软件项目成本估算软件成本估算是对一个软件项目的成本做出估算,是项目成本管理的核心,是预测开发一个软件系统所需要的总工作的过程。成本估算贯穿于软件的生存周期。研究软件项目成本管理问题,必须研究软件项目成本估算问题,重点是估算模型、估算步骤、估算方法等问题。3.1软件项目成本估算模型3.1.1COCOMO模型[14]COCOMO是一个计划和执行软件项目的目标成本模型。它是管理软件项目或商业软件生产线的重要组成部分。成本模型提供了软件开发干系人之间交流商务决策的框架。BarryBoehm博士早在1981年出版的经典著作《软件工程经济[1]学》(softwareEngineeringEeonomics)中就介绍了COCOMO。后来,ZhiweiXu和TaghiM.K用模糊逻辑方法对COCOMO模型中的软件成本驱动因子进行分类模[24]糊处理,来解决不确定信息和主观判断对成本估算造成的影响。COCOMO迅速成为最流行的软件成本模型。目前COCOMO模型被大量运用于软件成本和进度估计。COCOMO包括若干实地测试的改进,以拓展其能力,并提高对现代软件开发方法估算的准确性。它是许多软件经济学专家在很多软件领域和机构实验室的实际应用中长期使用COCOMO的结果。COCOMO包括两个底层信息模型。第一个用于描述软件项目的框架,包括过程模型、文件、干系人、方法、工具、开发团队以及软件产品的规模或复杂性。第二个就是经验库,可以从历史案例估算出项目可[9]能需要的相关资源(工作量与时间)。COCOMO模型分为三个层次:(1)基本COCOMO模型:将软件开发工作量作为程序规模的函数来进行计算,程序规模以估算的代码行来表示。(2)中级COCOMO模型:将软件开发工作量作为程序规模及一组“成本驱动因子”的函数来进行计算,其中,成本驱动因子包括对产品、硬件、人员、及项目属性的主观评估。18
上海交通大学工程硕士学位论文软件项目成本管理的研究(3)高级COCOMO模型:包含了中级模型的所有特性,并结合了成本驱动因子对软件工程过程中每一个步骤(分析、设计等)的影响的评估。START输入基本信息功能点估算估算源代码行数估算成本驱动因子选择估算公式计算基本工作量计算成本调整因子计算最终工作量输出估算结果ENDFigure3-1:ProcessofCOCOMOModel图3-1COCOMO模型估算流程图COCOMO模型是为三种类型的软件项目定义的,包括组织模式、半分离模式、嵌入模式。运用COCOMO模型估算成本时,当用户输入待评估项目的基本信息(估计源代码行数、项目成本驱动因子)后,系统将会显示估算结果。具体实现过程[13]如下:(1)用户输入待评估项目的基本信息(估计源代码行数、项目成本驱动因子)。由于项目的源代码行数在项目初期无法确定,所以可以采用FP技术进行估19
上海交通大学工程硕士学位论文软件项目成本管理的研究算并将估算结果转化为源代码行数;(2)根据项目开发类型选择估算公式,计算基本COCOMO模型的开发工作量和进度;(3)通过输入的项目信息计算工作量调整因子;(4)根据工作量调整因子和估算公式,计算中间COCOMO模型的开发工作量和进度。COCOMO模型估算的实现流程如图3-1所示。3.1.2CMM模型目前,国外普遍采用的对软件过程管理方法是由美国卡内基·梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型,简称SW-CMM(SoftwareCapabity[15]MaturityModel)。该模型提供了一个在软件工程管理方法上的框架。为改善企业的软件过程提供了指南。SW-CMM标准共分为五个级别,从第一级到第五[16]级分别为:初始级、可重复级、已定义级、已管理级和优化级。具体内容如下:(a)初始级(Initial):软件过程无序,甚至是混乱的。进度、预算、功能、质量不可预测,企业一般不具备稳定的软件开发环境,项目遇到问题时,常常放弃计划。项目的成功往往依赖于某些个人的机能和经验。(b)可重复级(RePeatable):已经建立了基本的管理软件项目的政策及为执行这些政策而制定的措施。项目经理能跟踪成本、进度和产品功能等。项目能重复以前的成功。(c)已定义级(Defined):已经将管理和开发两方面的过程文档化,并综合成为企业的标准软件过程(即过程规范)。企业的过程能力实现标准化。(d)已经管理级(Managed):企业对软件过程和产品都有定量的理解和控制,有专门的数据库系统来收集和分析数据,对项目的重要过程活动进行生产率和质量的试题。企业已实现过程定量化,企业的过程可概括为“定量的”和“可预测的”。(e)优化级(Optimizing):企业能够主动有效地识别过程的优势和薄弱环节,并采用最佳的软件工程实践,预告防范过程和产品中的缺陷。企业对过程进行不断的优化。五个等级从低到高,软件开发生产的计划精度越来越高,每单位20
上海交通大学工程硕士学位论文软件项目成本管理的研究工程的生产周期越来越短,成本越来越低。实践证明,实施软件过程管理能有效地提高软件企业的生产率及软件的质量。3.2软件项目成本估算步骤[18]软件成本估算主要有以下几个步骤:(A)建立目标一个软件项目要成功,就是要使系统能够在预计时间内和在预算范围内交付,并且能满足需求和质量的要求,这就需要设立目标。要设立合理的目标,切合实际的成本估算是至关重要的。成本估算的目标是充分利用和挖掘有限的信息和数据,尽可能快速准确地得出估算结果,以帮助管理者进行可行性分析和项目决策。(B)计划所需的数据与资源软件成本估算活动本身也可以被看作是一个项目,仓促而毫无准备的估算必然会导致该项目的失败。因此,事先制定一个包括估算目的、产品进度与计划、责任、估算过程、所需资源、假设条件等内容的简要估算计划,将有助于软件成本估算更加有效地开展。另外,几乎所有的估算方法都需要以前项目的有关信息,因此历史数据的准备也是进行软件成本估算的必备条件。(C)准确说明软件需求只有对估算对象有充分的了解,才能很好地估算它们的成本。因此,成本估算需要有尽可能明确的软件说明书,对于软件的功能、结构、性能等有明确的描述。说明书在描述中的量化程度越高,越有利于成本估算的精确度。在项目开发早期阶段,要做到这一点,深化需求极其关键。软件研发单位确定后,研发人员要会同用户单位技术保障人员到用户业务机构进行深入调研,对软件业务需求进行深化。在此基础上,形成较具体的软件说明书。(D)尽可能详细准确地估算估算应尽量与成本估算目标保持一致,避免不必要的工作量浪费。估计过高可能导致项目花掉更多的时间,以及人员分配超出需要,增加不必要的管理开销。估计过低可能会导致员工通过低标准的工作来响应紧迫的交付期,对软件质量造21
上海交通大学工程硕士学位论文软件项目成本管理的研究成严重影响。通常软件成本估算误差在20%的范围内是可以接受的。(E)估算方法选择项目管理的目标是在保证质量的情况下,寻找进度和成本的最优解决方案[30]。软件成本估算方法有很多,每种方法各有其优缺点,在实际工作中应因需要择优者用之。软件成本估算主要组成部分是人力成本(工作量),此外也有其他的成本,例如出差费用、通讯工具、用于项目的培训、项目团队所使用的软硬件等。这些成本与人力成本一起构成项目的总成本。软件生产是一种智力劳动,是资金密集,人力密集型产业。对于大型软件来说,投入的人力多,周期长,其开发过程依赖于大量的、复杂的、高强度的脑力劳动。因此其开发成本是相当昂贵的,成本估算是其进行软件项目管理和控制的重要依据。(F)比较与更新从项目启动开始,就必须收集其实际成本与进展方面的数据。由于软件成本估算的输入是不完全的,每一个新阶段都比前一阶段有更完整、明确的输入信息,因此可以通过新获得的信息更新成本估算,为下一阶段的项目管理提供更准确的基础。同时,估算方法是不完善的,为了得到改进,需要将估算结果和实际值进行比较,来改善估算方法。此外,软件项目是不断变化发展的,应该及时识别和响应变化发展的情况,对估算做出更新。(G)实际应用得出估算结果后,应在工作量估算的基础上,进行进一步的成本分析和管理。根据估算结果制定工作计划和项目进度。根据工作量估算出进度TDEV后,将工作量分配到各阶段各单项工作,做好项目工作进度计划。对于在项目早期的快速概要的估算,按该估算结果得出的是比较初步的工作进度计划,随着软件项目往后续阶段发展,应随阶段重新估算并制定相应的工作进度计划。有了精确度和效率都比较高的估算模型,计划的制定将更加方便快捷。3.3软件项目成本估算方法目前常见的成本估算方法有自顶向下、自底向上和差别估算法三种形式。自22
上海交通大学工程硕士学位论文软件项目成本管理的研究顶向下的形式是首先对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配。自底向上的形式首先分别估算工作单元所需的工作量和开发时间,然后相加,就得出总的工作和总的开发时间。差别估算法是将待开发项目与一个或多个己完成的类似项目进行比较,找出与某个相似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。该形式的优点是可以提高估算的准确度,缺点是不容易明确“差别”的界限。三种形式都要求采用某种方法做出估算。有许多现成的方法可以利用,大致可分为专家判定法、类比法和算法模型法三类。3.3.1专家判定法专家判断法是由一位或多位专家进行商讨,专家用自己的经验和对项目的理解,得出该项目的成本概算值。要求估算专家对项目的应用领域、开发环境等特点非常了解,对于给类型软件项目的开发有丰富的经验。同时,为了保证估算的客观性,最好要有由若干专家组成的相对独立的估算队伍,以减少偏见。估算人员最好是对软件开发的结果没有直接或间接利害关系、熟悉软件开发过程和估算方法的专业人员,以保证估算活动的客观性和质量。专家判定法的优点:(1)能够处理在过去项目的经验和未来项目所包含的新技术、系统结构或应用之间的差异;(2)能处理软件开发过程中难以用数学形式描述的异常情况,并在估计的时候考虑其它软件成本的影响;(3)不需要历史项目数据。专家判定的缺点:(1)并不是每一个软件开发团体都有足够多的专家,因此专家判定在使用范围方面具有一定的局限性;(2)过分依赖专家的经验,专家判定与专家的能力有关;(3)专家做出估算的理由难于确定是否正确。3.3.2类比法类比法主要是根据曾经开发过的成功项目的经验进行估算。如果当前要开发的项目跟以前开发的某个或某些成功的项目相似,那么可以将以前项目的数据作为新项目估算的参考对新项目进行初步估算,然后根据二者之间的差异对估算进[19]行调整。运用类比法进行估算是要经过以下四个步骤:(a)评估新项目,确定被用作基值的类似项目。23
上海交通大学工程硕士学位论文软件项目成本管理的研究(b)获取被选作类比项目的一些信息,包括实际的工作量,工作进度,项目大小以及一些明确的成本驱动因子等。(c)求取类比项目的工作量和工作进度的平均值作为新项目的工作量和工作进度。(d)根据可能影响新项目工作量和工作进度成本驱动因子来调整初始的估算值。类比估算法的主要优点是估算值是根据某个项目的实际经验得出的,估算速度快,方法简单。类比估算的主要缺点是:无法弄清历史项目的经验数据在多大程度上与新项目的限制、技术、人事及其功能所相似。找到合适的类比对象需要做大量的调查工作,需要对历史项目有很详尽的了解,包括人力、财力、硬件设施、管理和当时的开发背景等;类比估算过于依赖历史数据。3.3.3算法模型法算法模型法提供一个和多个数学算法,这些算法将软件成本估算值看作为主要成本驱动因素的若干变量的函数。算法模型是通过已完成项目的成本及其特性分析建立起来的,通常包含乘数因子和指数因子,以反映被开发的产品属性、开发平台、过程以及软件开发人员等属性。估算模型的估算过程如图3-2所示。项目获取项目特殊估算模型输出Figure3-2:EvaluationProcessofEvaluationModel图3-2估算模型的估算过程算法模型法的优点是目的明确,使用起来效率很高,它针对以前的经验客观地进行评定。算法模型法的缺点是随着开发方法和开发人员经验的改变,模型需[20]要修订。算法模型的形式很多,比如,线性估计模型:Eoffrt=A0+A1X1+⋯x1x2xn+AnXn(3-1)乘积估计模型:Eoffrt=A0A1+A2+⋯+An(3-2)解析估计模型:Eoffrt=f(X1,X1X2⋯Xn)(3-3)由于软件成本驱动因素与软件成本之间是复杂的非线性关系,所以,完全符合上面三种模式的算法模型很少,通常的算法模型都是把以上几种表现形式的算法复合而得到的。比如:COCOMO,SLIM,Price-S,SEER、24
上海交通大学工程硕士学位论文软件项目成本管理的研究SOFTCOST等模型。其中COCOMO是比较流行的估计模型。COCOMO(ConsurtetiveCostModel)模型是目前可以得到的一种最完善的成本模型。COCOMO模型的基本bbdb形式:MM=abKLOC(3-4)TDEV=cbMM(3-5)其中,MM是以人月为单位的工作量,TDEV是以月表示的开发时间,KLOC是估算的项目代码行(以千行为单位)。系数ab和cb及指数bb和db根据三种不同的软件项目模式给出,见表3-1。COCOMO基本模型能给出一个快速而简略的估计,但其结果的精度不够。它没有考虑到开发技术、人员水平等环境因素的变化。因此Boehm在中级模型中引入了15个成本驱动因素(Costdrivers)来把软件开发的环境因素考虑进来。成本驱动因素分为四个主要类型:产品属性、硬件属性、人员属性及项目属性。每个成本驱动因[9]素在6个级别上取值(从“很低”到“很高”)。中级COCOMO模型的表达式为:biE=aiKLOC×EAF(3-6)其中,E是以人月为单位的工作量,KLOC是估算的项目代码行数(以千行为单位)。EAF(EffortAdjustmentFactor)即工作量调整因子,其典型值是从0.9到1.4之间的取值。[9]表3-1COCOMO模型相关参数软件项目abcbbbdb组织模式2.41.052.50.38半分离模式3.01.122.50.35嵌入模式3.61.202.50.323.4软件开发项目成本核算标准3.4.1软件开发项目维度软件开发项目包括三个维度:开发模式维、项目规模维和开发阶段维。(1)开发模式维:包括组织型开发模式、半独立型开发模式和嵌入型开发模式三种模式。(2)项目规模维:项目规模维包括小型项目、中小型项目、中型项目和大型项目四种规模。(3)开发阶段维:开发阶段维包括计划与需求阶段、软件开发阶段和运行维护三个阶段。25
上海交通大学工程硕士学位论文软件项目成本管理的研究3.4.2软件开发项目基本成本核算模型按照软件开发的生命周期各个阶段进行定量成本核算,通常用COCOMO(COnstructiveCOstModel,构造性的成本模型)。根据开发模式维度进行的工作量和进度公式,见表3-2和3-3。[1]表3-2基本COCOMO工作量开发模式维工作量(人月)1.05组织型MM=2.4(KDSI)1.12半独立型MM=3.0(KDSI)1.20嵌入型MM=3.6(KDSI)[1]表3-3标称COCOMO工作量开发模式维工作量(人月)1.05组织型MMnom=3.2(KDSI)1.12半独立型MMnom=3.0(KDSI)1.20嵌入型MMnom=2.8(KDSI)表3-2和表3-3中,KDSI-软件产品中交付源指令的千行数;基本COCOMO工作量(MM)计算公式适用于计划与需求阶段的成本估算;标称COCOMO工作量(MMNOM)计算公式适用于软件开发阶段和运行维护阶段的成本估算;公式中的相关系数和幂指数来源于大量的数据分析获得。3.4.3软件开发项目基本成本估算[1]表3-4标准规模产品的基本COCOMO工作量(人月)估算小型2KDSI中小型KDSI中型2KDSI大型28KDSI组织型5.021.391392半独立型6.531146687嵌入型8.344230121626
上海交通大学工程硕士学位论文软件项目成本管理的研究注:不同的项目规模可采用插入法计算。1.05例如:小型2KDSI组织型的基本工作量的计算:MM=2.4(KDSI)=2.4×(2)1.05=5.0[1]表3-5标准规模产品的标称COCOMO工作量估算工作量小型中小型中型大型(人月)2KDSI8KDSI32KDSI128KDSI组织型6.628.4121523半独立型6.531146687嵌入型6.534179946注:不同的项目规模可采用插入法计算。例如:小型2KDSI组织型的标称工作量的计算:MMNOM=3.2(KDSI)=3.2×1.05(2)=6.63.4.4工作量阶段分布对组织型模式、半独立型模式和嵌入型模式三种模式在软件开发活动方面差别进行讨论,发现这些项目模式在工作量的阶段分布估算上存在显著的不同,如表3-6所示(估算百分比分布)。[1]表3-6工作量的阶段分布小型中小型中型大型模式阶段2KDSI8KDSI32KDSI128KDSI计划与需求6666产品设计16161616组织型编程68656259集成与测试16192225计划与需求7777产品设计17171717半独立型编程64615855集成与测试19222528计划与需求8888嵌入型产品设计18181818编程60575451集成与测试2225283127
上海交通大学工程硕士学位论文软件项目成本管理的研究根据上述比例,我们可以计算出不同规模项目的工作量分布情况。表3-7是对2KDSI、8KDSI、32KDSI、128KDSI四种标准项目,在不同开发模式下,对不同阶段工作量的实际估算。[1]表3-7项目的工作量模式数量(人月)组织型半独立型嵌入型计划与需求0.30.50.7产品设计0.81.11.5小型项目编程3.44.25.0(2KDSI)集成与测试0.81.21.8总工作量(MM)5.06.58.3计划与需求1.32.23.5产品设计3.45.37.9中小型项目编程13.918.925.1(8KDSI)集成与测试4.06.811总工作量(MM)21.33144计划与需求51018产品设计152542中型项目编程5685124(32KDSI)集成与测试203664总工作量(MM)91146230计划与需求244897产品设计63117219大型项目编程231378620(128KDSI)集成与测试98192377总工作量(MM)39268712163.4.5计划与需求阶段工作量估算[1]表3-8计划与需求阶段的工作量估算工作量小型2KDSI中小型8KDSI中型32KDSI大型128KDSI组织型6%6%6%6%半独立型7%7%7%7%嵌入型8%8%8%8%28
上海交通大学工程硕士学位论文软件项目成本管理的研究注:计划与需求阶段的工作量计算方法为:将不同的开发模式下的百分数与对应的基本COCOMO工作量(MM)相乘获得。例如:小型2KDSI组织型的计划与需求阶段的工作量的计算:6%×MM=6%×5.0=0.33.4.6软件维护成本估算年维护工作量的计算公式如下:MMAM=(1.0)(ACT)(MMNOM)(EAFM)(3-7)其中,MMAM是年维护工作量;ACT(年变化量)是在一年中(典型的)经历变化的软件产品的源指令部分,或者是增加的或者是修改过的;EAFM(维护工作量调整系数)由调整过的产品属性和项目属性的维护工作量乘数决定。产品属性的维护工作量乘数见表3-9,项目属性的维护工作量乘数见表3-10。3.4.7软件开发成本驱动因素属性为了评定计算机属性的成本驱动因子取值,需要更多地借助开发技术人员的专业知识。综合技术人员意见,在软件开发过程中执行时间和主存储器约束因子在客户-服务器系统是不受限制的,因为可以随时根据变化的情况增减处理器和存储器。虚拟机是指软件子系统完成其任务所调用的硬件与软件的复合体,并包[1]括支持编写程序语言所用的语言编译器或汇编程序。针对本软件,其基础虚拟机由计算机硬件、操作系统、数据库管理系统组成。这些基础虚拟机的变化频率是稳定的,尤其在开发早期阶段不会有太大变化。[1]表3-9产品属性的维护工作量乘数很低低标称高很高1.351.151.000.981.10[1]表3-10项目属性的维护工作量乘数产品规模很低低标称高很高2KDSI1.251.121.000.900.818KDSI1.251.141.000.880.7732KDSI1.401.181.000.850.72128KDSI1.451.201.000.840.7029
上海交通大学工程硕士学位论文软件项目成本管理的研究建立项目开发的基本人员配置之后,变动的工作量部分主要由初级开发人员和初级测试人员完成,有时候二者是同一批人。按照方案建议书产生的工作分解[28]和人员分解主要体现在初级开发人员和初级测试人员的工作分配上。为中小项目软件开发小组所需的基本人员是按照项目经理、架构设计师、高级开发人员、[31]中级开发人员、初级开发人员、软件测试人员不同比例配备的。要估算整个软件的功能点大小,先要估算出五种类型的功能点大小。即是外部输入(主要指数据输入界面)、外部输出(主要指报表)、外部查询(应用系统与外部之间的通信或外部消息)、外部接口文件(输入和输出之间的接口文件)、内部逻辑表(数[29]据库的数据表数目)。在实际软件项目开发中,生产率不必然随项目规模的大小变化而相应地变化。大的项目需要更多的协调和沟通时间,生产率一般情况下要比小项目低,所以引入幂指数,以表示项目的规模经济性,以弥补源代码行[11]数增加而生产率下降引起的影响,这样可以再增加规模度因子。[1]表3-11软件开发工作量乘数影响因素很低低标称高很高极高产品软件可靠性0.750.881.001.151.40属性数据库规模0.941.001.081.16复杂性0.700.851.001.151.301.65计执行时间约束1.001.111.301.66算机属现代编程规范1.001.061.211.56性计算机周转时间0.871.001.071.15人分析员能力1.461.191.000.860.71员属应用经验1.291.131.000.910.82性程序员能力1.421.171.000.860.70编程语言经验1.141.071.000.95现代编程规范1.241.101.000.910.82项目软件工程工具的使用1.241.101.000.910.83属性开发进度1.231.081.001.041.103.4.8软件开发项目总成本估算30
上海交通大学工程硕士学位论文软件项目成本管理的研究项目总成本=人力成本+项目监理成本+软件平台成本+硬件平台成本+附加成本软件开发项目人力成本=计划与需求成本+基本成本+软件维护成本以软件开发项目人力成本计算方法为例,假设某软件开发项目根据分析可得出以下结论:(1)根据分析确定,项目特征表明应采取嵌入型开发模式。(2)预计产品的初始规模是80KDSI。(3)预计年变化量(ACT)为15%。(4)预计成本驱动因素等级见表3-12。(5)预计维护工作量调整系数(EAF)为:产品属性的维护工作量乘数为高级(0.98,表3-9);项目属性的维护工作量乘数为很高级,由于80KDSI正好处于标准中型(32KDSI)和标准大型(128KDSI)的中间,取0.72和0.70的中值0.71(见表3-10)。[1]表3-12产品成本驱动因素等级分析表成本驱动因素情况级别工作量乘数系统的本地化应用。没有严软件可靠性标称1.00重的恢复问题数据库规模20000字节低0.94复杂性通讯处理很高1.30执行时间约束将使用70%的可用时间高1.11主存储器约束需64K存储空间的45K高1.06计算机周转时间平均2小时的周转时间标称1.00分析员能力优秀的高级分析员高0.86应用经验3年标称1.00程序员能力优秀的高级程序员高0.86编程语言经验12个月标称1.00现代编程规范大部分已使用超过一年高0.91在基本的微处理器工具级软件工程工具的使用低1.10别开发进度标称进度的100%标称1.00工作量调整系数1.17运用COCOMO模型对该例子进行计算。1)根据表3-4和表3-5,确定嵌入型模式的产品开发所需的工作量根据表3-4,由于80KDSI正好处于标准中型(32KDSI)和标准大型(128KDSI)的中31
上海交通大学工程硕士学位论文软件项目成本管理的研究间,其工作量(标准)取230和1216的中值,即723人月。根据表3-5,由于80KDSI正好处于标准中型(32KDSI)和标准大型(128KDSI)的中间,其工作量(标称)取179和946的中值,即562.5人月。2)根据表3-6来确定嵌入型模式的计划与需求阶段工作量计划与需求阶段工作量=工作量(基本)×计划与需求阶段工作量的阶段分布比例=723×8%=57.84人月3)根据表3-3和表3-12来确定嵌入型模式的软件开发阶段工作量软件开发阶段工作量=工作量(标称)×工作量调整系数=562.5×1.17=658.125人月4)确定嵌入型模式的软件维护阶段工作量年维护工作量:MMAM=(1.0)(ACT)(MMNOM)(EAFM)=15%×562.5×(0.98×0.71)=58.708人月5)确定软件开发项目人力成本的工作量软件开发项目人力成本的工作量=计划与需求成本的工作量+基本成本的工作量+软件维护成本的工作量=57.84+658.125+58.708=774.673人月6)计算软件开发项目人力成本假定当前软件开发人员月均工资为5000元,则该软件开发项目人力成本为:774.673×5000=3,873,365元3.5本章小结本章分析了软件项目成本估算问题,重点就COCOMO模型和CMM模型进行了介绍,并对成本估算步骤和成本估算方法进行了探讨,还着重研究了软件开发项目成本核算标准的问题。软件项目成本估算步骤大体包括建立目标、计划所需要的数据与资源、准确说明软件需求、选择估算方法与实际应用等,软件项目成本估算方法主要有专家判定法、类比法、算法模型法等。本章按照软件开发的生命周期各个阶段,详细介绍了运用COCOMO成本模型进行定量成本核算的过程,对于后面对农批市场信息系统进行成本估算提供了的基本思路和方式方法。32
上海交通大学工程硕士学位论文软件项目成本管理的研究第四章公司软件项目成本管理应用案例成本估算与管理是是软件项目研发必须高度重视的问题,也是我们进行实证研究的一个主要问题。我们以前面的估算方法为指导,对w农产品有限责任公司系统软件项目的工作量进行估算,并以此探讨研发这个软件的成本问题。4.1项目简介w农产品有限责任公司,是该市农业产业化经营重点龙头企业,公司集农产品生产、加工、包装、储运、批发、拍卖、直销、连锁零售经营、进出口贸易、物流配送等多功能的产业体系和流通模式。公司以农产品批发市场为中心,向生产、零售领域两头延伸,构建了全国性的农产品市场体系,旗下有农产品批发市场及多家集贸市场,还控股着专门经营果菜、饮料、生猪、海鲜等的专业公司。在国家农业信息化改造工程中,国家为各地农产品批发市场的信息化改造投入了大量资金,w农产品有限责任公司希望借此机会,实现信息化改造,建立管理信息的快速反应机制;降低产品交易的总体成本,提高资源配置效率,促进业务流程改造;公司所希望实现的信息化系统包括物业管理、交易管理、库存管理、公司内部管理4个子系统,为了叙述方便,以下将此项目简称为wMIS。项目通过公开招标来选择本项目的开发方,w公司通过公开竞标的方式得到了这个wMIS项目的开发权。该项目从2008年2月立项,3月开始正式启动,要求在2008年11月完成系统安装调试及试运行工作,2008年12月系统投入正式运行。项目总工期为9个月,扣除其间的国庆、元旦、春节等法定假日,有效工作时间为35周。农批信息系统主要分为5个子系统,包括:物业管理、.交易管理、库存管理、公司内部管理、系统管理。各个子系统包括的模块主要有:物业管理子系统包括有:档位管理模块、租赁管理模块、收费管理模块、报表统计模块、交易管理子系统包括有:帐号管理模块、买卖交易模块、收费管理模块、信息发布模块、报33
上海交通大学工程硕士学位论文软件项目成本管理的研究表统计模块库存管理子系统包括有:库存管理模块、采购管理模块、物流管理模块、表格输出模块、公司内部管理子系统包括有:考勤管理模块、计划管理模块、文档管理模块系统管理子系统包括有:用户管理模块、权限管理模块、代码管理模块根据部分现有管理系统运行的实际环境和将来进一步扩展的需要,用户要求软件系统采用当前主流的技术模式,基于SQLServe:数据库的Client一Serve:模式(简称CS模式)。要求实现以下功能:实现全公司信息的集成,即实现各分系统之间正确及时地交换、传递和共享信息;保证数据的一致性、正确性,实现统一维护管理,保证公司数据的安全性,制定严格的模块权限、数据维护、查询权限。针对本项目W公司成立了相应的项目组,包括系统分析、软件技术、硬件技术、系统测试、综合管理等相关人员,客户方由一位有较高计算机知识水平的信息部的经理牵头配合,并抽派了一名软件技术人员全面参与项目组。由于负责软件研发的单位目前还处于CMM第2层级(可重复级),虽然已建立了基本的项目管理过程,有一些基本项目数据和文档的储存,但相关数据和信息的采集和保存还不是很规范,有待进一步标准化,且可使用的历史项目数据不多。为了实现估算系统的充分学习,仍然采用COCOMO数据库中的60个历史项目数据来训练网络。估算的思路和步骤见图4-1。34
上海交通大学工程硕士学位论文软件项目成本管理的研究进入历史数据库新项输入训练目数训练好的网络据调整输出新估算结果比较实际结果Fiture4-1:MethodandProcessofEvaluation图4-1估算思路和步骤将本项目的成本驱动因子等16个成本相关数据输入训练好的模糊神经网络估算系统,得出本项目的估算工作量。将估算的工作量与项目各阶段的实际结果进行比较,如果差距过大,就需要适时调整结果以及根据该结果制定的工作进度和计划,从而实现对软件项目的过程管理,并且使整个管理过程具有可控制性。最后,新项目的相关数据可以作为新的历史数据进入历史数据库,为以后的项目评估和管理提供量化的依据和重要参考。4.1.1工作量估算(1)确定软件的规模估算的第一阶段是通过开发组与客户密切合作,确定客户所需要的最重要的软件功能和与之相关的软件规模。根据农批市场信息系统需求分析,估算预计交付的代码行,见表4-1。表中“KDSI”代表软件产品中交付源指令千行数。35
上海交通大学工程硕士学位论文软件项目成本管理的研究表4-1软件规模功能分类预计交付代码行数(KDSI)用户的界面0.75档位管理模块0.30物业管理子系统租赁管理模块0.852.20收费管理模块0.75报表统计模块0.30帐号管理模块0.30买卖交易模块0.95收费管理模块0.90交易管理子系统3.30信息发布模块0.35报表统计模块0.30信息查询模块0.50库存管理模块0.55采购管理模块0.85库存管理子系统物流管理模块0.703.30表格输出模块0.55信息查询模块0.35库存管理子系统1.00系统管理子系统0.55功能规模总计10.80(2)分析软件开发项目的维度:根据3.4.1章节所述,软件开发项目包括三个维度,即开发模式维、项目规模维和开发阶段维。开发模式维包括组织型开发模式、半独立型开发模式和嵌入型开发模式三种模式;项目规模维包括小型项目、中小型项目、中型项目和大型项目四种规模;开发阶段维包括计划与需求阶段、软件开发阶段和运行维护三个阶段。A)分析开发模式维。wMIS系统软件是由研发单位与用户共同协商开发的,特别是在提出和深化需求、软件系统修订过程中配合非常密切。这个软件开发模36
上海交通大学工程硕士学位论文软件项目成本管理的研究式为“半独立型”开发。B)分析项目规模维。表4-1显示,wMIS系统软件功能模为KDSI=10.80。根据小型项目、中小型项目、中型项目、大型项目四种规模的标准规模分别为2KDS、8KDS、32KDSI、128KDSI来划分,这个系统软件可以看成是中小型项目。C)分析开发阶段维。wMIS系统软件的研发与使用的过程,可以大体划分为计划与需求、软件开发和运行维护三个大的阶段。这三个大的阶段的工作量也是不同的,主要集中在软件开发阶段。我们以需求开发任务,为了研究分析方便,划分为四个具体阶段,即“计划与需求”、“产品设计”、“编程”、“集成与测试”。(3)工作量估算从理论上看,基本COCOMO工作量(MM)计算公式适用于计划与需求阶段的成本估算;标称COCOMO工作量(MMnom)计算公式适用于软件开发阶段和运行维护阶段的成本估算。根据表3-2和表3-3中的公式:基本COCOMO工作量半独立型MM=3.0(KDSI)1.12标称COCOMO工作量半独立型MMnom=3.0(KDSI)1.12可见,对于“半独立型”开发模式来讲,这两个公式得到的工作量估算数据是相1.121.12同的。以标称公式计算,结果如下:MMnom=3.0(KDSI)=3.0×10.80=43.1078≈43(人月)(4)按照子系统计算工作量1.12根据公式MMnom=3.0×(KDSI),我们可以计算出各个子系统的工作量,见表4-2。37
上海交通大学工程硕士学位论文软件项目成本管理的研究表4-2子系统的工作量预计交付代码行功能分类标称工作量(KDSI)数用户的界面0.752.17365127档位管理模块0.300.77892754物业管理子系统租赁管理模块0.852.500751002.207.2549539收费管理模块0.752.17365127报表统计模块0.300.77892754帐号管理模块0.300.77892754买卖交易模块0.952.83251157收费管理模块0.902.66607809交易管理子系统3.3011.4250173信息发布模块0.350.92571535报表统计模块0.300.77892754信息查询模块0.501.38028148库存管理模块0.551.53577455采购管理模块0.852.50075100库存管理子系统物流管理模块0.703.3010.26826482.01201428表格输出模块0.551.53577455信息查询模块0.350.92571535库存管理子系统1.001.003.00000000系统管理子系统0.550.551.53577455由图4-2可以直观看出不同子系统所需要工作量。38
上海交通大学工程硕士学位论文软件项目成本管理的研究Figure4-2:WorkLoadofDifferentSubSystem图4-2不同子系统所需要工作量(5)软件工作量阶段分布估算根据表3-6所列数据,作为“中小型”和“半独立型”的wMIS系统软件,其工作量阶段分布比例数据是:计划与需求为“7”,产品设计为“17”,编程为“61”,集成与测试为“22”。计算结果如下(见表5-3):计划与需要求阶段工作量:MMnom×7%=43×7%=3.01(人月)产品设计阶段工作量:MMnom×17%=43×17%=7.31(人月)编程阶段工作量:MMnom×61%=43×61%=26.23(人月)集成与测试阶段工作量:MMnom×22%=43×22%=9.46(人月)表4-3:软件工作量阶段分布估算表4-3:软件工作量阶段分布估算工作阶段估算比例工作量某省人事监督系计划与需求73.01统产品设计177.31软件项目编程6126.23(10.80KDSI)集成与测试229.46总计10746.01不同阶段的工作量如图4-3所示。从图4-3中可以看出,工作量最大的是编39
上海交通大学工程硕士学位论文软件项目成本管理的研究程阶段,工作量最小的是计划与需求阶段。Figure4-2:WorkLoadofDifferentPhase图4-2分阶段工作量4.2项目成本计划公司为项目所提供的人力资源如表4一4所示表4一4人力资源表任务名称人力资源名称编号项目管理项目经理R1系统需求分析系统设计师R2业务模块编码高级程序员R3一般模块编码初级程序员R4单元测试测试工程师R5文档编写文档编辑R640
上海交通大学工程硕士学位论文软件项目成本管理的研究将系统按模块拆分,并为每一个模块单独估算资源需求量,生成项目资源需求表。表4一5项目资源需求表总工作量资源需求(人月)说明模块(人月)R1R2R3R4R5R6档位管理模块30.30.201.80.40.3租赁管理模块40.40.302.30.60.4收费管理模块50.50.711.50.80.5报表统计模块50.50.511.70.80.5帐号管理模块30.30.501.50.40.3买卖交易模块111.1241.31.51.1收费管理模块80.8131.20.20.2信息发布模块20.20.201.20.20.2报表统计模块60.60.321.510.6库存管理模块70.70.821.61.20.7采购管理模块50.50.802.40.80.5物流管理模块40.40.402.30.60.3考勤管理模块20.20.101.30.20.2计划管理模块50.50.81.510.80.4文档管理模块40.40.302.30.60.4用户管理模块30.30.201.80.40.3权限管理模块10.1000.70.10.1由于项目中可变因此很多,在确定项目整体计划后,项目的详细人力资源计划一般以月为单位进行计划,表4一6和4一7分别为项目3月份的项目进度表和时间段人力资源需求计划。项目经理应于每月28号前完成下个月的项目计划,并提交部门。41
上海交通大学工程硕士学位论文软件项目成本管理的研究表4一6项目进度表(物业管理子系统)任务责任人开始旧结束日软件工前置任阶段任务描述编号人期期期作产品务编号分析功能需求分编写需求分析3月13月51细节,界面析说明报告日日样式式书项目组针对需求分3月83月22数据库数数据库设计2析进行数1日日ER图据结构设计项目组针对需求分3月153月19组件设组组件设计3析进行业1日日计务组件设计项目组针对需求分其他补析进行其3月203月21其他设计4充设计1他补充设日日文档计,包括HTC等概要设项目组实3月224月10编程5计说明4现需求日日书双方项目单元测试和集3月304月10测试报6组进行测5成测试日日告试根据项目进度表,生成按时间段确定的资源表表4-7时间段人力资源表总工作量资源需求(人)说明时间(人/月)R1R2R3R4R5R62005-3-1至81113112005-3-1最后,根据项目资源表和时间段资源表,整理出软件项目人力资源需求表42
上海交通大学工程硕士学位论文软件项目成本管理的研究表4一8项目人力资源计划表任务名称人力资源名称称工作量/人月资源数量/人项项目管理项目经理7.81系系统需求分析析系统设计师9.12业业务模块编码码高级程序员14.52一般模块编码初级程序员27.44单单元测试测试工程师11.62文文档编写文档编辑7.61合合计78124.3项目成本控制4.3.1计划控制计划控制目的主要有以下内容监控成本执行的情况,确定实际成本与计划成本之间的偏差;确保成本的修改和变更是适当的向项目的有关方面准确地传递成本变化的信息。(1).项目数据采集没有变化是不可能的,当项目发生变化的时候,项目经理的责任是识别出、控制住并报告这个变化,这样,就尽到了项目经理的责任。做好成本控制工作需要获得一些信息来源,即成本基准计划、执行情况报告等。项目组应于每周末对本周工作完成状况进行总结和分析,并向工程部提交《周工作计划完成情况表》。于月底前对本月工作完成状况进行总结和分析,并向工程部提交《月工作计划完成情况表》。没有执行的项目计划只能变成一纸空文。项目计划制定出来后,项目总监、项目经理、SQA必须监控计划的执行,及时发现、解决计划执行过程的问题,从而保证项目进度的顺利开展。为保证数据的真实性和可靠性,对上报的周报数据,必须经过严格审查、审计,也可采取个别谈话、征求客户意见、调阅有关材料和数据等方式,对所采集的数据进行核查。对《项目管理计划》的监控,可由SQA进行;对于《项目进度计划》,除了项目总监、SQA通过日常项目报告和上门走访进行监控外,在项目实施现场,可采用以下办法进行有效监控:43
上海交通大学工程硕士学位论文软件项目成本管理的研究1)将每周工作计划制成《工作计划完成情况表》(具体时间可以安排到小时),对相关任务安排设置主要负责人(主要负责人包括双方项目组人员),项目经理将《工作计划完成情况表》打印出来张贴到项目组成员可见的位置,每项任务主要负责人完成每项工作任务后自觉进行签字确认。《工作计划完成情况表》的格式可参见下表:表4一9工作计划完成情况表(样例)时间工作内容负责人完成情况确认2007-5-20完成办公室所有□完成签字:王五8:00-10:00有客户端的安装□未完成2007-5-20完成法规处所有□完成签字:王五8:00-10:00有客户端的安装□未完成2)项目经理与客户项目负责人对存在风险的工作任务给出指引、提供帮助,保证项目计划的顺利执行;3)每周至少召开一次项目组内部会议,对本周计划的完成情况进行审核,对存在的问题进行解决。(2)项目计划调整与变更按时完成项目是项目实施的目标结果,计划是为达到这一结果而采取的控制手段,计划一旦制定就意味着执行计划的人员要主动地调用各种资源完成计划任务。但在项目执行过程中,经常出现项目的进度早于或晚于计划进度、已经发生的实际成本低于或高于计划成本,这时就需要对计划进行相应的调整或变更。尽管计划调整、计划变更是项目实施过程中常见的情况,但过于频繁的计划调整不仅不利于项目工作的开展,而且容易使项目进度不可控。因此,应该建议客户在项目实施过程中要充分重视项目计划,遵循“能不调整就不调整”的原则慎重地进行计划的调整。若要调整、变更,要遵循以下要求:1)控制点要求尽量只进行计划调整,即调整分项项目计划里的时间安排,并采取措施对近期即将发生的活动加强控制,积极挽回时间和成本;工期估计最长或预算估计最大的活动应进一步审核预估依据,并做好压缩该活动时间和费用的准备工作,因44
上海交通大学工程硕士学位论文软件项目成本管理的研究为估计值越大的项目越有压缩的可能;将某些可以再分的活动进一步细分,研究细分活动之间并行工作或知识重用的可行性;总体项目的计划变更次数控制在3次以内,每次变更必须遵循“计划变更流程”进行书面审批。2)计划变更流程①致项目发生计划变更的原因通常有以下几种,项目经理必须主动与客户负责人做好沟通、协调,就计划是否需要变更达成共识;需求变化导致项目计划变更:例如客户增加需求、调整需求等造成工作量增大,需要进行计划变更。属于客户原因。原计划估计不足导致项目计划变更:项目组由于对原工作量估计不足,致使计划变更。属于项目组原因。客户要求项目计划变更:包括客户主动提出项目计划变更、由于客户没按计划配合导致计划变更(例如用户培训没按计划安排、需求调研没按计划配合导致延长等)等因素,属于客户原因。②方确定需要进行计划变更后,项目经理填写《计划变更申请表》(对外),说明变更原因、变更的内容与情况,并对变更可能产生的影响进行分析描述后,提交客户签字;③户必须在《计划变更申请单》(对外)上签字,确认同意计划变更;④有在客户同意计划变更后,项目经理才可通过填写《计划变更申请表》(对内),附上最新的进度计划通过邮件发送给项目总监、客户服务中心总监组、SQA,向公司提出计划变更申请。若由于计划变更导致项目成本增加,对内的计划变更申请还应说明变更的费用情况;⑤目总监审核变更情况,结合项目的变更次数确定是否同意变更。若项目总监不同意变更,则写入意见后可通过邮件回复项目经理、客户服务中心总监组、SQA:若同意变更,则将此申请表打印出来签字后提交客户经理;⑥户经理可对变更情况进行审核,签字完成后提交给项目总监。⑦目总监将客户经理审核通过的此表提交客户服务中心内部负责管理的总监审核,审核计划及费用预算。客户服务中心总监审核通过的变更正式生效,正式生效的变更不能超过3次。4.3.2需求控制在软件项目中,客户需求发生变化或提出新的需求是不可避免的,需求变更45
上海交通大学工程硕士学位论文软件项目成本管理的研究可能导致成本增加、进度延期和潜在风险,因此为保证项目成功,必须加强项目需求管理。(l)最终用户提出变更需求:客户的最终用户通过填写《客户意见反馈表》向客户需求负责小组提交新需求或变更需求意见。(2)需求负责小组整理审核需求:需求负责小组搜集整理最终用户提交的需求意见反馈,并进行初步审核,筛选无效需求、整合相同需求,评估相关意见是否需要进行需求变更,若需要进行需求变更,则结合最终用户意见填写《需求变更申请表》提出需求变更申请,提交客户方项目负责人,此情况必须将最终用户的《客户意见反馈表》作为变更申请附件;需求负责小组成员也可以直接提交《需求变更申请表》提出需求变更申请。(3)项目负责人审核确定需求:项目负责人从整个项目的宏观角度着重审核需求的合理性,并将其认为合理的需求提交项目经理。(4)项目经理审核、分析变更影响:项目经理在分析变更影响时要着重分析此变更需求是否与原有需求存在矛盾、分析实施变更与不实施变更分别给项目带来的风险。对于项目经理认为实施变更比不实施变更影响更大的需求,项目经理必须列出风险影响,提交需求变更委员会讨论。(5)需求变更委员会讨论、确定是否通过变更:委员会通过分析项目经理的变更影响,做出变更评审结果,委员会成员签字确认评审结果。需求变更的评审结果有以下几种:通过拒绝:必须说明拒绝的原因部分通过:必须界定通过的内容与不通过的内容,并说明原因延期考虑:必须说明原因及延期的时间(6)获得通过或部分通过的变更,可由项目经理安排人员执行、实现变更;不通过的变更,则由需求负责小组向提出变更需求的最终用户进行回复、做出解释。4.3.3项目成本考评在成本考核的过程中,上级主管应对下属员工进行成本监督,促使员工达到成本计划的目标。部门经理和项目经理在对下属员工进行正确评估后应及时与员工进行面谈和沟通,做好成本管理的反馈工作。(l)做好项目成本评价工作46
上海交通大学工程硕士学位论文软件项目成本管理的研究成本考评是项目绩效考核中的核心环节之一,做好成本评价工作才能保证项目绩效考核工作的顺利展开。l)对象成本考核的对象可以是项目组的组员,也可以是项目,而不同的考核对象,考评的内容、方法、程序等会各不相同。因此,明确考评的对象,是成本考核体系设计最起码的工作。考核对象主要是包括如下两类:项目:考核公司具体项目的资源使用效率,其结果将对项目的主要负责人的绩效考核产生影响。项目组员:程序员、系统分析师、测试工程师、美工等等,其主要职责为各自专业所界定的工作职责。2)方式月度计划实行纵向逐级考核。各级(管理)岗位按照上级的阶段工作重点,结合本职工作,经过上下沟通,形成月度计划,实行月度考评。实行工作日志制度,各级管理人员建立工作日志,各管理人员对每天的工作进行分工、点评和要点记录,对本岗位当日重点工作完成情况进行记录。部门主管根据工作情况定期对项目计划完成情况进行点评和要点记录,作为月度考评的过程控制。对项目组的年度成本指标完成情况,依据项目实际执行情况,进行年度考评。3)核数据收集①据收集的程序工程部于每个月末给各项目组下达书面通知,对数据收集提出具体要求,于每个月末将项目及员工计划完成情况数据报相关管理人员审核,然后报人力资源部备案。②据收集的职责分配工程部和项目经理负责业务指标的审计确认,保证数据的真实可靠,最后将审定后的数据报人力资源部。工程部负责组织数据收集并汇总。③据收集过程中应注意的问题为保证数据采集结果的真实性和可靠性,对上报的考核指标数据,必须经过严格审查、审计,也可采取个别谈话、征求客户意见、审查工作报告、调阅有关材料和数据、听取监督部门意见等方式,对所采集的数据进行核查,发现数据与事实不符或有舞弊行为的,要及时采取措施予以更正。需要平衡调整的,按程序47
上海交通大学工程硕士学位论文软件项目成本管理的研究报批。对出现的虚报浮夸、弄虚作假等问题要及时进行调查核实,凡情况属实的,要采取果断措施,及时予以纠正处理。(2)成本考核的过程管理l)工作中的辅导上级主管应在实际日常工作中经常性的指导下属员工。通过经常不断的指导能确保员工从一开始就能把工作做正确,这样可以省去大量花在等问题产生以后再去解决的成本,同时还能确保员工的工作结果符合公司的利益和客户的期望。2)中期回顾中期回顾的目的与平时日常工作中经常性指导是相同的。中期回顾是一次较正式的跟踪指导,上级主管应提供必要的指导以确保下属.员工的工作完成状况能达到或超过计划。中期回顾可设置在项目的关键点或里程碑处。3)人考评反馈计划执行情况收集完成后,工程部要组织有关人员对计划完成情况进行全面的综合分析,并对每个员工的任务完成情况做出阶段性评估结论,并以书面形式向员工进行反馈。反馈的主要内容,应包括经理审核后的考核结果,并根据其任务完成情况,肯定成绩,指出问题和不足,提出改进工作的建议和要求,帮助制定工作改进计划,作为年度考核分析的依据。员工如对考核评价结果存有异议,可按管理权限逐级反映,如需要更改,按程序审批。(3)成本考核沟通制度1)年度KPI指标沟通每年根据公司战略目标、公司重点工作等确定项目、岗位年度KPI时,委员会应与部门、部门与员工进行充分的双向沟通。每年初,公司召开业绩分析会,对上年度KPI完成情况进行分析,并确定本年度灯I计划。2)项目资源计划沟通项目中的成本计划应该在各岗位员工确定资源分配计划前,应结合项目计划安排,就计划的工作内容、具体考评标准等与下属进行充分沟通。3)成本考评沟通各级组长在正式考评结果公布时,应与下属进行正式沟通,并进行正式记录,形成《员工沟通分析表》。48
上海交通大学工程硕士学位论文软件项目成本管理的研究4)月度计划任务完成状况沟通会议月度计划任务完成状况沟通会议分项目和部门层层召开,会议由项目或部门经理召集,结合月度计划会议召开。上级主管应定期组织对下级计划任务完成状况沟通会议进行抽查。5)成本管理申诉沟通在成本评价过程中,员工有不同意见,通过与上级主管沟通不能达成共识的,有权进行申诉。除正式沟通制度外,公司鼓励非正式沟通和交流。各级主管应追踪项目计划进展情况,及时纠正员工行为与工作目标之间出现的偏差,帮助寻找问题与原因,并对员工进行必要的辅导,促进项目计划的实现。4.3.4降低成本的策略对于软件开发企业来说,提高在多个项目中的代码复用程度是降低开发成本最直接的方法之一,几乎所有的软件研发型企业都具有自己的产品。从项目规模分解表来看,本项目的代码复用度仅为26%。公司虽然在某些功能上已经实现了模块化,但代码的总体复用程度仍然很低。对此,本文提出以下策略:(l)建立一个为使用一定范围的复用方案的项目,所有项目都必须以这个项目为核心。(2)把对复用项目的贡献作为项目奖的考核指标之一:可以在根据项目调研确定的需求与通用项目已确定的需要做对比,确定可以从复用项目提出的内容以及项目对复用项目的贡献,并确定项目奖的考核指标。当项目完成后,用一周到两周的时间,整理出可以对复用项目贡献的内容。后来项目应根据所节约的成本奖励一定比例到贡献项目中。(3)通用项目的需求轮廓的确立应该是这样的:由咨询工程师根据以往的项目,尽可能多的施工企业对业务的需求,提出一套尽可能完整的业务需求。项目经理:根据具体的项目需求提炼公共部分的需求到复用项目中,作为项目奖的考核因素之一。测试、咨询工程师:测试主要是从软件易用性,人性化的角度提出需求,也可以将在测试过程中遇到的需求整理到复用项目中;咨询工程师从业务的角度,或者是在实施过程中从用户中获得的需求提炼到复用项目中。用户需求搜集:鼓励用户,特对是老用户,将自己的需求提出到复用项目中。这要求每个49
上海交通大学工程硕士学位论文软件项目成本管理的研究项目中都必须有一个功能,方便用户发送需求道复用项目中。需求已在复用项目中完成时,除发送邮件给用户外,还应发送到用户的网络管理员及相关人员中。对工作量不大的修改,应免费给用户进行修改。(4)由于复用项目建设周期长,人员流动在所难免,因此必须文档尽可能规范,尽可能做到新到员工只通过查阅相关文档及代码,即可快速修改。同时,复用项目是通过所做的项目所提炼而成的,而不是将几个项目粘贴在一起的。因此,在提炼项目时,应考虑是否与复用项目融合在一起,复用项目要拆分时,要怎样拆分才是最迅速的。(5)应有专人负责管理复用项目中的需求管理,到需求数量达到一定程度时或在某个时间范围内(3到6个月),开会确定需求添加到复用项目的需求;项目经理在项目需求确定后,通过和复用项目需求的对比,然后通过评审确定项目要实现的复用项目的需求;项目验收后,通过项目的总结,将公用部分提炼到复用项目中,对提炼到的内容作简单的验收,并对复用项目中已完的需求状态作修改;在项目提炼到通用项目后或者是某个子模块比较成熟时,对复用项目进行拆分,以便其他项目能快速采用。4.4实施效果W公司今年参与的农批市场信息化项目招标所竞得的项目,给W公司及其经营团队带新的机遇和巨大的压力。公司籍此机会进行了公司创建以来前所未有的改革,包括项目体制改革、组织架构调整、人员的调整以及多项制度改革等重大举措,随着项目管理机制的建立,公司的成本管理体系也按照重新设计的方案逐步建立起来,大大提高公司对项目成本的控制水平。在wMIS项目中,由于实行了新的成本管理方案,项目经理在成本管理上的责权清晰明确,激励与约束合理到位,成本管理所产生效益已得到体现,至今项目完成水平已超过公司预期目标。随着公司的不断发展及相关配套制度的完善,新的项目成本管理体系必将发挥更为重要的作用。50
上海交通大学工程硕士学位论文软件项目成本管理的研究结束语当今我国软件企业普遍规模不大,软件项目延期、超出预算、品质低劣甚至项目失败等现象十分严重。在软件项目管理中,成本管理是软件项目管理的核心问题之一,而现有的软件成本管理理论和实践,主要针对大中型软件企业的大型复杂项目。因此,探讨适合我国中小规模软件企业项目成本管理具有重要意义。本文是针对w公司的成本管理现状,结合国内中小规模软件企业在软件开发中的成本管理现状及对于有效成本管理方法的需求,而提出的一种成本管理方案。(l)本文从项目管理者的角度出发,探讨了软件项目成本管理的定义、特性等,研究了PMBOK的成本管理理论体系、COCOMO成本估算模型等主流成本管理框架体系。分析了这些体系提出的成本管理方法、特点和局限性。(2)针对中小规模软件企业项目开发中成本管理的特点和问题,本文以经典的软件成本管理理论为基础,结合一个具体的软件公司w公司,制定了适合于中小规模软件企业的一套简洁、易用的项目成本管理方法。该方法分为成本评估、成本计划、成本控制三大步骤。在成本评估阶段,采用以类比分析法结合COCOMO成本评估模型,同时采用层次分析法将现有模型进行了分析。在成本计划阶段,根据PMBOK的成本管理理论体系,采用WBS任务分解法进行资源安排。在成本控制阶段,结合S公司现有成本控制状况,指出公司在成本控制所存在的问题,并针对这些问题,给出了解决这些问题的思路和方法。(3)针对w公司的一个具体软件开发项目“农批市场信息系统建设项目”将设计出的软件项目成本管理模式进行了应用,进行了详细的成本评估、成本计划及成本控制设计,形成了一份完整的项目成本管理分析报告和成本管理方案。本文的研究主要是对项目成本管理理论应用到我国中小型软件公司的项目管理实践上进行了尝试。通过本文的探索,旨在为国内项目管理者对软件开发项目的成本的评估、计划、控制提供一套标准化、系统化、定量化和切实可行的方法体系,为国内中小软件企业的软件项目成本管理在实际中的应用提供参考。51
上海交通大学工程硕士学位论文软件项目成本管理的研究参考文献[1]、张家浩软件项目管理[M」,机械工业出版社2005[2]、王克仁、陈允明、陈新养正译,软件项目管理[M],科学出版社,2002.10[3]、白思俊.现代项目管理[M].北京:机械工业出版社,2002.[4]、中国(双法)项目管理研究委员会,中国信息产业商会,中国电子信息产业发展研究院编著,iPMBOK2004[M].北京:电子工业出版社,2004.[5]、曹哲.软件工程[M],北京:中国水利水电出版社,2004.[6]、郑仁杰、殷仁昆,实用软件工程(第二版)[M],清华大学出版社1997年4月[7]、韩万江,姜立新.软件开发项目管理[M].北京:机械工业出版社,2004.[8]、黄锡伟编著,CMM解析与实践[M],人民邮电出版社2004.10[9]、张友生,个体软件过程的改进[M],软件工程专家网中国系统分析员协会(CSAI)2003.2[10]、架跃著,软件开发项目管理[M],上海交通大学出版社2005-8-1[11]、(美)勃姆(Boehln,B.W.)等著,李师贤等译,软件成本估算COCOMOII模型方法,人民邮电出版社2004.10[12]、(美)雷夫著,孙艳春等译,软件复用实践[M],机械工业出版社2005-3-1[13]、(印)SwapnaDishore,RajeshNaik著,丁一夫等译,软件需求与估算[M],机械工业出版社2004.1[14]、(英)B.伦迪克斯著,软件开发成本估算[M],中央民族学院出版社[15]周伯生,吴超英,关于在中国开展CMM评估的几点建议[J],北京航空航天大学软件工程研究所(第四届中关村电脑节CMM与中国软件产业发展国际论坛资料)[16]、李春瑜,成本管理的线与面[J],中外管理2006,5[17]、吴洁彭其渊,项目管理软件的发展状况及其应用分析[J],世界科技研究与发展2005,5[18]、吴裕祥赵池龙,软件工程中项目管理的革新教材及创新实践[J],计52
上海交通大学工程硕士学位论文软件项目成本管理的研究算机教育2005[19]、时雨露朱连军,关于软件项目管理的思考[J],中州大学学报2003,1[20]、胡瑞娟,CAI软件开发项目的估算[J],教育传播与技术2005,8[21]、基于Projeet20o3的项目管理[J],新电脑2004[22]、项目管理基础[J],信息产业部计算机信息系统集成项目经理培讲义[23]KarlWieger,StopPpromisingMiraeles,SoftwareDeveloPmentMagazine[M],Feb,2000[24]CynthiaKrohmal,RobertMcKeeman,ITProjietManagementOversight,VACIOConferenceFramingITSuccess,October29,2001[25]KLRConsulting,Inc.,Projectmanagementmaturitymodel,managingBusiness&TechnologySolutions,2002.6[26]JohnR.Commons,InstitutionalEconnomics,NewYork:TheMacmillanCompay,1934[27]ChesterI.Barnard,OrganizationandManagement,Cambridge,Massachusetts:HarvardUniversityPress,194[28]Rochart,J.F.Chiefexecutivesdefinetheirowndataneeds,HarvardBusinessReview,1979,27:64-65[29]PMI(ProjectManagementInsititute),AGuidetotheProjectManagementBodyofKnowledge(PMBOKGuide),UpperDarby:Pennsylvania,2000[30]Giola,j.,Twelvereasonswhyprogramsfail,PMNetwork,1996[31]Linberg,K.R.,Softwaredeveloperperceptionsaboutsoftwareprojectfailure:Acasestudy,JournalofSystemsandSoftware,1999,49(2-3):177-192[32]Albanna,S.J.,andJ.Osterhaus,Meetingthesofewarechallenge:AmodelforIStransformation,InfromationSystemsManagement,1998,Winter[33]DianaWhite,JoyceFortune,Currentpracticeinprojectmanagement:Anempiricalstudy,InternationalJournalofProjectManagement,2002,20(1):1-11[34]MorrisWGP.,Themanagementofprojects,London:Thomas53
上海交通大学工程硕士学位论文软件项目成本管理的研究Telford,1994[35]Ingram,T.,Managingclient/severandopensystemsprojects:A10yearsstudyof62mission-criticalprojects,ProjectManagementJournal,1994,25(2):26-36[36]Pinto,J.,andDennisP.Slevin,Theprojectimplementationprofile:Newtoolforprojectmanagers,ProjectManagementJournal,1986,17(4):57-4054
上海交通大学工程硕士学位论文软件项目成本管理的研究致谢本论文是在导师薛质老师的精心指导下完成的。本文从选题到完成的每个环节都耗费着导师大量的精力。在本论文即将完成之际,首先向导师致以衷心的感谢!薛老师在学术上渊博的知识、严谨的态度和对问题敏锐的洞察力是我永远学习的榜样。特此向导师致以衷心的感谢和诚挚的敬意!感谢上海交通大学信息安全学院授课的各位教授,他们的谆谆教导使笔者的理论基础不断提升,视野更加广阔。我将鞭策自己不断前进,无论遇到什么困难与障碍。55'
您可能关注的文档
- s房地产开发项目成本管理分析
- 房地产项目成本管理及控制分析
- 水利工程项目成本管理研究.pdf
- 基于作业成本法的项目成本管理改进分析——以h公司为例
- 基于价值链理念下工程项目成本管理的研究
- 长沙汉回村生活污水处理项目成本管理分析
- 中铁建工集团有限公司项目成本管理办法.doc
- 基于价值链理论的施工企业项目成本管理分析
- 智能建筑工程项目成本管理研究--黄文勤.doc
- 项目成本管理与资源优化分析——以渭化输水工程为例
- 乌苏压气站工程项目成本管理分析
- 【5A版】房地产项目成本管理课件.pptx
- a房地产公司项目成本管理体系建立与应用研究
- 基于价值链理论施工企业项目成本管理研究
- kfn房地产项目成本管理研究
- 建筑施工项目成本管理初探
- 论公路施工企业项目成本管理
- 盾构法下城市地铁项目成本管理方法地研究