软件工程第十三章软件项目管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
软件工程
13.1 估算软件规模
中南大学 Central South University
2019/12/31
13.1.1 代码行技术
代码行技术是简单的定量估算软件规模的方法。 该方法依据以往开发类似产品的经验和历史数据, 估计实现一个功能所需要的源程序行数。 把实现每个功能所需要的源程序行数累加起来, 就可得到实现整个软件所需要的源程序行数。
ห้องสมุดไป่ตู้
6
13.1.2 功能点技术
功能点技术依据软件信息域特性和软件复杂性, 用功能点(FP)为单位度量软件规模。 1. 信息域特性
功能点技术定义了信息域的5个特性: 输入项数(Inp)、 输出项数(Out)、查询数(Inq)、主文件数(Maf)和外部接 口数(Inf) (1) 输入项数:用户向软件输入的项数,这些输入给软 件提供面向应用的数据。
软件工程
第十三章 软件项目管理
中南大学 Central South University
2019/12/31
本讲内容
13.1 估算软件规模 13.2 工作量估算 13.3 进度计划 13.4 人员组织 13.5 质量保证 13.6 软件配置管理 13.7 能力成熟度模型 13.8 小结
2019/12/31
B是特殊技术因子,它随着规模和要求的增加而缓慢增加: 小的程序(KLOC=5~15),B=0.16, 超过70 KLOC的程序,
B=0.39;
P是生产率参数 (2000-30000)。
1.面向FP的估算模型 (1) Albrecht & Gaffney模型
E=-13.39+0.0545FP (2) Maston,Barnett和Mellichamp模型
E=585.7+15.12FP
2019/12/31
14
13.2.1 静态单变量模型
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
(3) 计算功能点数FP FP=UFP×TCF 功能点数与所用的编程语言无关。
2019/12/31
11
软件工程
13.2 工作量估算
中南大学 Central South University
2019/12/31
13.2 工作量估算
软件估算模型由经验导出的公式来预测软件开 发工作量,工作量是软件规模(KLOC或FP)的 函数,工作量的单位通常是人月(pm)。
2019/12/31
16
13.2.2 动态多变量模型
动态多变量模型是根据从4000多个当代软件项目中收集 的生产率数据推导出来的。
工作量是软件规模和开发时间这两个变量的函数。
E=(LOC×B0.333/P)3×(1/t)4
(13.2)
E是以人月或人年为单位的工作量;
t>1是以月或年为单位的项目持续时间;
2019/12/31
9
2019/12/31
10
13.1.2 功能点技术
(2) 计算技术复杂性因子TCF 14种技术因素Fi(1≤i≤14)对软件规模的影响程度。每个
14
因素分配一个从0(无影响)到5(有很大影响) DI= Fi i 1
值在0~70之间。 技术复杂性因子TCF由下式计算: TCF=0.65+0.01×DI
2019/12/31
4
13.1.1 代码行技术
为了使程序规模的估计值更接近实际值,一般由多名 有经验的软件工程师分别做出估计。
每个人都估计程序的最小规模(a)、最大规模(b)和最可 能的规模(m),分别算出这3种规模的平均值, 再用下式计 算程序规模的估计值:
a 4m b
L= 6
(13.1)
单位是代码行数(LOC) 或千行代码数(KLOC)
2019/12/31
5
13.1.1 代码行技术
代码行技术的优点:
代码是所有软件开发项目都有的“产品”,且容易 计算行数。 代码行技术的缺点是: 源程序仅是软件配置的一个成分。
为了克服代码行技术的缺点,人们提出了功能点技术。
2019/12/31
2019/12/31
8
13.1.2 功能点技术
2. 估算功能点的步骤
用下述3个步骤,可估算出一个软件的功能点数(即 软件规模)。 FP=UFP×TCF
(1) 计算未调整的功能点数UFP
每个特性(即Inp、Out、Inq、Maf和Inf)都分类为简单 级、平均级或复杂级
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf 其中,ai(1≤i≤5)是特性系数,其值由相应特性的复杂级别 决定,如表13.1。
2019/12/31
7
13.1.2 功能点技术
(2) 输出项数: 软件向用户输出的项数,它们向用户提供面 向应用的信息,例如,报表和出错信息等。报表内的数据项不 单独计数。 (3) 查询数: 查询即是一次联机输入,它导致软件产生某种 即时响应(输出)。 (4) 主文件数: 逻辑主文件(即数据的一个逻辑组合,它可 能是大型数据库的一部分或是一个独立的文件)的数目。 (5) 外部接口数: 机器可读的全部接口(例如,磁盘或磁带 上的数据文件)的数量,用这些接口把信息传送给另一个系统。
估算模型的经验数据,是从有限个项目的样本 集中总结出来的,因此,没有一个估算模型可以 适用于所有类型的软件和开发环境。
2019/12/31
13
13.2.1 静态单变量模型
这类模型的总体结构形式如下:
E=A+B×(ev)C 其中,A、B和C是由经验数据导出的常数,E是以 人月为单位的工作量,ev是估算变量(KLOC或 FP)。下面给出几个典型的静态单变量模型。
2019/12/31
15
13.2.1 静态单变量模型
对于相同的KLOC或FP值,用不同模型估算将 得出不同的结果。
主要原因是,这些模型多数都是仅根据若干应 用领域中有限个项目的经验数据推导出来的,适 用范围有限。
因此,必须根据当前项目的特点选择适用的估 算模型,并且根据需要适当地调整(例如,修改 模型常数)估算模型。