软件生产过程经济分析课件.ppt

上传人:小飞机 文档编号:3273056 上传时间:2023-03-12 格式:PPT 页数:49 大小:331.50KB
返回 下载 相关 举报
软件生产过程经济分析课件.ppt_第1页
第1页 / 共49页
软件生产过程经济分析课件.ppt_第2页
第2页 / 共49页
软件生产过程经济分析课件.ppt_第3页
第3页 / 共49页
软件生产过程经济分析课件.ppt_第4页
第4页 / 共49页
软件生产过程经济分析课件.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《软件生产过程经济分析课件.ppt》由会员分享,可在线阅读,更多相关《软件生产过程经济分析课件.ppt(49页珍藏版)》请在三一办公上搜索。

1、第5章 软件生产过程经济分析,5.1 软件生产函数与软件生产率5.2 软件生产过程经济分析5.3 不同规模软件的生产过程经济分析5.4 软件项目理论生存周期长度及其关联分析,5.1 软件生产函数与软件生产率,5.1 软件生产函数及其特性5.2 软件生产率及其影响因素,5.1.软件生产函数及其特性,生产函数(Production function),是指反映生产过程中投入要素与其可能生产的最大产量之间依存关系的数学表达式。早期的生产函数有如下数学形式:Y=F(K,L,N,O,t)此中Y为产出量,如宏观经济系统中的GDP、工业总产值,微观经济系统中的企业产品的产量、产值、销售收入等。而K、L、N、

2、O分别表示生产过程投入的资本、劳动、土地和组织管理要素投入量,t则表示时间或工期等。鉴于土地投入量的变化很小,而且在非农业部门中,一般已将土地的价值计入资本之中,而组织管理又难以定量,因此为了简化分析,以后研究的生产函数常记为:Y=F(K,L,t)(5.1),1.C D生产函数,2.规模经济,规模经济(Economics of Scale)或规模报酬是微观经济学中研究的一个重要问题,它表示当生产规模变化时,对产出的影响程度。规模报酬一般有三种情况:当全部投入要素按某种配合方式以相同比例增加时,如果产出的增长比例大于投入要素配合方式增加的比例,则称企业(或厂商)享有递增规模报酬(或规模经济);如

3、果产出的增长比例小于投入要素配合方式增加的比例,则称为递减规模报酬(或非规模经济Diseconomies of Scale);如果产出的增长比例等于投入要素配合方式增加的比例,则称为固定规模报酬,3.弹性系数的求解,在形如(5.2)所示的CD生产函数是一种较为普遍的生产过程中生产行为之规律性描述,但对于一些不同的企业(部门、地区)而言,由于其外部环境与内部条件的不同,则这些企业(部门、地区)的产出对资本与劳动投入的反应程度应该不同。从数学描述来看,不同企业的CD生产函数应有不同的与。因此对于一个特定的企业(或行业部门),求解其对应的弹性系数与就成为必要。,4.软件生产函数,5.1.2 软件生产

4、率及其影响因素,软件劳动生产率或简称软件生产率(Software Productivity),它被定义为每个人月(Person-months.PM)所交付的源代码程序量(单位:NCSS/PM)。大量的工作实践与实验研究证实:影响整个产品的软件生产率提高的因素主要有两类第一类因素是组织与管理因素,如用人不当、管理不善、缺乏必要的业务规范和激励与约束机制等;第二类是技术因素,如产品需求的复杂性和高可靠性、服务器与工作站的存取速度与运算速度、主存储器的约束、需求的易变性以及恶劣的工作环境等因素都会影响软件生产率的提高。,提高软件生产率的常用的几个措施,提高团队工作的业务规范与编程规范采用较为先进的软

5、件工具如程序库、程序生成器、模型生成器等部分功能采用商业软件包(如算法软件包、数据库管理系统等)改编现有的已熟悉软件的部分功能采用软件构件技术、多版本技术和软件复用技术建立科学和合理的激励和约束机制对人员的选择采用如下五原则:顶级天才原则、任务匹配原则、职业发展原则、团队平衡原则和逐步淘汰原则,顶级天才原则:与其使用更多数量的一般才能人员还不如使用少量的具有更高能力的人员任务匹配原则:量才而用,根据每个团队成员的能力与素质,分配其合适的任务职业发展原则:设立多种工作岗位,为工作表现优秀的团队成员职业发展提供了空间;团队平衡原则:团队成员的选择必须要能相互信任、互相合作、彼此取长补短、协调一致地

6、为共同的团队目标努力;逐步淘汰原则:将那些工作不称职的人员逐步淘汰出团队。,5.2 软件生产过程经济分析,软件系统是一个人-机(软/硬件)系统,从系统的构成与应用来看硬件是基础,软件是核心(心脏)。因此在重视硬件(计算机、通信设备、传感器等)生产的同时开展对软件生产过程(开发过程)的技术经济分析是十分必要而有意义的工作,本节主要介绍在不同的软件类型下软件的主要工程经济参数如生产规模、工作量、投入费用、劳动生产率、环境因子、成本等的相互数量关系,从而为软件的生产过程设计打下基础,同时上述内容的讨论也构成了软件工程经济学的核心内容之一。,5.2.1 软件生产系统动力学方程,根据系统工程的理论,要探

7、索一个目标系统的内在要素关联及其动态发展规律,建立该目标系统对应的系统动力学方程(System dynamical equation.SDE),并以此系统动力学方程为基础来展开研究是一种有效的思路与方法。以下介绍英国软件工程专家诺顿(P.V.Noder)所提供的诺顿瑞利模型(Noder-Rayleigh Model)及系统动力学方程的求解。,基本模型N-R模型的有关变量及其经济内涵如表5.1。其模型假设如下:,表5.1 N-R模型变量表,开发项目中需要解决的问题总量K为有限:C(t)在项目开始时为零,即C(0)=0,然后单调增长到;任何时刻开发项目组的人力数m(t)与尚待解决的问题(或尚需投入

8、)的累计人力工作量成正比;在项目生存周期中,项目开发人员由于不断的学习,因而其开发效率可用关于时间t的学习函数p(t)来描述,其开发人力量m(t)与p(t)成正比,在多数情况下,可设学习函数有,它是时间的线性增函数。,由上述假设容易建立关于累计人力工作量C(t)的如下一阶常系数微分方程及其初值条件(5.7)容易求得上述常微分方程的解为(5.8),注意到(5.8)式的累计人力工作量C(t)的变化率函数具有概率论中瑞利(Rayleign)分布函数的形式,故(5.8)式合称为诺顿-瑞利(N-R)曲线。通过,容易求得N-R曲线在 时取得最 大点,并有最大值(5.9)显然m(t0)即为软件生存周期中的开

9、发人员的峰值。此外还有。,由此可知,对不同的b值(b 0)和K值,N-R曲线均为具有单峰值且自左向右由单调增到单调降的曲线,图6.24画出了当K=10时不同b值的N-R曲线。,b=2,b=0.5,b=0.222,b=0.125,m(t),t,图5.1 K=10时不同b值的N-R曲线,在20世纪70年代,美军陆军中央设计处对所积累的200多个软件开发项目的数据进行的统计分析工作,其中普特纳姆(Putnam,L.H)发现,上述m(t)在 中的最大点t0非常接近交货时间td,这一结论的经济含义是十分明显的,因为在临近交货期时需要大量的人力资源来编制说明书,进行软件调试与质量检验,并对设计,编码等工作

10、作再修改。注意到此时有 或 为,将其代入(5.8)式和(5.9)式还有(5.10),(5.11),(5.11)式的C(td)说明一个开发好的软件系统在初步运行性能良好并交付给用户时只花费了生存期内投入总人力费用的39%,剩下的61%的人力费用将用于该软件系统在运行维护阶段的质量检验,可靠性增长,维护与修改等工作,而这一结论与国外软件工程的大量实践结果基本符合。,图5.2画出了C(t),m(t)随时间t的变化曲线,由图可知m(t)曲线由零递增到m0,然后再递降到零,而C(t)从总体上看是关于t单调增函数,但是C(t)在区间(0,td)内上升较快,而在td以后降增长速度放慢,最近缓慢上升到K。因此

11、一般来说C(t)曲线呈S型。,m(t),C(t),m0,td,t,k,图5.2,5.2.2 项目难度系数与人力增长率软件工程专家普特纳姆(Putnam.L.H)通过对英、美大量软件工程项目资料的研究,得到了一些经验规律性的结论,首先他发现软件工程的开发难度与生存期内投入的总工作量K成正比,与交付期 成反比。于是他建议引入一个能用来定量描述项目开发难度的参数D,并称D为软件工程开发难度系数,且有(5.12),其次普特纳姆还发现比值 在解释软件的开发行为与项目属性方面有重要作用,对于具有同一项目开发特性的软件工程,尽管随着项目规模的增大,K和td均将增大。然而比值 则基本上稳定在某一个常数周围,而

12、不同项目开发属性的软件工程这样的稳定常数则会不同。于是普特纳姆据此建议引入一个被称为人力增长率的工程经济参数D0来描述上述规律性,并给出了不同项目开发属性的稳定常数的具体数值如下:,(5.13),D0之所以称为人力增长率是普特纳姆在研究D关于td的变化率时得到如下关系:而上式的D0反映了难度(人力投入)的变化率(增长率)的概念。显然,当一个待开发软件的开发属性确定后,借助于(5.13)式中D0的经验数据来确定K与td的数量和关系,并进而可由给定的工期td来计算未知的K,即有,这对于软件工程的设计是十分有用的。当然,若已知K与td,则亦可由(5.13)式来求解D0,并观察是否与(5.13)式所给

13、出的数值相近。,例5.1 某软件项目,其初始人力密度增长率为4人/月,预计1年7个月后交付用户,生产费用率为6万元/人年,试确定项目生存期内投入的总工作量(人力费用),峰值人数和总费用项目开发难度系数和人力增长率,以及开发阶段投入的累计人力工作量和费用。解:注意到交付期有 初始人力密度增长率由(5.12)式知有 从而得,以K与td数值代入(5.11)式和(5.13)式有生存期投入的总费用(平均)为此外由(6.41)式还可得到开发阶段投入的累计人力工作量和费用Ud有,5.2.3 软件的劳动生产率、生产函数及其关联,由表5.1得知S为软件工程的规模或提交的源代码程序量(单位NCSS是表示非注释语句

14、的数量),而C(td)则表示在软件开发阶段所投入的累计工作量(单位:人年),因而S/C(td)表示在软件开发阶段中单位时间所提供的源代码程序量(单位NCSS/人年),具有劳动生产率的概念,故人们以符号Fd来表述,并称Fd为软件项目的开发劳动生产率(简称劳动生产率)。,普特纳姆通过对大量美国陆军软件工程项目的开发信息的研究发现了又一个经验规律(统计规律),即有(5.14)(5.14)式的工程经济意义是明显的,它表示软件工程项目难度越大,则劳动生产率就越低下,而此中比例系数C则反映了软件项目开发环境的技术状态,显然,在同样的软件工程项目难度下,不同的开发环境技术状态(如开发方法,开发工具,项目管理

15、状况)亦将直接影响软件项目的劳动生产率。我们以(5.1)式和(5.12)式代入(5.14)式,则有,(5.15),(5.15)式的工程经济意义亦是明显的,它反映了一个软件工程项目投入要素(投入工作量K和交付期td与产出要素(项目提交的生产量或源代码程序量)的数量关系,具有一般工程经济学中生产函数的概念,故人们将(5.15)式称为软件工程项目的生产函数,并将其中的系数E称为该项目的环境因子。有关环境因子的测定方法将在本节后面涉及。生产函数在工程经济分析中起着重要的作用。以下利用软件项目生产函数做弹性分析,来讨论有关时间(工期td)、人力费用总量K与难度系数D的相对变化率的关联和均衡问题。,由(5

16、.15)式显然可得 两边取对数有当在一个特定的机构中开发一个程序量为S的软件产品时,应为常量,故有(5.16)式说明,若开发时间压缩10%或,由于,说明软件相应地应增长人力费用 的40%。,(5.16),同样,注意到有 两边取对数则有,又对左式两边取微分则有 或(5.17)若时间压缩10%,或,由(5.16)式计算已知有,将此代入(5.17)式则有由此可见,尽管对软件项目管理来说,压缩时间是可以做到的,但同时它是以增加项目的难度,增加人力费用为代价,因此时间压缩不能太过分,否则将会导致项目难度及人力费用的极大增加并进而增加了项目管理的风险。,因此在对于K,td,D三个变量的一般均衡问题可建立如

17、下优化模型 其中 分别为软件开发单位根据其现有人力资源总量、技术水平及开发环境条件等来给定的确定值。根据英美使用这些模型的经验,他们认为时间压缩比例一般不能超过原计算值的25%,即。,5.2.4 软件项目开发子周期与生存周期经济要素的关联分析,软件项目各经济要素(人力资源费用、工期、工程难度、生产函数)及其数量关系均是在整个软件项目生存期(又称项目总周期)内获得的。显然,它应该适用于软件项目生存期的各阶段(子周期)如软件设计编码开发阶段、调试与验证阶段、修正维护阶段等。,然而实践证明,为了更有效地进行工程项目管理与控制,人们尚需要进一步研究上述生存周期之各阶段,特别是设计编码开发阶段内各经济要

18、素的关联及其与整个生命周期内各经济要素的关联关系。因为这一阶段是编程和分析专业和管理队员直接进行软件生产的部份。若我们将软件的设计编码开发阶段称为软件项目的开发子周期,而将软件项目的生存周期称为项目总周期,则以下介绍这二者的工程经济参数之间的关联分析。,项目开发子周期的工程经济分析。若设Kd表示软件开发阶段人力费用总量,Cd(t)表示软件开发阶段0,t)时间段累计人力费用,md(t)表示软件开发阶段t时刻人力费用,t0d表示开发子周期内人力投入的峰值时刻,则与前项目总周期的分析同理,应有,(5.18),并有,若仍设td表示软件交付期,则一个实用 的假设是:在t=td时,项目将投入开发阶段人力投

19、入总量Kd的95%(其余5%将用于现场安装与有效性测试),此即为对上式两边取对数可得,从而有 或有(5.19),图5.3画出了由(5.10)式与(5.18)式确定的m(t)与md(t)时间曲线。,图5.3,由图可知软件项目总周期的m(t)与开发了周期的md(t)在t=0时刻有相同的斜率,或有,以(5.19)式代入上式可得(5.20)再利用(5.18)(5.20)式有(5.21),上式说明D既可以作为整个项目生命周期的难度系数,也可作为开发子周期的难度系数。但对于D0情况则并非如此,这是由于由(5.13)式有其中 为开发子周期的人力增长率,利用(5.21)式容易得到开发子周期峰值人数m0d有(5

20、.22)由此可得,(5.22)式可以作为一个标尺来控制软件设计编织开发阶段的开发进度,若在某个时间上项目已经消耗了其全部人力费用的39%,而此时计划中的任务也已经得到及时正确地完成且无需某些人员时,该项目经理即可确认此项目运行轨迹是正确的,而项目结束时的总人力费用可能就是预计的Kd人年,且不会拖延交货时间。而当交货时刻t=td时已消耗95%的总开发人力费用时,则尚有5%的Kd还可用于现场安装与有效性测试,从而保证项目开发工作的顺利完成。,例5.2 某软件开发项目待开发的程序量S已经测算为9000NCSS,其开发将在环境因子确定为1200的环境中进行,并注意到该软件项目是一个独立的数据处理类型程

21、序,其人力增长率选定为D0=15。试求:开发子周期td与开发峰值人数出现时刻t0d;开发子周期投入人力费用Kd,总投放人力费用K与项目难度系数D;峰值人数;该软件项目的生产率,解:利用(5.15)式所示的软件项目生产函数可得 由此可得,由上述生产函数可得,由(5.22)式有由(5.14)式有,5.2.5 环境因子的测定,由于环境因子E是由软件工程项目的开发环境技术状态如开发方法、开发工具和设备项目管理状况等所决定,而这些因素往往取决于软件工程的开发机构。由于不同的开发机构往往有其不同的开发风格与习惯,从而有其不同的通常使用的开发方法、开发工具与设备和管理风格,因此因子E是一个与具有共性的特征量

22、D0完全不同的反映个性的工程经济参数,因此它无法像人力增长率D0那样可以给出一些有广泛性的数值,而应由各开发机构根据反映本部门的项目开发特色的经验数据来确定。,例如某开发机构欲开发一目标软件A,欲确定其环境因子EA,此时可采用类比法来求解E,亦即该开发机构可从其所拥有的历史资料信息库中选择一个与目标软件A有相似功能,采用相似开发方法与设备的软件B(已运行),根据该软件B在开发期内所投入的累计人力费用,交付期 td 和所提交的源代码程序量S,通过下式来计算E:,如果开发机构所拥有的历次资料信息库中与目标软件A有相似功能,采用相似开发方法与设备的软件有多个,例如有B1,B2,Bl 等软件l个,此时可调用这l个软件的数据库列 采用最小二乘法来计算E。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号