单击此处编辑母版样式,单击此处编辑幻灯片母版样式,第二层,第三层,第四层,第五层,5.3 不同规模的软件工程经济分析,人们在对不同规模的软件工程经济分析时觉察这样一个事实:随着规模的不同,软件工程工程的人力资源组织及其治理有较大的区分,对于一些小型软件工程工程,由于功能需求简洁,工程难度低,因而少数几个软件工程师即可完成以规划、分析、设计、编码、测试等全部任务而无需其他的支持人员。,然而在大、中、型软件工程工程建设中,状况就会有所不同。由于这些软件工程往往是具有不同的应用背景如交通工程、水电工程、宇航工程、军事作战工程等的嵌入式软件,因而在软件规划,分析与设计中不仅需要大量的应用工程专业学问和系统硬件计算机网络与通信设备的理论方法与操作阅历学问,而且由于投入了大量人力资源而使工程的打算与组织的协调显得特别重要。因此为了使这样的大、中型软件工程能快速、高效且高质量的完成建设,开发机构将投入的人力资源分成工程开发任务组和工程支持任务组是必要的。,其中工程开发任务组负责软件工程开发所必需完成的根本任务即规划、分析、设计、编码及其审查与测试等任务,而工程支持任务组则完成如下的支持任务:,应用学科领域学问的支持。,计算机网络与通信设备的使用与维护支持。,工程打算网络PERT的设计、跟踪与掌握。,文本供给、质量保证与配置治理。,资源掌握任务跟踪协调与进程监控的高级治理人员。明显,上述的工程支持任务组的工作是特别重要的,而且软件工程的规模越大,所需要的支持任务量也越大。下面介绍有关上述内容的定量分析内容。,为争论涉及工程开发任务组及工程支持任务组的有关工程经济分析,我们首先给出了有关工程经济参数的变量表6.35。假设设 表示开发阶段时间区间子周期,则明显有,5.3.1 不同规模软件的人力投入属性及其比较,变量,经济内涵,单位,m,(,t,),在项目生存周期内,t,时刻的人力投入量,(人年),m,p,(,t,),在项目开发阶段,t,时刻的人力投入总量它包括开发人力投入量与支持人力投入量两部份,(人年),m,d,(,t,),在项目开发阶段,t,时刻的开发人力投入量,(人年),m,s,(,t,),在项目开发阶段,t,时刻的支持人力投入量,(人年),C,(,t,),在项目生存周期内0,t)区间内累计投入人力总量,(人年),C,p,(,t,),在项目开发阶段0,t)时间段内累计投入开发人力与支持人力总量,(人年),C,d,(,t,),在项目开发阶段0,t)时间段内累计开发人力投入总量,(人年),C,s,(,t,),在项目开发阶段0,t)时间段内累计支持人力投入总量,(人年),K,在项目生存周期内为完成所有任务投入的总工作量(人力量),(人年),K,p,在项目开发阶段内为完成所有(包括开发任务与支持任务)任务投入的人员总量(人力量),(人年),K,d,在项目开发阶段内为完成开发任务投入的开发人员总量(人力量),(人年),K,s,在项目开发阶段内为完成支持任务投入的支持人员总量(人力量),(人年),t,d,表示在项目生存周期内投入人力峰值的时刻或项目交付时间或工期,(年或月),t,0,p,在项目开发阶段内投入人力峰值的时刻,(年或月),t,0,d,在项目开发阶段内开发人力峰值的时刻,(年或月),t,0,s,在项目开发阶段内支持人力峰值的时刻,(年或月),表5.2 有关变量经济内涵表,国外很多软件工程学者在经过对以往已完成的软件工程工程的各工程经济变量数据进展争论后得到了一些有益的结论,这些结论列于表5.3。由表得知任何一个软件工程开发子周期内开发的人力投入量md(t),工程任务人力投入总量mp(t)及总周期生存周期内的人力投入量m(t)间三者的分别与重合程度与软件规模程序量S有很大的关联。我们将软件规模非注解性源代码程序员S 70 KNCSS的软件称为大型软件。,由表5.3得知在小型软件的有md(t)=mp(t),这是由于投入人力少,因此即使有一些支持任务,通常也由开发人员兼顾;而在大型软件中,由于所投入的支持任务人力气远远大于开发任务人力气,从而使mp(t)与m(t)特别接近或根本重合;至于中型软件则呈现出md(t),mp(t),m(t)三者分别的现象,而且随着S的增大,mp(t)与md(t)分别度越大,而mp(t)与m(t)重合度越大,上述这种人力投入的规律性详可见图5.4abcd。其中a为小型软件工程b与c为中型软件工程,d为大型软件工程。下面我们分别对大、中、小型软件工程分别作有关的工程经济分析。,投入人力密度,t,t,0,d,t,d,m,d,(,t,),m,(,t,),m,0,m,0,p,m,0,d,投入人力密度,t,t,0,d,=,t,0,p,t,d,m,d,(,t,)=,m,p,(,t,),m,(,t,),m,0,m,0,p,m,0,d,(a)小型工程,S=10 KNCSS,td=1.25年,t0d=0.5年,(b)中型工程,S=25 KNCSS,td=1.85年,t0p=1.0年,t0d=0.76年,m,p,(,t,),t,0,p,投入人力密度,t,t,0,d,t,d,=,t,0,p,m,d,(,t,),m,(,t,),m,p,(,t,),m,0,m,0,p,m,0,d,投入人力密度,t,t,0,d,t,d,m,d,(,t,),m,(,t,),m,0,m,0,p,m,0,d,m,p,(,t,),t,0,p,0,(c)中型工程,S=55 KNCSS,td=2.6年,t0p=2.4年,t0d=1.1年,(d)大型工程,S=90 KNCSS,td=3.2年,t0p=3.2年,t0d=1.3年,图5.4 不同规模软件开发属性图,程度量,S,S,70K,m,d,(,t,)与,m,p,(,t,)关系,m,d,(,t,)与,m,p,(,t,)重合,m,d,(,t,)与,m,p,(,t,)分离,S愈大,两者的分离度愈大,m,d,(,t,)与,m,p,(,t,)分离,m,(,t,)与,m,p,(,t,)关系,m,(,t,)与,m,p,(,t,)分离,m,(,t,)与,m,p,(,t,)分离,S愈大,两者的重合度愈大,m,(,t,)与,m,p,(,t,)基本重合,表5.3 规模属性表,注:1K=1000NCSS,1.小型软件工程经济分析,由表5.3得知:在小型软件工程工程中有 ,从而也有 ,,,而且有关,的相关工程经济参数,之间的数量关系式5.105.15式和5.185.22式对于小型软件工程工程仍旧适用,于是人们也可利用上述各工程经济参数间的数量关系式来作大型软件工程的工程经济分析与设计。,5.3.2 不同规模软件的生产过程经济分析,中型软件工程经济分析,由表5.3得知:在中型软件工程工程中,由于md(t),mp(t),m(t)三者分别,虽然有5.105.15式和5.185.22式对大型软件工程仍旧适用,但mp(t)仍需求解,mp(t),Cp(t),Kp,t0p,m0p相关之间的关联及其与其他工程经济参数之间的关联仍得争论。为此以下首先争论mp(t)的求解。考虑到mp(t)的仍可用诺顿/瑞利函数来描述,即与前同理推导有,5.26,留意到工程峰值人数在top时刻消失,故在5.26式中两边对t求导数并令其为零,即可解得 ,再将其代入5.26式有,5.27,为进一步争论开发投入人力,支持投入人力和工程总人力投入间的彼此关联关系,可设,5.28,对于m(t)与mp(t)在一般状况下仍应有,或有 5.29,以5.28式代入5.29式和5.27式可得:,5.30,利用5.28式、5.11式及上述两式简洁得到:,5.31,再利用5.31式与5.11式还有,5.32,以5.30式代入5.27式还有,5.33,留意到一个中型软件工程在工程子周期内各经济量间的相到关系5.285.33式均与参数a有关,我们称a为规模参数。以下来争论参量a确实定。,5.3.3 规模参数确实定,普特纳姆在对以往的信息系统数据资料的争论中觉察,软件工程的程序量S与参量a值有极强的负相关关系,并依据普特纳姆数据库中的数据计算得到S与a的样本相关系数达-0.998,上述阅历结论说明可以建立S与a的阅历公式。,为此我们首先将普特纳姆数据中的一组样本序列,在平面上标点并连接成曲线此中Sl为第l个软件工程的程序量,al为由该工程的td与t0p相除所得到的比值,我们觉察此关联曲线具有分段负指数曲线外形特征详见图5.5,为此可承受函数 来作曲线拟合。,运用典型的非线性回归拟合或其它非线性曲线拟合方法简洁求得 从而获得了拟合曲线 5.34,图5.5 a-s 曲线图,1,2,3,20,40,60,80,Sl单位:KNCSS,a,l,小型,中型,大型,普特纳姆还对此拟合曲线的有效性问题做了争论,并列出了表5.4所示的比照,表5.4中Sn列an及列其次列与第三列分别为不同软件规模的程序量及运用该软件工程实际数据td与t0p相除算得的真实an值,而该表之第四列显示出了当S=St时代入拟合算法5.34式所算得的对应拟合值 ,简洁计算该拟合的均方误差有,n,S,n,a,n,a,(,S,n,),1,515,2.44,2.51,2,20,-,2.29,3,25,1.85,1.87,4,30,1.61,1.59,5,40,1.30,1.27,6,50,1.15,1.12,7,70,1.04,1.02,8,100,1.00,1.002,表5.4 拟合误差表,留意到在表5.4中,除 为大型软件工程外,其他均为中型规模软件,因此,人们可依据5.34式来由中型软件规模S来确定其对应的规模参数a。,对于小型软件,由于有t0d=t0p,则利用5.30式的,结果可得 ,对于大型软件,由于有t0p=td,因而有 ,综合上述三种不同规模的结果,可得规模参数a的根本算法如下:,(5.35),例6.18 欲开发一程序量S=45000NCSS的中型嵌入式软件工程,依据该软件的开发属性知人力增长率可取的推举值D0=8,环境因子经考察定为E=2400,试计算,该软件工程工期td,生存周期内人力总费用K,难度系数D;,开发子周期内峰值人数m0d及消失时间t0d;,工程子周期内人力总费用Kp、峰值人数m0p及其消失时刻 t0p、td时刻的投入累计人力费用Cp(td)。,解:留意到S=45000 NCSS,故为中型软件工程,因此对工程完成的争论应深入到开发子周期、工程子周期及总周期生存周期及其关联中去。,1由5.15式与5.13式可得工程生存周期内各参量有,故有,2在开发子周期内有:,3在工程子周期内,由5.35式可得,从而由5.285.33式可得,留意到在t=td时已消耗了开发人力费用Kd的95%,从而还剩Ks用于治理支持、质量检验,现场测试等,此中利用5.33式有,5.4 软件工程理论生存周期长度及其关联分析,对于大型软件工程,人们除关心开发子周期与工程任务子周期内的工程经济分析外,人们更应当关心在软件交付用户使用后的经济活动及其经济分析,为此我们设文该软件工程的生存周期为tf,亦即 当时该软件将“报废”,以下来寻求tf与td、K等主要经济量的关系。留意到K为 期间投入的累计人力资源总量,而C(tf)为 内投入的累计人力资源总量,故可认为有 。,此外通过大量观看得知在大型软件工程中,工程任务子周期与总周期生存周期根本接近,亦即有,,从而有 5.36,由5.36式与5.10式还有,5.37,综合6.63式与6.64式有,或者,对上式两边取对数及移项得 5.38,上式给出了该软件工程生命周期的“报废”时刻tf与交付工期td、投入人力费用总量K之间的数量关系。据此关系可进一步争论在时间区间 间的经济活动及其经济分析,例6.19 某欧洲国家的国际长途 中心已经开发一通信掌握软件,该软件用高级语言编写,程序量S=245KNCSS,开发工作投入的人力总费用Kd=196人年,自开发到交付的时间间隔td=3.66年,为争论该软件交付用户后的有关经济活动,试求该软件工程如下经济变量元数值。,1Kp、C(td)、t0p、tf、D0、D;,2E、t0d、m0d、m0