软件工程经济学第五章软件过程经济分析(全)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程经济学第五章软件生产过程经济分析5.15.1软件生产函数与软件生产率5.2软件生产过程经济分析5.3不同规模软件的生产过程经济分析5.4软件项目理论生存周期长度及其关联分析5.1软件生产函数与软件生产率•生产函数–是宏观经济学和微观经济学理论中的一个重要概念–是研究系统规模变化对产出的影响和最优化经济效果的基础–反映生产过程中投入要素与其可能生产的最大产量之间的依存关系的数学表达式–Y=F(K,L,N,O,t)–Y为产出量,如宏观经济中的GDP、工业总产值,微观经济中的企业产量、销售收入等;–K为资本–L为劳动–N为土地–O为组织管理–t为时间或工期简化为:Y=F(K,L,t)5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性1、C-D生产函数•西方学者在采用计量经济学的有关统计法的研究中提出了多种形式的生产函数,从不同的侧面反映了西方国家生产过程中的工程经济行为。•由美国数学家柯布和经济学家道格拉斯提出的C-D函数形式如下:–Y为产出量;L为劳动力投入;K为资本投入;–A为除劳动与资本要素外其他对产出Y的总影响。YALKab=(5.1)5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性研究C-D生产函数的特性?分别对L和K求偏导,得:称为劳动力对产出的弹性系数,表示在其他条件不变的情况下,劳动力增加百分之一会使产出变化的百分比;称为资本对产出的弹性系数,表示在其他条件不变的情况下,资本增加百分之一会使产出变化的百分比;YALKab=提出问题:在其他条件不变的情况下,投入(劳动力或资本)的变化对产出的影响?LLYYKKYY(5.3)5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性生产函数一般都满足如下特性:1.资本与劳动力的边际产出均为正值,即有其经济含义为:劳动力(或资本)投入量不变的情况下,资本(或劳动力)的增加将导致产出量的增加。2.边际产量递减,即有其经济含义为:当其他生产要素固定不变时,随着某一要素投入量的增加,边际产量将逐渐减少。3.生产函数具有非负性,且总产量是生产要素组合的结果,即总产出为正值,单一要素的投入不能获得产出。即有Y=F(K,L,t)0Y=F(K,0,t)=0Y=F(0,L,t)=00,0KYLY0,02222KYLY5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性2.规模经济(规模报酬)是微观经济学研究的一个主要问题表示当生产规模变化时,对产出的影响程度。–规模报酬一般有三种情况:当全部生产要素按某种配合方式以相同比例增加时,①若Y=F(λK,λL,t)λF(K,L,t),则称该生产活动呈规模报酬递增或规模经济;②若Y=F(λK,λL,t)λF(K,L,t),则称该生产活动呈规模报酬递减或非规模经济;③若Y=F(λK,λL,t)=λF(K,L,t),则称该生产活动呈规模报酬固定5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性Y=F(K,L,t)=ALαKβF(λK,λL,t)=A(λL)α(λK)β=λα+βALαKβ=λα+βY因此对C-D函数容易验证得以下结论:若+1,则称该生产活动呈规模报酬递增或规模经济;若+1,则称该生产活动呈规模报酬递减或非规模经济;②若+=1,则称该生产活动呈规模报酬固定(5.4)5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性3.弹性系数求解–C-D生产函数是一种较为普遍的生产过程中的生产过程规律描述。–但对于不同的企业(部门和地区),由于其外部环境与内部条件的不同,故产出对劳动力或资本的变化反映程度不同,即与不同。–求解思路:•收集特定企业(部门和地区)的数据序列,将二元非线性函数转化为二元线性函数求解5.1软件生产函数与软件生产率——5.1.1软件生产函数及特性4.软件生产函数美国软件工程专家(L.H.Putnum)–S为软件生产规模或源代码程序量(单位:NCSS);–K为软件项目在生存期内投入的总工作量(单位:人年)–Td为软件项目投入的人力峰值,通常为交付期或工期(单位:年)软件生产函数的三个特性:①软件工作量或交付工期的边际生产量均为正②软件工作量的边际生产量递减;交付工期的边际生产量递增;③软件生产函数具有非负性•根据软件函数中弹性系数之和大于1,可知软件生产活动具有规模报酬递增效应。(5.5)5.1软件生产函数与软件生产率——5.1.2软件生产率及其影响因素•软件生产率的定义:–每个人月所交付的源代码程序量,单位:NCSS/PM•软件生产效率的影响因素:①组织、管理因素②技术因素提高生产效率的常用措施:①提高团队工作的业务规范、编程规范②采用较为先进的软件工具③部分功能采用商业软件包④改编现有的已熟悉软件的部分功能⑤采用软件构件技术、多版本技术、软件复用技术⑥建立科学、合理的激励、约束机制⑦对人员的选择采用如下五原则:顶级天才、任务匹配、职业发展、团队平衡、逐步淘汰原则5.2软件生产过程经济分析——5.2.1软件生产系统动力学方程1、软件生产过程经济分析--分析什么?–软件生产系统内在经济要素关联及其动态发展规律。–经济要素:生产规模、开发难度、人力工作量(累计工作量、人力峰值)、费用、劳动生产率、环境因子、交付期等–例如:劳动生产率和生产规模、开发难度、环境因子之间的关联;开发难度和总工作量、交付期之间的关联;人力峰值的到达时间等。2、如何分析?——建立系统动力学方程•软件生产系统动力学方程–英国软件工程学家诺顿提出了Noder-RayleighModel•建立模型基础:a、假设(基于客观统计数据上的一种经验)b、统计分析诺顿-瑞利模型Noder-RayleighModel表5.1N-R模型变量表变量符号变量内涵单位C(t)软件工程在[0,t)内投入的累计人力工作量(人力费用)人年m(t)C(t)的变化率或软件工程在t时刻投入的人力密度人K软件工程在生存期内投入的总工作量人年p(t)软件开发效率函数或学习函数-td软件工程投入人力的峰值时刻(通常为交付期或工期)年D软件工程项目的开发难度系数人/年D0软件工程项目的人力增长率人/年2S软件项目的生产规模或源代码程序量NCSSFC软件工程项目生产费用率万元/人年Fd软件工程项目开发劳动生产率NCSS/人年E软件工程开发的环境因子-诺顿-瑞利模型Noder-RayleighModel•模型假设如下:1.开发项目中需要投入的总工作量K为有限;2.C(t)在项目开始时为零,即C(0)=0,然后单调增长到K;3.任何时刻开发项目组投入的人力数m(t)与尚待解决的问题(或尚需投入)的累计人力工作量成正比;4.在项目生存周期中,项目开发人员由于不断学习,因而其开发效率可用关于时间t的学习函数p(t)来描述,是时间t的线性增函数,其m(t)与p(t)成正比。----由假设得下列人力投入的系统动力学方程:dC(t)()[()]dt()20(0)0ptKCtptbtbC=-==(5.7)诺顿-瑞利模型Noder-RayleighModel•求解微分方程得:•因为函数m(t)具有概率论中瑞利分布函数的形式,故m(t)称为诺顿-瑞利曲线。•提出问题:–哪一时刻达到开发人员的峰值?–因此需要研究函数m(t)22()[1]()()20btbtCtKedCtmtKbtebdt--=-==(5.8)诺顿-瑞利模型Noder-RayleighModel•通过,求得N-R曲线在点时取得最大值。•显然,m(t0)即为软件生存周期中的开发人员的峰值。•由此可知,对于不同的b值(b0)和K值,N-R曲线均为具有单峰值且自左向右由单调增到单调降的曲线。()0dmtdt=012tb=112201()222bbmtKbeKbeb-==(5.9)诺顿-瑞利模型Noder-RayleighModel由此可知,对不同的b值(b0)和K值,N-R曲线均为具有单峰值且自左向右由单调增到单调降的曲线,图6.24画出了当K=10时不同b值的N-R曲线。b=2b=0.222b=0.5b=0.125m(t)tbt210图5.1K=10时不同b值的N-R曲线b=0.2225.2软件生产过程经济分析——5.2.1软件生产系统动力学方程•在20世纪70年代,美国陆军中央设计处对所积累的200多个软件开发项目的数据进行统计分析,Putnum发现:–上述m(t)在(0,∞)中的最大点t0非常接近交货时间td,因为在临近交货期时需要大量的人力资源编制说明书,进行软件调试与质量检验,并对设计、编码等工作做再修改。5.2软件生产过程经济分析——5.2.1软件生产系统动力学方程由统计分析的结论,可知即代入(5.8)和(5.9)有01=2dttb=212dbt=2222222()[1]()ddttttdCtKeKmttet--=-=1212()[1]0.39()dddCtKeKKmtet--=-==(5.10)(5.11)5.2软件生产过程经济分析——5.2.1软件生产系统动力学方程m(t)C(t)Km0tdOt一个开发好的软件系统在初步运行性能良好并交付给用户时只花费了生存期内投入总人力费用的39%,剩下的61%的人力费用将用于该软件系统在运行维护阶段的质量检验,可靠性增长,维护与修改等工作。图5.2C(t)及m(t)变化5.2软件生产过程经济分析——5.2.2软件项目难度系数与人力增长率•Putnum通过对英美大量软件项目的研究,得到了一些统计规律:结论1:软件项目的开发难度与生存周期内投入的总工作量K成正比,与交付期td2成反比。–D为软件工程开发难度系数()2ddmDdttK==0(5.12)5.2软件生产过程经济分析——5.2.2软件项目难度系数与人力增长率结论2:对于具有统一项目开发特性的软件工程,尽管随着项目规模的增大,K和td均将增大,然而K/td3则基本稳定在某一常数周围,而不同开发属性的项目其常数不同。8,软件是一个与其他系统有多个接口和交互功能的全新软件D0=15,软件是一个独立系统27,软件是从其他已开发的软件基础上建立的系统–引入参数D0,D0为人力增长率3dd0ttDDK3d0tDK应用:(5.13)5.2软件生产过程经济分析——5.2.2软件项目难度系数与人力增长率[例5.1]某软件项目,其初始人力密度增长率为4人/月,预计1年7个月后交付用户,生产费用率为6万元/人年,试确定项目生存期内投入的总工作量(人力费用),峰值人数和总费用项目开发难度系数和人力增长率,以及开发阶段投入的累计人力工作量和费用。•解:注意到交付期有年年个月年583.1127171dt初始人力密度增长率由(5.12)式知有()2ddmDdttK==0年人月人/48/4)0(dtdmD从而得22248/(1.583)48/2.5120dKDt人年年人年年人年5.2软件生产过程经济分析——5.2.2软件项目难度系数与人力增长率以K与td数值代入(5.11)式和(5.13)式200/30583.148,46583.1120)(年人人ddtDDetmm1212()[1]0.39()dddCtKeKKmtet--=-==3dd0ttDDK有:5.2软件生产过程经济分析——5.2.2软件项目难度系数与人力增长率生存期投入的总费用(平均)为6/120720cUFK万元人年人年万元此外,由(5.11)式还可得到开发阶段投入的累计人力工作量和费用Ud有:1212()[1]0.39()dddCtKeKKmtet--=-==()(1.583)0.390.3912046.8()6/46.8280.8ddcdCtCKUFCt年人年万元人年人年万元5.2软件生产过程经济分析——5.2.3软件的劳动生产率、生产函数及其关联•由表5.1得知S为软件工程的规模或提交的源代码程序量(单位NCSS是表示非注释语句的数量),而C(td)则表示

1 / 57
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功