软件工程经济学期末复习总结
第3章 软件的成本、工期与定价分析 本章目标
理解成本的概念、经济内涵和特点; 了解成本的分类 掌握软件成本测算的影响因素分析 掌握功能分解法、Delphi法、影响因子法、类比法,求 解软件成本和工期。 掌握直线折旧、加速折旧法 理解价值工程分析过程,及确定价值分析的考察对象的 方法:价值系数法和ABC法
成本(Cost): —是取得各项生产要素、商品或劳务以及为实现特定经济目的而发生的费用。 1、成本的经济内容 劳动资料 劳动对象 劳动者 2、成本特点 消耗性 补偿性 目的性 综合性 代偿性 成本分类
- 按照企业主要经营活动分类:
研究与开发成本 采购成本 生产成本 经营成本 管理成本 - 按成本与产量的对应关系分类:
变动成本和固定成本 - 按成本的确定时间分类:
预测成本、定额成本、计划成本、实际成本
按成本的确定时间分类: 预测成本 是指在产品规划与设计阶段依据一定的设计方案和某些预测方法来测算将来可能发生的成本 作用:是不同设计方案进行比较与选优的依据 定额成本 根据消耗定额所确定的产品成本 作用:用来做日常成本控制的标准和依据 计划成本 是根据消耗定额及生产计划而确定的在计划期内(一年)应该达到的成本 作用:一般作为年度考核的依据 实际成本 是根据产品生产的实际耗费而计算的成本 作用:存货计价与产成品定价的基础 软件成本构成 软件的成本测算 是其系统工程经济分析中的一项重要内容,它既是软件各种技术设计方案比较选优的依据,也是软件定价的基础。
注:这里的软件定价主要指软件项目投标、申请基金支持、申请贷款等需要的软件定价。
软件成本测算的影响因素分析 功能分解法 软件各模块的最小可能值(最乐观值)aj,最大可能值(最悲观值)bj和最可能值mj。若设各模块工作量均服从β分布,则由β分布性质知各模块期望(平均)工作量Ej有
计算各模块成本Cj和以人月为单位的工作量Mj,其中 Cj=CojEj 元 Delphi法统计模型法 基本思想 首先寻找对软件成本y的影响要素x1,x2,…,x n 。 然后从中选出一些主要影响要素和收集企业长期从事软件开发是这些要素的数据序列(从IT企业信息库中获得)及对应的项目成本序列; 在此基础上,通过研究这些主要影响因素与成本的统计关联关系建立统计模型,统计模型的建立常采用回归分析法; 最后通过统计模型来预测软件的成本。 回归分析法 自然界中的许多现象之间存在着相互依赖、相互制约的关系,这些关系表现在量上主要有两种类型:
- 函数关系:
即变量之间有着确定的关系 S=∏R2 - 统计关系:
即变量之间虽然存在着密切的关系,但从一个(一组)变量的每一个确定的值,不能求出另一个变量的确定的值。可在大量的实验中,这种不确定的联系,具有统计规律性,这种联系便称为统计相关。
影响因子法: 又名驱动因子法,它是一种在统计模型的基础上通过引入更多的对y有影响的要素来完成对统计模型估计值的修正的一种定性与定量相结合的方法。 该模型的求解思想 首先确定对y较大影响的有限的几个要素(定量估计值)作出估计的统计模型; 考虑到上述因素外的综合影响要素,对上述模型中y的估计值作出修正。 修正模型为: COCOMO模型 COCOMO ( Constructive Cost Model) 模型 结构化成本模型COCOMO 系由美国的B. W. Boehm 在其著作《Software engineering economics》( 1981) 中提出 该模型是在对美国加里福尼亚TRW公司63个不同应用领域中的软件开发项目进行详尽分析基础上建立的一个分层次的结构化成本测算模型, 其中包括基本模型( Basic Model) 、中级模型( Intermediate model) 和详细模型(Detailed model) 等三个子模型。 不同类型的信息系统软件, 在不同的环境和条件下进行开发时, 所面临问题的难度、所花费的工作量和费用都是不同的。 COCOMO 模型注意到了这个问题, 它从软件规模和开发方式的特征出发, 将开发工作划分为三个方式: 有机的(Organic) 、嵌入的( Embedded ) 和半独立的( Semidetached) 方式。
- 组织型(Organic又称有机型),
是指规模相对较小,结构简单的软件项目,此类软件需求不那么苛刻,开发人员对此类软件产品开发目标理解充分,工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较少,程序的规模不是很大(<5万行)。 例如,多数应用软件及老的操作系统和编译程序均属此种类型; - 嵌入型(Embedded)
是指此种软件要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某些硬件设备结合在一起。因此,对接口、数据结构、算法要求较高。软件规模任意。 例如,大而复杂的事务处理系统、大型/超大型的操作系统、航天测控系统、大型指挥系统,均属此种类型; - 半独立型(Semidetached)
是指对此种软件的要求介于上述两种软件之间,但软件规模和复杂度都属于中等以上,最大可达30万行。 例如,大多数事务处理系统、新的操作系统、新的数据库管理系统、大型的库存/生产控制系统、简单的指挥系统,均属此种类型。
模型中各变量的工程经济含义如下: Cs :软件开发成本(单位:美元) :软件开发阶段的工时费用率(单位:美元/人月) Ms :软件开发阶段的修正工作量(单位:人月) Mo :软件开发阶段的基本工作量(单位:人月) L :软件开发规模(单位:源指令千行数或KDSI) U :软件综合影响因子(无量纲) Uj :对成本有一定影响的第j个影响因子(无量纲),j = 1~15 Td :软件开发工期(单位:月) r、k、h、d :形式参数
中级COCOMO模型 适用于中、小规模软件的成本估算问题 但对于大型软件而言这种估算过于粗略,且无法按阶段来估算其工作量与成本的分配问题。
注:而各阶段成本与工作量的估算则是大型软件人力资源投入与成本的组织与分配所关注的。 在中级COCOMO模型的基础上引入了详细(高级)COCOMO模型。
详细COCOMO模型与中级COCOMO模型的区别在于: 详细COCOMO模型在中级COCOMO模型的基础上对各影响因子按照开发阶段的四个子阶段(需求和产品设计子阶段,详细设计子阶段,编程和单元测试子阶段,集成与测试子阶段)作进一步的分解,并按各子阶段给出各影响因子Uj的等级度量分值表及其相应的说明。 对于不同类型(组织型、半独立型和嵌入型)和不同规模(小型、次中型、中型、大型、巨型)的软件工程,进一步给出了软件开发四个子阶段的工作量的分布比例(%)的推荐值。
类比法: AAF 为调节因子( Adaptation Adjustment Factor ) AAF= 0.40·DM + 0.30·CM + 0.30·IM DM 为设计修改百分数, 即“重用”软件的设计中需要加以修改以适应新目标的那一部分在整个设计中所占百分比; CM 为代码修改百分数, 即“重用”软件中需要修改的部分的编码占整个“重用”软件编码的百分数; IM 为修改后软件所需进行的集成工作所占百分比, 即把该“重用”软件结合进整个软件产品中并对其联调的工作量, 与将同样大小的自编软件集成并联调所需工作量之比的百分数。 上述公式中确定三个系数0.40, 0.30, 0.30 的依据是设计、编程、集成/ 调试三阶段成本占总开发成本的百分比, 这里仅考虑了一般的情况。 设原开发软件SA的规模为LA,即可估计新的目标软件SB的规模为: LB=LA·AAF 因此可使用COCOMO中级模型,即可计算出Ms和Cs
设备折旧(固定资产折旧) 设备在长期的使用过程中仍然保持它原有的实物形态,但由于不断耗损使它的价值部分地、逐渐地减少。以货币表现的固定资产因耗损而减少的这部分价值在会计核算上叫做固定资产折旧。 这种逐渐地、部分地耗损而转移到产品成本中去的那部分价值,构成产品成本的一项生产费用,在会计核算上叫做折旧费或折旧额。 计入产品成本中的固定资产折旧费在产品销售后转化为货币资金,作为固定资产耗损部分价值的补偿。 常用的设备折旧方法:直线折旧法与加速折旧法 直线折旧法 基本思想是设备在使用期内,平均地分摊设备价值来作为设备的折旧额。
Ab :一年设备的折旧额
k0 :设备的原始价值
O :设备的预计残值
T :最终使用年限
α:设备的年折旧率
加速折旧法的基本思想: 有形损耗 无形损耗 收益和费用相配比(会计原则)
注:At:设备在使用年限内第t年的折旧额 t : 设备使用的年数 T : 设备使用年限。
价值工程分析(Value Engineering Analysis,VEA) 是一种通过对产品(或系统)的功能或成本间的关系研究,来改进产品(或系统)经济效益的一种技术经济与管理方法。
VEA是二战时期美国设计师麦尔斯(L.S.Miles)在石棉短缺问题上研究出代替材料的方法,他总结出一套在保证相同功能的前提下降低成本的较完整的科学技术方法,其后又发展到改进设计、工艺和生产领域,而至目前完善成为一种技术经济分析方法,统称为价值工程(VE)。 价值工程基本原理 价值工程是以谋求最低的产品寿命周期成本,可靠地实现使用者所需的必要功能,对产品的功能成本进行有组织的系统分析的一种技术方法。
注:寿命周期成本(C):产品从设计制造到交付使用,直到报废为止全过程的生产费用和使用费用之和。
价值工程分析的核心要素:功能、成本、价值
价值工程的特点: 1)着眼于寿命周期成本 2) 以提高价值为目标,反映了生产者和用户的共同利益 3) 以功能分析为核心 4) 是有组织的集体创造活动 5) 其应用一般在方案的研究设计阶段 软件工程中常用的价值分析对象: 开发过程中的各模块(子系统) 组织流程中的各工序 设计过程中的各功能结构方案 开发模型 测试方案 开发工具 影响软件质量的各要素等 确定价值分析对象后,收集有关资料,目的是来完成功能分析和评价,确定哪些价值分析对象应作为进一步重点功能改进对象。 采用的方法
- 价值分析法
通过判断一个产品或系统所具有的功能是否与其所支付的成本相匹配,来确定重点功能改进对象。 - ABC分类法
通过对被考察对象的有序组织、排序与相应计算,将被考察对象分为ABC三类,进而确定重点功能改进对象。
设价值分析的对象为软件的各模块(子系统 ),有m个。 采用价值系数法进行功能成本分析需引入三个参数: j子系统的功能系数FIj j子系统的成本系数CIj j子系统的价值系数VIj
说明: Cj 可通过功能分解法、类比法、统计法等得到; 成本系数CIj的数值反映了该子系统成本总成本中所占的份额(比例); 建立功能综合评价过程示意图,运用层次分析法(AHP法)可以求得各 子系统的功能系数FIj。
价值系数法
利用价值系数可进行各子系统的功能/成本分析和评价: 若 VIj=1 说明该子系统j的功能与成本配置恰当,相对合理 该子系统不作为功能改进对象 若 VIj>1 说明该子系统功能的实际成本偏小,应适当加大该子系统的成本以完善其对应的功能 该子系统作为一般性功能改进对象 若 VIj<1说明该子系统功能分配的成本过高,需要对该子系统的结构设计进行改进或降低相应的硬件设备价格或软件开发费用,以达到最终降低子系统成本的目的,并促使功能与成本的匹配。 该子系统作为重点功能改进对象
ABC分类法 ABC分析法(Pareto 分析法) 是意大利经济学家帕莱脱(Pareto)提出的,是一种可应用于软件成本控制、质量控制等方面的一种十分有效的技术经济方法或统计方法。 以软件模块为考察对象,以成本为度量指标的ABC分类法的步骤: 将各模块成本自大到小排序,计算各模块的成本系数。 计算累计成本系数,并寻找A、B、C分类点。 做直方图,在横轴上获得A、B、C分类点,以及对应的三个类(集合)。 利用ABC分类法得: A类模块集合是做价值分析时的重点考察对象 B类模块集合是做价值分析时的一般考察对象 C类模块集合不做为价值分析时的考察对象。 价值工程分析与成本估值 基本原理 是对NIS的每一个子系统引入一个依赖于功能与成本的价值系数,从而可根据每一子系统的价值系数的数值大小来进行功能/成本分析和将目标成本分解到各个子系统中去。 系统的目标成本 可根据投资者的约束(如NIS招标者的要求或IT企业的资金现状)和成本估算(如采用功能分解法来估算)相结合来确定。 注:根据价值工程法的上述原理可知该方法一般适用于在系统规划后的各子系统计划成本的确定问题, 该方法计算流程详见图3.13。 挣值管理与成本控制 项目的挣值管理(Earned Value Management ,EVM) 项目的挣值管理,是用与进度计划、成本预算和实际成本相联系的三个独立的变量,进行项目绩效测量的一种方法。 挣值管理 是项目管理的一种方法,用于项目成本和进度的综合监控 挣值管理以差异分析为基础
挣值分析方法的基本思想 就是通过引进一个中间变量即“挣值”,来帮助项目管理者分析项目的成本和工期的变动情况并给出相应的信息,以便他们能够对项目成本的发展趋势做出科学的预测与判断,并提出相应的对策。
挣值管理分析的内容: 四个基本关键指标:TBC、CBC、CAC、CEV 四个绩效评价参数:CV、CPI、SV、SPI 一个预测指标:FCAC 作用: 有效预测项目各阶段的进度和资源利用情况,分析项目是否按计划进度和预算成本进行,进而对项目采取有效的控制措施。 挣值管理:四个基本关键指标
总预算成本TBC (Total Budgeted Cost) 累计预算成本CBC(Cumulative Budgeted Cost ) 又叫计划工作量的预算费用(BCWS,Budgeted Cost for Work Scheduled )是指项目实施过程中某阶段计划要求完成的工作量所需的预算费用。 BCWS=计划工作量预算定额 预算定额:单位工作量的预算成本 累计实现成本 CAC( Cumulative Actual Cost ) 又叫已完成工作量的实际费用(ACWP,Actual Cost for Work Performed) 指项目实施过程中某阶段实际已完成的工作量所消耗实际成本。 CAC =ACWP=已完成工作量单位工作量的实际成本 累计实现价值 CEV(Cumulative Earned Value) 挣得值(EV,Earned Value),又叫已完成工作量的预算成本(BCWP,Budgeted Cost for Work Performed)指项目实施过程中某阶段实际完成工作量及按预算定额计算出来的费用。 EV=BCWP=已完成工作量*预算定额
挣值管理:四个绩效评价参数
1、成本偏差(CV,Cost Variance) CV=CEV-CAC=BCWP-ACWP=已完成工作量 *(单位工作量的预算成本-单位工作量实际成本) CV > 0 表示实际消耗的费用低于预算值,即有结余或效率高 CV = 0 表示实际消耗的费用等于预算值 CV < 0 表示实际消耗的费用超出预算值或超支 2、进度偏差(SV,Schedule Variance) SV=CEV-CBC=BCWP-BCWS = 单位工作量的预算成本 * (已完成工作量-计划工作量) SV > 0 表示进度提前 SV = 0 表示实际与计划相符 SV < 0 表示进度延误 3、成本绩效指标(CPI,Cost Performed Index) CPI=CEV/CAC=BCWP/ACWP=单位工作量的预算成本/单位工作量的实际成本 当CPI>1时,表示低于预算,即实际费用低于预算费用 当CPI=1时,表示实际费用与预算费用持平 当CPI<1时,表示超出预算,即实际费用高于预算费用 4、进度绩效指标(SPI , Schedule Performed Index) SPI=CEV/CBC=BCWP/BCWS=已完成工作量/计划工作量 当SPI>1时,表示进度超前 当SPI=1时,表示实际进度与计划进度相同 当SPI<1时,表示进度延误
完工预测成本(FCAC,Forecasted Cost At Completion)
1.假定项目未完工部分按目前的成本绩效进行 FCAC =CAC+(TBC-CEV)/CPI = TBC/CPI 2.假定项目未完工部分按计划效率进行 FCAC =CAC+(TBC-CEV) 3.全面重估剩余工作成本 FCAC = CAC+重估剩余工作成本
质量成本是为了达到产品或服务的质量所付出的所有努力的总代价,即根据质量标准生产产品或者提供服务所发生的所有成本。
在衡量项目的质量成本时,应根据项目类型及其总价值,将项目总值的3%~5%作为质量成本。
质量成本包括
- 预防成本(质量保障成本) 评估费用 例如:质量审计、测试等 预防费用 例如:用户满意确定、过程评审、改进等 - 缺陷成本(质量检验与纠偏成本) 内部费用 例如:缺陷标记、返工、重新测试等 外部费用 例如:技术支持、问题评估、修正、索赔等 产品价格 是价值的货币表现; 对于生产者(软件开发机构)来说,软件的价值是开发机构在开发该软件时所耗费的代价,因此软件产品的价格就可用一定数量的货币来作为开发机构所耗费代价的补偿; 对于消费者(软件用户)来说,软件价格则是为了获得软件及服务所支付的货币数量。 影响软件产品价格的一般因素
1)成本因素 成本是价格的最低限度,通常只有既能补偿产品生产及市场营销的所有支出,又能补偿产品经营者为此所承担的风险支出的相应定价才能为项目主体(企业或部门)所接受。 (2)需求因素 产品的定价常受市场需求量大小的影响,而产品的价格调整反过来又会影响市场对该产品的需求。 (3)竞争与垄断因素 在商品市场上,既有卖方的竞争,也有买方的竞争,而价格往往是市场竞争的重要手段之一,同时在商品(NIS)的买卖博弈中,若项目主体(买方)为资本垄断者或项目承办方(卖方)为资源(重要生产设备与工艺开发工具与人才)垄断者时,则NIS的定价则往往向垄断者倾斜,并有利于垄断者。 (4)环境因素 一般来说,宏观经济形势、通货膨胀率与银行利率、政府对商品的扶植及税率等因素均有可能影响商品的定价,在NIS 的定价过程中,尽管上述四个因素都有可能对定价产生影响,然而成本因素是影响最大的。
软件产品定价的一般步骤
NIS一般为两类: 用户定制型 常采用成本导向定价法 如网络净化系统,宏观经济决策支持系统,银行联机业务处理系统,电力控制系统等; 市场投放型 常采用需求导向型定价法和竞争导向定价法 如ERP系统,物流管理信息系统,宾馆防盗信息系统,旅游管理信息系统等。 免费使用策略–软件版本
- Alpha版(内部测试版):一般只在软件开发公司内部运行,不对外公开,主要用于开发者对软件产品进行测试,检查产品是否存在缺陷、错误,验证产品的功能与说明书、用户手册是否一致等。
- Beta版(外部测试版):软件开发公司为对外宣传,一般将非正式产 品免费发送给具有典型性的用户,让用户测试该软件的不足之处以及存在的问题,以便在正式发行前进一步改进和完善。Beta版软件一般可通过Internet免费下载,也可以向软件公司索取。
- Demo版(演示版):主要用于演示正式软件的部分功能,用户可以从中获知软件的基本操作,为正式产品的发售扩大影响。该版本也可以从Internet上免费下载。
- Enhance版(增强版或加强版):如果是一般软件,通常称作“增强版”,会加入一些实用的新功能;如果是游戏,一般称作“加强版”,会加入一些新的游戏场景和游戏情节等。
- Free版(自由版):一般是个人或自由软件联盟组织的成员制作的软件,希望免费给大家使用,没有版权,一般也可以通过Internet免费下载。
- Full Version版(完全版):也就是正式版,是最终正式发售的版本。
- Shareware版(共享版):有些公司为了吸引客户,对于他们制作的某些软件,可以允许用户通过Internet免费下载。不过,此共享版软件多会带有一些使用时间或次数的限制。用户可利用在线注册或电子注册成为正式版用户。
- Release版(发行版):非正式版,带有时间限制,也是为扩大影响所做的宣传策略之一。比如Windows Me的发行版就限制只能使用几个月,并可从Internet上免费下载。
- Upgrade版(升级版):当你拥有某一软件旧的正式版本时,可以购买升级版,将你的软件升级为最新版。升级后的软件与正式版在功能上相同,但价格会低些,这主要是为了给原正式版用户提供优惠。
|