欢迎来到天天文库
浏览记录
ID:44790967
大小:2.05 MB
页数:82页
时间:2019-10-29
《软件工程第十三讲》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第十三讲软件项目管理主讲人:杨兵估算软件规模工作量估算进度计划人员组织质量保证软件配置管理能力成熟度模型小结依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。把实现每个功能所需要的源程序行数累加起来,就可得到实现整个软件所需要的源程序行数。估算软件规模——代码行技术由多名有经验的软件工程师分别做出估计。每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出这3种规模的平均值,再用下式计算程序规模的估计值:L=单位是代码行数(LOC)或千行代码数(KLOC)代码行
2、技术的优点:代码是所有软件开发项目都有的“产品”,且容易计算行数。代码行技术的缺点是:源程序仅是软件配置的一个成分。为了克服代码行技术的缺点,人们提出了功能点技术。依据软件信息域特性和软件复杂性,用功能点(FP)为单位度量软件规模。1.信息域特性功能点技术定义了信息域的5个特性:输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)和外部接口数(Inf)。(1)输入项数:用户向软件输入的项数,这些输入给软件提供面向应用的数据。功能点技术(2)输出项数:软件向用户输出的项数,它们向用户提供
3、面向应用的信息,例如,报表和出错信息等。报表内的数据项不单独计数。(3)查询数:查询即是一次联机输入,它导致软件产生某种即时响应(输出)。(4)主文件数:逻辑主文件(即数据的一个逻辑组合,它可能是大型数据库的一部分或是一个独立的文件)的数目。(5)外部接口数:机器可读的全部接口(例如,磁盘或磁带上的数据文件)的数量,用这些接口把信息传送给另一个系统。2.估算功能点的步骤用下述3个步骤,可估算出一个软件的功能点数(即软件规模)。FP=UFP×TCF(1)计算未调整的功能点数UFP每个特性(即Inp、Out、In
4、q、Maf和Inf)都分类为简单级、平均级或复杂级UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1≤i≤5)是特性系数,其值由相应特性的复杂级别决定,如表(2)计算技术复杂性因子TCF14种技术因素Fi(1≤i≤14)对软件规模的影响程度。每个因素分配一个从0(无影响)到5(有很大影响)DI=值在0~70之间技术复杂性因子TCF由下式计算:TCF=0.65+0.01×DI(3)计算功能点数FPFP=UFP×TCF功能点数与所用的编程语言无关。在判断信息域特性复杂级别和
5、技术因素的影响程度时,存在着相当大的主观因素。软件估算模型由经验导出的公式来预测软件开发工作量,工作量是软件规模(KLOC或FP)的函数,工作量的单位通常是人月(pm)。估算模型的经验数据,是从有限个项目的样本集中总结出来的,因此,没有一个估算模型可以适用于所有类型的软件和开发环境。工作量估算这类模型的总体结构形式如下:E=A+B×(ev)C其中,A、B和C是由经验数据导出的常数,E是以人月为单位的工作量,ev是估算变量(KLOC或FP)。下面给出几个典型的静态单变量模型。1.面向FP的估算模型(1)Albr
6、echt&Gaffney模型E=-13.39+0.0545FP(2)Maston,Barnett和Mellichamp模型E=585.7+15.12FP静态单变量模型2.面向KLOC的估算模型(1)Walston_Felix模型E=5.2×(KLOC)0.91(2)Bailey_Basili模型E=5.5+0.73×(KLOC)1.16(3)Boehm简单模型E=3.2×(KLOC)1.05(4)Doty模型(在KLOC>9时适用)E=5.288×(KLOC)1.047对于相同的KLOC或FP值,用不同模型估
7、算将得出不同的结果。主要原因是,这些模型多数都是仅根据若干应用领域中有限个项目的经验数据推导出来的,适用范围有限。因此,必须根据当前项目的特点选择适用的估算模型,并且根据需要适当地调整(例如,修改模型常数)估算模型。动态多变量模型是根据从4000多个当代软件项目中收集的生产率数据推导出来的。工作量是软件规模和开发时间这两个变量的函数。E=(LOC×B0.333/P)3×(1/t)4E是以人月或人年为单位的工作量;t>1是以月或年为单位的项目持续时间;B是特殊技术因子,它随着规模和要求的增加而缓慢增加:小的程序
8、(KLOC=5~15),B=0.16,超过70KLOC的程序,B=0.39;P是生产率参数(2000-30000)动态多变量模型P生产率参数,反映了下述因素对工作量的影响:总体过程成熟度及管理水平;使用良好的软件工程实践的程度;使用的程序设计语言的级别;软件环境;软件项目组的技术及经验;应用系统的复杂程度。开发实时嵌入式软件时:P~=2000;电信系统和系统软件时:P=10000;商业应用系统:P=
此文档下载收益归作者所有