中等COCOMO模型在中小型软件项目投资决策中的应用探讨
2024-05-23
来源:步旅网
第19卷第2期 2 0 1 1年4月 电 脑 与 信 息 技 术 VoI.19 No.2 Apr.2011 Comouter and Information Technolozv 文章编号:1005—1228(201 1)02—0009—04 中等COCOMO模型在中小型软件项目投资决策中的应用探讨 臧影 (云南爱因森软件职业学院信息工程分院。昆明 651700) 摘要:中等COCOMO模型是经过实际软件项目验证和修正的软件成本估算模型。文章将中等COCOMO模型应用于 中小型软件项目投资决策,提出了一套简便而完整的中小型软件项目投资分析方法。 关键词:中等COCOMO模型;中小型软件项目;投资决策 中图分类号:F406.72;TP311 文献标识码:A Discussion on Application of Middle COCOMO in Investment Decision of Small and Medium-sized Software Project ZANG Ying (Information Technology Deparmaent,Yurman Eimun Software Vocational College.Kunming 651700.China) Abstract:Middle COCOMO is a software COSt model that is tested and improved by actual software projects.The author of this paper applies Middle COCOMO in the investment decsiion of small and medium——sized software project,proposing a simple and complete investment analysis method of small and medium—sized software project. Key words:middle COCOMO;small nd amedium—sized software project,;investment decision 1 中小型软件项目投资决策现状 软件产业是一个技术密集、人才密集、高投入、高 风险、高回报的产业。在这个产业中,开发量在8KDSI 左右或以下的中小型软件项目占据了市场的重要地 COCOMO模型存在一个详细度和精确度递增的 层次结构。中等COCOMO模型是在基本COCOMO模 型的基础上,通过对影响软件项目成本的104个因子 的研究,最终采用了分别属于产品属性、计算机属性、 人员属性和项目属性的15个软件成本驱动因子,并通 位。由于这个产业的高风险特征,所以要在中小型软件 项目开始前对项目投资效益进行权衡并做出合理的决 策,这对于企业的生存和发展至关重要。 当前,国内相当数量的中小型软件项目的投资决 过它们各自量化而分级的乘数相乘得到的工作量调整 系数,将它们纳入了软件项目成本,从而获得对软件项 目成本的更精确估算。对于中小型软件项目,中等 COCOMO模型是合适的选择。 策尚停留在依据过往项目经验简单估算成本和效益的 阶段。鉴于这种状况,也鉴于中小型软件项目规模小、 投资少、周期短的特点,作者认为国内的软件企业迫切 需要一套完整的、低成本的、简便的、定量的、有效的投 资决策方法。 3 中等COCOMO模型在中小型软件项目投 资决策的应用方法 3.1步骤1确定项目基础数据 软件项目投资决策过程的第一步是确定一些重要 的项目基础数据,包括项目开发模式、项目开发规模、 软件各开发成本驱动因子的级别、软件开发工作量调 2 COCOMO模型简介 构造性成本模型(COCOMO,COnstructive COst MOde1)是一种由Barry W.Boehm教授开发的,精确而 易于使用的,基于模型的软件工程成本估算方法。相对 同类的其它软件成本模型公式中指数广泛的变化范 整系数、软件各维护成本驱动因子的级别、软件维护工 作量调整系数、软件产品的生命周期、维护工作年变化 量。 中等COCOMO模型是一种算法模型。算法模型的 优点是比较客观,不会受到人的情绪的影响,并能够对 围,COCOMO模型公式都处于中间位置。 收稿日期:2010—12—21;修回日期:2011-01—11 作者简介:臧影(1972一),男,硕士,讲师,主要研究方向为管理信息系统。 电 脑 与 信 息 技 术 2011年4月 软件项目成本高效地估算,同时还能够进行敏感性分 动因子工作量乘数j) 其中,n=14. 3-2步骤2计算软件研发工作置和人员成本阶段分布 根据软件生命周期的瀑布模型,我们将软件的研 析。但是,算法模型是由以前的项目进行效验后得到, 那么这些模型又能在多大程度上代表未来的项目呢? 其次,算法模型不能很好地处理涉及人员的异常情况。 另外,算法模型不能弥补糟糕的规模输入与不准确的 成本驱动因子级别对软件项目成本估算带来的偏差。 专家判断也是一种软件成本估算方法,能够考虑 到过去与未来项目的差异,也能够考虑到标准体系结 发过程分为计划与需求、产品设计、编程(包括详细设 计、编码与单元测试两个子阶段)、集成与测试四个阶 段。其中,后三个阶段为软件的开发过程。 首先,我们根据软件项目的开发模式,通过下面对 构与实际应用之间的不同,还能够考虑到特别的人员 应的中等COCOMO模型软件项目开发工作量公式求 特征及其相互影响,以及其它特殊的项目问题。同时, 专家判断也存在着效率低、受人的因素影响大等不足。 专家判断方法与算法模型方法具有很强的互补性,我 们在确定上述项目基础数据的过程中采用专家判断来 弥补中等COCOMO模型方法的不足。 宽带Delphi方法是一种专家判断方法。我们通过 如下宽带Delphi方法的步骤来确定上述重要的项目 基础数据: (1)协调者编写能客观、完整、准确、简捷地反映客 户需求的说明书; (2)协调者给每个专家提供一份说明书和一张项 目基础数据估算表格; (3)协调者召开专家、协调者及其他人员讨论项目 基础数据估算问题的会议; (4)专家以匿名方式填写表格; (5)协调者准备并分发迭代表格形式的项目基础 数据估算表格; (6)协调者召开会议,特别关注于那些专家估算结 果相差很大的讨论点; (7)专家再次以匿名方式填写表格,并适当地迭代 重复(4)一(6)步。 经过2-3次迭代过程,我们可以获得比较准确的 软件项目基础数据。 在确定软件开发成本驱动因子的级别和维护成本 驱动因子的级别后,我们可以分别查询中等COCOMO 模型的软件开发工作量乘数表和维护工作量乘数表, 获得各因子对应的工作量乘数,并分别由下面对应的 公式计算获得软件开发工作量调整系数和维护工作量 调整系数: Fit 软件开发工作量调整系数=l l(软件开发成本驱 i=I 动因子工作量乘数i) 其中,m=l5. 软件维护工作量调整系数=l l(软件维护成本驱 出初步估算的软件开发工作量(MM) : 组织型项目 (MM)No, ̄=3.2(KDSI) ∞ 半独立型项目 (MM)N0M=3.0(KDSI)¨ 嵌入型项目 (MM)NoM=2.8(KDSI) 在获得(MM)NoM后,我们使用软件开发工作量调 整系数(DEAF)通过下面的公式计算调整后的软件开 发工作量(MM)哪: (MM)唧=(DEAF)(MM)NoM 然后,我们利用中等COCOMO模型工作量阶段分 布表提供的相应开发模式的标准规模软件(例如 8KDSI、32KDSI)研发过程中上述四个阶段的工作量百 分比数据及当前项目软件规模数据,按照线性插值算 法公式计算当前项目软件研发过程中四个阶段的工作 量百分比: 一。+ ×(y ) Y:当前项目软件某阶段的工作量百分比(%); X:当前项目软件规模(KDSI); y。,Y :中等COCOMO模型工作量阶段分布表中小 于和大于当前项目软件规模的两个邻近的标准规模软 件对应阶段的工作量百分比(%); Xo,x。:中等COCOMO模型工作量阶段分布表中小 于和大于当前项目软件规模的两个邻近的标准软件规 模(KDSI); 此时,我们可以利用已获得的软件研发四个阶段 的工作量百分比和调整后的软件开发工作量(MM)唧 分别计算各阶段的工作量及软件研发过程的总工作 量。 最后,我们可以依据以往的项目经验和预计的项 目人员计划,分别给出软件研发过程中四个阶段的平 均人员成本(元/MM),并按照下面的公式,利用所获得 四个阶段的工作量(MM)计算出各阶段的人员成本 (元): 阶段i的人员成本=阶段i的平均人员成本x阶 段i的工作量 第19卷第2期 臧影:中等COCOMO模型在中小型软件项目投资决策中的应用探讨 .11. 将四个阶段的人员成本求和,就得到了软件研发 过程的总人员成本。 3。3步骤3计算软件研发进度阶段分布 我们依据中等COCOMO模型的工作进度公式和 工作进度分布表,计算出软件研发的四个阶段的工作 进度分布及总进度。 我们根据软件项目的开发模式,利用在步骤2中 已经计算出的调整后的软件开发工作量(MM)唧,通过 下面对应开发模式的中等COCOMO模型软件项目开 发工作进度公式求出软件开发工作总进度(TDEV) (月): 组织型项目TDEV=2.5(MMDEV)蚴 半独立型项目TDEV=2.5(MMDEV) 嵌入型项目TDEV=2.5(MMDEV)哑 然后,我们利用当前软件开发模式所对应的中等 COCOMO模型软件开发进度分布表数据,采用步骤2 中的线性插值算法公式和方法,计算当前项目软件研 发过程中四个阶段的工作进度百分比,进而求出整个 软件研发过程各阶段的进度和总进度。 3.4步骤4计算软件维护年工作量及人员成本 当软件研发结束后,软件项目组必须在软件生命 周期内对软件进行维护。因此,我们必须计算软件维护 年工作量。 在上述的步骤1中,我们已经通过宽带Delphi方 法确定了软件维护工作年变化量(ACT)。在步骤2中, 我们通过相应的公式计算得到了初步估算的软件开发 工作量(MM)NoM。通过下面的公式,我们可以计算出软 件标称年维护工作量(MM) 删。 (MM)N (ACT)(MM)mM 然后,我们再通过将软件标称年维护工作量(MM) 与软件维护工作量调整系数(SEAF)相乘,就可以获得 调整后的软件年维护工作量。公式如下: 调整后的软件年维护工作量=SEAF(软件标称年 维护工作量) 最后,我们可以依据以往的项目经验和预计的项 目人员计划,给出软件维护过程中平均年人员成本(元, MM),并按照下面的公式,计算出软件年维护人员成本 (元)。 年维护人员成本=平均年维护人员成本X调整后 的软件年维护工作量 3.5步骤5计算软件项目投资净现值 运用净现值法对软件项目进行投资分析,我们首 先要确定两个基本数据: (1)在软件产品生命周期中的平均年通货膨胀率; (2)项目投资的评估贴现率。 平均年通货膨胀率是在净现值法投资评估中,在 列示各类费用时必须考虑的因素。 项目投资的评估贴现率(rWACC)是运用净现值 法对未来项目净现金流进行折现时的折现率。为了计 算项目评估贴现率,我们必须获得以下几个数据: ・债务融资额(D) ・权益融资额(E) ・债务融资的收益率(rD) ・权益融资的期望收益率(rE) ・所得税率(TC) 项目评估贴现率的计算公式为: F D …、 rWAcc 丽×rE+丽×rD×L 一。 。c J 净现值法最重要的工作是通过对项目投资分析期 内未来各时间段的资本支出(CAPX)、营业现金流量 (OCF)、运营资本投资(Nwc)、残值(Salvage)[]部分数 据在净现值分析表中逐项列示、分析和计算,从而获得 各时间段的增量现金流量(ICF)。所谓“时问段”,通常 以1年为一个时间段,这样处理符合我国的财务周期, 便于运算。 (1)资本支出(CAPX) 资本支出指软件项目开始时的静态资本支出和项 目过程中的动态资本支出。 (2)营业现金流量(OCF) 营业现金流量指与项目直接有关的流动资产流 量,主要包括软件项目研发和维护人员成本、税前销售 收入、运行费用、折旧和减值费用、利息费用。 有了上述五组营业收入和费用数据后,我们可以 按照下面的公式计算税前利润。 税前利润=税前销售收入一研发和维护人员成 本一运行费用一折旧和减值费用一利息费用 在税前利润中扣除所得税后,得到净利润。所得税 的计算需要参照企业所在地税务部门所规定的相应所 得税率。 净利润=税前利润X(1一所得税率) 由于折旧和减值费用和利息费用具有抵税作用, 因此我们只有将这两部分费用再与净利润相加才能获 得营业现金流量。 营业现金流量=净利润+折旧和减值费用+利 息费用 (3)运营资本投资(NWC) 运营资本投资指企业为了维持项目的正常运作而 投入的资本。 电 脑 与 信 息 技 术 2011年4月 (4)残值(Salvage) 固定资产和无形资产在一定时期后将要报废。不 过,按照会计制度,这两类资产在报废后还拥有一定 4方法的分析 作者在上文中论述的中小型软件项目投资决策方 法具有以下三个特点: (1)简便易行。 比例的残值。我们需要按照下面的公式计算税后残 值。 税后残值=固定资产和无形资产X残值率X(1一 所得税率) 我们按照下面的公式就可以计算出净现值分析表 中各时间段的增量现金流量(ICFi)。 (2)兼顾定性分析和定量分析。 (3)结合软件工程技术和财务管理技术。 不过,上述方法也存在一些不足,有待完善和改进。 首先,中等COCOMO模型是基于软件生命周期的 增量现金流量=营业现金流量+税后残值一资 瀑布模型的软件成本估算模型。随着软件开发技术的 突飞猛进,新的开发模式和工具不断涌现,这使现在的 一本支出一净运营资本改变值 我们可以按照下面的公式计算出各时间段增量现 金流量的现值(PVi)。 PV=————————— —一 些软件项目的运行模式发生了根本性的变化。 另外,现在的不少软件项目的商业模式与传统软 件项目相比发生了很大的变化。 ICF; (I+rwAcc)‘ i:时间阶段数(例如年数) 对于上述类型的软件项目的工作量的估算及投资 分析,我们不能简单地套用文中论述的方法,而是需要 对其进行必要的完善与改进。 最后,我们就可以通过将净现值分析表中各时间 阶段增量现金流量的现值(PV )相加得到当前软件项 目投资的净现值(Pv)。 PV= PVi 5结论 将中等c0cOM0模型应用于中小型软件项目的 投资决策,这是对软件投资决策方法的有益探讨。运用 该方法对中小型软件项目的投资分析的结果,在决策 中具有一定的参考价值。 参考文献: [11 Boehm B W.软件工程经济学[M】.李师贤,等译.北京:机械工业出 版社,2004. 3.6步骤6做出决策 按照净现值法的规定,我们可以根据当前软件项 目投资的净现值(PV)X ̄该项目投资做出决策。 PV>0项目具有投资价值,可以投资该项目; PV≤0项目不具有投资价值,不可以投资该项 目; [2】中国注册会计师协会.财务成本管理[M】.北京:经济科学出版社, 2007. 当然,我们还可以针对当前软件项目中等COCO— MO模型表格和净现值分析表中的重要参数进行敏感 性分析。 [3】李伟渡,刘永祥,王庆春.软件工程【M】.武汉:武汉大学出版社, 2Oo6. 【4】李绍忠,王金生.软件开发项目投资决策研究 .天津:天津大学学 报(社会科学版)。2007(04):22—25.