软件项目硕士论文润色:《对模型进行优化可得到人力资源投入的估算模型》
日期:2018年01月15日
编辑:
作者:无忧论文网
点击次数:1435
论文价格:免费
论文编号:lw201112232118307358
论文字数:2602
所属栏目:软件项目与工程管理论文
论文地区:
论文语种:中文
论文用途:职称论文 Thesis for Title
<p><A href="http://www.51lunwen.org/software/2011/1222/lw201112220726503913.html" target=_blank>软件项目</A>硕士论文润色:《对模型进行优化可得到人力资源投入的估算模型》</P>
<p>Abstract: by using the Putnam model and software project cost formula input of manpower and software project cost; the study on human input to the software project risk; the normal distribution function to discuss the n software developers to total workload of probability density distribution, set up on the basis of the risk model based on Bayesian rules; to optimize the model can obtain manpower resources investment estimation model.</P>
<p>摘要:利用Putnam模型和<A href="http://www.51lunwen.org/software/2011/1222/lw201112220726503913.html" target=_blank>软件项目</A>成本公式讨论了投入的人力和软件项目成本的关系;研究了人力投入对软件项目风险的影响;利用正态分布函数讨论了n个软件开发人员总工作量的概率密度分布,在此基础上建立了基于贝叶斯规则的风险模型;对模型进行优化可得到人力资源投入的估算模型。</P>
<p> </P>
<p> </P>
<p>关键词:软件项目;成本;贝叶斯风险;人力资源
<p> </P>
<p>1.软件项目开发的成本分析<BR>软件项目的成本最终由项目的工作量和项目持续的时间来确定.国内外有关软件成本估算的讨论很多,这里引用Czuchra的软件项目成本公式[1]C = ctt+ cEE, (1)式中,C是软件项目的开发费用,用人民币元表示;t是软件项目开发时间,单位以a表示;E是以人•年为单位的工作量;ct是仅与时间相关的单位时间消费费用(如:房租、水、电、煤气及其他费用等,单位是元/年);cE是与工作量相关的费用,单位为元/人•年.Putnam等提出了一个多变量模型的软件方程式[2],它假设在软件开发项目的整个周期中的一个特定的工作量分布.该模型是Putnam从4 000多个当代的软件项目中收集的生产率数据中导出的.基于这些数据,估算模型为E = L3B/(P3t4), (2)式中,L是以行表示的软件规模;B是“特殊技术因子”,它随着“对集成、测试、质量保证、文档及管理技术的需求的增长”而缓慢增加.对于较小的程序(程序行L=5 000到15 000),B=0.16;对于超过70 000的较大程序,B=0.39;P是“生产率参数”,它反映了总体过程成熟度及管理水平,良好的软件工程实践的使用程度,使用的程序设计语言的级别,软件环境状态,软件项目组的技术及经验和应用的复杂性等生产率的状况.对于实时嵌入式的开发,典型值是P=2 000,对于电信及系统软件,P=10 000;而对于商业系统应用,P=28 000.当前项目的生产率参数可以通过从以前的开发工作中收集到的历史数据导出.即N = E/t, (3)式中N为项目组软件开发人数.由式(2)和(3)得t = [L3B/(P3N)]1/5. (4)由式(1),(2)和(4)得到C = ct[L3B/(P3N)]1/5+ cE(N4L3B/P3)1/5.(5)方程(5)两边对N求导,并令dC/dN=0,得到费用C的最小值点.最小值点的N值为Nmin= max(1, [ct/(4cE)+0.5]), (6)式中,Nmin为软件开发费用C最小时的项目组人数;由式(6)可以看出:软件开发费用C最小时的项目组人数Nmin与软件项目的各种价格(如ct,cE等)以及软件生产率参数P有关;当ct/(4cE)≤1时,成本C在Nmin∈[1, +∞)上是单调递增的.这时人员越少成本越低.<BR>但管理者在安排项目人数时,还不能仅仅根据成本来作出决定,还必须考虑项目的工期和进度.因为对于比较大的项目,如果人数安排过少,项目就有不能按进度要求完成的风险,企业将面临信誉损失、额外的经济负担以至整个项目的失败.管理者在作出人员安排时,必须考虑可能的项目风险.
<p> </P>
<p>2.软件项目风险分析<BR>在软件开发过程中,一般都要进行风险分析.虽然对于<A href="http://www.51lunwen.org/software/2011/1222/lw201112220726503913.html" target=_blank>软件风险</A>的严格定义还存在很多争议,但在风险中应包含两个基本特征这一点上已达成了共识:<BR>a.不确定性.刻划风险的事件可能发生也可能不发生;<BR>b.损失.如果风险变成了现实,就会产生恶性后果或损失.<BR>Pressman比较详细地讨论了风险管理问题,列出常见的风险因素有:产品规模的风险、商业影响的风险、客户特征的风险、过程定义的风险、开发环境的风险、建造的技术的风险、人员数目及经验的风险等等[3].<BR>这里只讨论与人员数目及经验相关的风险.该风险是项目风险的一种,主要威胁到项目的进度计划.如果变为现实,有可能会拖延项目的进度,增加项目的成本或导致项目的失败.Boehm[4]详细讨论了可用于评估与人员数目及经验相关风险的一些问题,详细情况参见文献[4].<BR>综合Boehm提出的几个问题可能产生的结果,可以归结为两点,一是所安排的人员的工作效率低于预期效率,二是人员不稳定,人员中途离开,造成工作中断.这两个结果都将造成项目进度拖延.由于篇幅有限,本研究将在以后的文章中讨论人员中途离开的情况.
<p> </P>
<p>3.软件开发人力资源贝叶斯决策模型<BR> 为了便于讨论,本文作出以下假定:a.企业有足够优秀的技术人员;b.开发人员接受过必要的培训,且在技术上是配套的;c.没有开发人员中途离开;d.开发人员对自己的工作有正确的期望.文献[5]对人力的工作效率问题进行了深入讨论,它认为,加工某一类产品的产量对于不同的人以及同一人员在不同的时刻,其具体数值都不一样.其分布在数学上呈现正态分布.本文直接采用文献[5]的结论,用正态分布模型来讨论软件开发人员工作效率问题.<BR>设一个软件开发人员平均每年完成l0行,则其每年完成工作量l的概率密度分布<BR> f1(l) =exp{-[(l- l0)2/(2σ20)]}/[(2π)1/2σ0] (0< l < l1),式中,l为软件开发人员每年可能完成的工作量;l0为软件开发人员每年完成工作量的均值;l1为软件开发人员每年完成的工作量的极限;σ0为l的方差.<BR>根据正态分布的特点,一个软件开发人员在规定开发期为Ta的时间内,完成工作量的概率密度分布<BR> f2(l) =exp{-[(l- Tl0)2/(2Tσ20)]}/[(2π)1/2T1/2σ0] (0< l < Tl1).<BR> 令L0= Tl0; σ2= Tσ20.<BR> 项目组N个软件开发人员在规定开发期为Ta的时间内,完成工作量的概率密度用如下函数表示:<BR> f(l) =exp{-[(l-NL0)2/(2Nσ2)]}/[(2π)1/2N1/2σ] (0< l < NTl1).<BR> 在安排N个开发人员的情况下,发生进度拖延的概率<BR> P(l < L) =∫L-∞12πNσ•exp{-[(l-NL0)2/(2Nσ2)]}dl (L≤NTl1).<BR> 对于L>NTl1时,P(l<L)=1,这种情况下风险发生的概率为100 %,是不允许发生的情况,在这里不作讨论.<BR>设在规定时间T内项目组完成任务量为l时,损失函数如下:<BR> h(l, N) =ctL3BP3N15+ cEN4L3BP315 (l≥L);ctL3BP3N15+ cEN4L3BP315+ Cl (l < L),<BR>式中,Cl为风险发生时的惩罚值,单位为元.依据贝叶斯规则,贝叶斯风险值<BR> r(l, N) =∫+∞-∞h(l, N)f(l)dl =ctL3BP3N15+ cEN4L3BP315+