《5.3不同规模的软件工程经济分析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《5.3不同规模的软件工程经济分析优秀PPT.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、5.3 不同规模的软件工程经济分析l人们在对不同规模的软件工程经济分析时发觉这样一个事实:随着规模的不同,软件工程项目的人力资源组织及其管理有较大的区分,对于一些小型软件工程项目,由于功能需求简洁,项目难度低,因而少数几个软件工程师即可完成以规划、分析、设计、编码、测试等全部任务而无需其他的支持人员。l然而在大、中、型软件工程项目建设中,状况就会有所不同。由于这些软件工程往往是具有不同的应用背景(如交通工程、水电工程、宇航工程、军事作战工程等)的嵌入式软件,因而在软件规划,分析与设计中不仅须要大量的应用工程专业学问和系统硬件(计算机网络与通信设备)的理论方法与操作阅历学问,而且由于投入了大量人
2、力资源而使工程的支配与组织的协调显得特殊重要。因此为了使这样的大、中型软件工程能快速、高效且高质量的完成建设,开发机构将投入的人力资源分成项目开发任务组和项目支持任务组是必要的。l其中项目开发任务组负责软件工程开发所必需完成的基本任务即规划、分析、设计、编码及其审查与测试等任务,而项目支持任务组则完成如下的支持任务:l应用学科领域学问的支持。l计算机网络与通信设备的运用与维护支持。l工程支配网络(PERT)的设计、跟踪与限制。l文本供应、质量保证与配置管理。l资源限制任务跟踪协调与进程监控的高级管理人员。明显,上述的项目支持任务组的工作是特殊重要的,而且软件项目的规模越大,所须要的支持任务量也
3、越大。下面介绍有关上述内容的定量分析内容。u为探讨涉及项目开发任务组及项目支持任务组的有关工程经济分析,我们首先给出了有关工程经济参数的变量表6.35。若设 表示开发阶段时间区间(子周期),则明显有5.3.1 5.3.1 不同规模软件的人力投入属性及其比较不同规模软件的人力投入属性及其比较变量变量经济内涵经济内涵单位单位m(t)在项目生存周期内t时刻的人力投入量(人年)mp(t)在项目开发阶段t时刻的人力投入总量它包括开发人力投入量与支持人力投入量两部份(人年)md(t)在项目开发阶段t时刻的开发人力投入量(人年)ms(t)在项目开发阶段t时刻的支持人力投入量(人年)C(t)在项目生存周期内0
4、,t)区间内累计投入人力总量(人年)Cp(t)在项目开发阶段0,t)时间段内累计投入开发人力与支持人力总量(人年)Cd(t)在项目开发阶段0,t)时间段内累计开发人力投入总量(人年)Cs(t)在项目开发阶段0,t)时间段内累计支持人力投入总量(人年)K在项目生存周期内为完成所有任务投入的总工作量(人力量)(人年)Kp在项目开发阶段内为完成所有(包括开发任务与支持任务)任务投入的人员总量(人力量)(人年)Kd在项目开发阶段内为完成开发任务投入的开发人员总量(人力量)(人年)Ks在项目开发阶段内为完成支持任务投入的支持人员总量(人力量)(人年)td表示在项目生存周期内投入人力峰值的时刻或项目交付时
5、间或工期(年或月)t0p在项目开发阶段内投入人力峰值的时刻(年或月)t0d在项目开发阶段内开发人力峰值的时刻(年或月)t0s在项目开发阶段内支持人力峰值的时刻(年或月)表5.2 有关变量经济内涵表u国外很多软件工程学者在经过对以往已完成的软件工程项目的各工程经济变量数据进行探讨后得到了一些有益的结论,这些结论列于表5.3。由表得知任何一个软件项目开发子周期内开发的人力投入量md(t),项目任务人力投入总量mp(t)及总周期(生存周期)内的人力投入量m(t)间三者的分别与重合程度与软件规模(程序量)S有很大的关联。我们将软件规模(非注解性源代码程序员)S 70 KNCSS的软件称为大型软件。u由
6、表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.4(a)(b)(c)(d)。其中(a)为小型软件项目(b)与(c)为中型软件项目,(d)为大型软件项目。下面我们分别对大、中、小型软件工程分别作有关的工程经济分析。投入人力密度投入人
7、力密度tt0dtdmd(t)m(t)m0m0pm0d投入人力密度投入人力密度tt0d=t0ptdmd(t)=mp(t)m(t)m0m0pm0d(a)小型项目小型项目 S=10 KNCSS td=1.25年年t0d=0.5年年(b)中型项目中型项目 S=25 KNCSS td=1.85年年t0p=1.0年年t0d=0.76年年 mp(t)t0p投入人力密度投入人力密度tt0dtd=t0pmd(t)m(t)mp(t)m0m0pm0d投入人力密度投入人力密度tt0d tdmd(t)m(t)m0m0pm0dmp(t)t0p0(c)中型项目中型项目 S=55 KNCSS td=2.6年年t0p=2.4年
8、年t0d=1.1年年(d)大型项目大型项目 S=90 KNCSS td=3.2年年t0p=3.2年年t0d=1.3年年 图图5.4 不同规模软件开发属性图不同规模软件开发属性图程度量程度量 SS 70Kmd(t)与与mp(t)关系关系md(t)与与mp(t)重重合合md(t)与与mp(t)分离,分离,S愈大,两者的分离愈大,两者的分离度愈大度愈大md(t)与与mp(t)分分离离m(t)与与mp(t)关系关系m(t)与与mp(t)分分离离m(t)与与mp(t)分离,分离,S愈大,两者的重合愈大,两者的重合度愈大度愈大m(t)与与mp(t)基基本重合本重合表表5.3 规模属性表规模属性表注:注:1
9、K=1000NCSS1.小型软件工程经济分析由表5.3得知:在小型软件工程项目中有 ,从而也有 ,而且有关 的相关工程经济参数 之间的数量关系式(5.10)(5.15)式和(5.18)(5.22)式对于小型软件工程项目照旧适用,于是人们也可利用上述各工程经济参数间的数量关系式来作大型软件工程的工程经济分析与设计。5.3.2 5.3.2 不同规模软件的生产过程经济分析不同规模软件的生产过程经济分析3.中型软件工程经济分析4.由表5.3得知:在中型软件工程项目中,由于md(t),mp(t),m(t)三者分别,虽然有(5.10)(5.15)式和(5.18)(5.22)式对大型软件工程照旧适用,但mp
10、(t)仍需求解,mp(t),Cp(t),Kp,t0p,m0p相关之间的关联及其与其他工程经济参数之间的关联仍得探讨。为此以下首先探讨mp(t)的求解。考虑到mp(t)的仍可用诺顿/瑞利函数来描述,即与前同理推导有5.(5.26)u留意到项目峰值人数在top时刻出现,故在(5.26)式中两边对t求导数并令其为零,即可解得 ,再将其代入(5.26)式有u (5.27)u为进一步探讨开发投入人力,支持投入人力和项目总人力投入间的彼此关联关系,可设u (5.28)u对于m(t)与mp(t)在一般状况下仍应有u 或有 (5.29)u以(5.28)式代入(5.29)式和(5.27)式可得:u (5.30)
11、u利用(5.28)式、(5.11)式及上述两式简洁得到:u (5.31)u再利用(5.31)式与(5.11)式还有 u (5.32)u以(5.30)式代入(5.27)式还有u u (5.33)u留意到一个中型软件项目在项目子周期内各经济量间的相到关系(5.28)(5.33)式均与参数a有关,我们称a为规模参数。以下来探讨参量a的确定。5.3.3 规模参数的确定普特纳姆在对以往的信息系统数据资料的探讨中发觉,软件项目的程序量S与参量a值有极强的负相关关系,并依据普特纳姆数据库中的数据计算得到S与a的样本相关系数达-0.998,上述阅历结论说明可以建立S与a的阅历公式。为此我们首先将普特纳姆数据中
12、的一组样本序列 在平面上标点并连接成曲线此中Sl为第l个软件项目的程序量,al为由该项目的td与t0p相除所得到的比值,我们发觉此关联曲线具有分段负指数曲线形态特征(详见图5.5),为此可接受函数 来作曲线拟合。u运用典型的非线性回来拟合(或其它非线性曲线拟合方法)简洁求得 从而获得了拟合曲线 (5.34)图图5.5 a-s 曲线图曲线图12320406080Sl(单位:(单位:KNCSS)al小型小型中型中型大型大型u普特纳姆还对此拟合曲线的有效性问题做了探讨,并列出了表5.4所示的对比,表5.4中Sn列an及列(其次列与第三列)分别为不同软件规模的程序量及运用该软件项目实际数据td与t0p
13、相除算得的真实an值,而该表之第四列显示出了当S=St时代入拟合算法(5.34)式所算得的对应拟合值 ,简洁计算该拟合的均方误差有nSnana(Sn)15152.442.51220-2.293251.851.874301.611.595401.301.276501.151.127701.041.0281001.001.002表表5.4 拟合误差表拟合误差表u留意到在表5.4中,除 为大型软件项目外,其他均为中型规模软件,因此,人们可依据(5.34)式来由中型软件规模S来确定其对应的规模参数a。u对于小型软件,由于有t0d=t0p,则利用(5.30)式的u 结果可得 ,对于大型软件,由于有t0p
14、=td,因而有 ,综合上述三种不同规模的结果,可得规模参数a的基本算法如下:u (5.35)u u例6.18 欲开发一程序量S=45000NCSS的中型嵌入式软件项目,依据该软件的开发属性知人力增长率可取的举荐值D0=8,环境因子经考察定为E=2400,试计算u该软件项目工期td,生存周期内人力总费用K,难度系数D;u开发子周期内峰值人数m0d及出现时间t0d;u项目子周期内人力总费用Kp、峰值人数m0p及其出现时刻 t0p、td时刻的投入累计人力费用Cp(td)。u解:留意到S=45000 NCSS,故为中型软件项目,因此对项目完成的探讨应深化到开发子周期、项目子周期及总周期(生存周期)及其
15、关联中去。u (1)由(5.15)式与(5.13)式可得项目生存周期内各参量有u 故有(2)在开发子周期内有:(3)在项目子周期内,由(5.35)式可得 从而由(5.28)(5.33)式可得,u留意到在t=td时已消耗了开发人力费用Kd的95%,从而还剩Ks用于管理支持、质量检验,现场测试等,此中利用(5.33)式有5.4 软件项目理论生存周期长度及其关联分析l对于大型软件项目,人们除关切开发子周期与项目任对于大型软件项目,人们除关切开发子周期与项目任务子周期内的工程经济分析外,人们更应当关切在软务子周期内的工程经济分析外,人们更应当关切在软件交付用户运用后的经济活动及其经济分析,为此我件交付
16、用户运用后的经济活动及其经济分析,为此我们设文该软件项目的生存周期为们设文该软件项目的生存周期为tf,亦即,亦即 当时该当时该软件将软件将“报废报废”,以下来寻求,以下来寻求tf与与td、K等主要经济量等主要经济量的关系。留意到的关系。留意到K为为 期间投入的累计人力资源总期间投入的累计人力资源总量,而量,而C(tf)为为 内投入的累计人力资源总量,故可内投入的累计人力资源总量,故可认为有认为有 。l此外通过大量视察得知在大型软件项目中,项目任务子周期与总周期(生存周期)基本接近,亦即有l ,从而有 (5.36)l由(5.36)式与(5.10)式还有l l (5.37)l综合(6.63)式与(
17、6.64)式有 l 或者l对上式两边取对数及移项得 (5.38)l上式给出了该软件项目生命周期的“报废”时刻tf与交付工期td、投入人力费用总量K之间的数量关系。据此关系可进一步探讨在时间区间 间的经济活动及其经济分析 l例6.19 某欧洲国家的国际长途电话中心已经开发一通信限制软件,该软件用高级语言编写,程序量S=245KNCSS,开发工作投入的人力总费用Kd=196人年,自开发到交付的时间间隔td=3.66年,为探讨该软件交付用户后的有关经济活动,试求该软件项目如下经济变量元数值。l(1)Kp、C(td)、t0p、tf、D0、D;l(2)E、t0d、m0d、m0p;l(3)对上述各经济量作
18、经济分析。l解:l (1)留意到S=245 KNCSS为大型软件,此时有a(245)=1,于是由(5.20)、(5.11)、(5.38)式得到(2)利用(5.15)、(5.19)、(5.22)、(5.32)式得 或(3)由)由 年可知,该软件交付年可知,该软件交付运用后理论上尚需运行运用后理论上尚需运行10多年,因而必需投入相当一批多年,因而必需投入相当一批人力费用来作软件维护、有效性测试、牢靠性增长试验人力费用来作软件维护、有效性测试、牢靠性增长试验等其他任务,而这部分投入的总人力费用可计算有等其他任务,而这部分投入的总人力费用可计算有为保证上述任务完成所须要的技术环境因子由上计算为为保证上
19、述任务完成所须要的技术环境因子由上计算为E=4115,这是一个较高的环境因子值,因此必需创建条,这是一个较高的环境因子值,因此必需创建条件来满足此环境要求。件来满足此环境要求。在整个生存周期在整个生存周期0,tf)中开发人员高峰、项目任务人力高中开发人员高峰、项目任务人力高峰分别出现在峰分别出现在t0d=1.5年,年,t0p=3.66年,年,并明显有并明显有 。而相应的峰值人数依次为。而相应的峰值人数依次为m0d=1.5人,人,m0=m0p=193人,由此可知:对大型软件人,由此可知:对大型软件项目人力费用的峰值不在开发阶段项目人力费用的峰值不在开发阶段0,td),而在交付软,而在交付软件时刻件时刻t=td=t0p。u由该软件项目难度系数 ,这说明该软件开发组人数初期基本上是依据平均每周1.83人的速率在增加,这样的高速率正好说明白前面计算出的人力增长率为 这一事实,而事实上由于该软件项目是一个大型项目,组建这样一个大型项目任务组也的确须要这样的速度,因为这样的大项目组除开发人力外,还须要资源限制、支配支持、任务定义、任务跟踪和进程限制等人力投入。