文档介绍:软件工程
Software Engineering
Date
1
广东工业大学计算机学院
第20章 软件项目管理与计划
软件工程中程序出错、成本超支和没完成要求等都可以归结到软件项目管理太弱。
本章内容:
软件项估算的准确度,缺点是不容易明确“类似”的界限。
Date
14
广东工业大学计算机学院
软件开发成本估算的经验模型
1. IBM模型
2077年,Walston和Felix总结了IBM联合系统分部(FSD)负责的60个项目的数据。其中各项目的源代码行数从400行到467000行,开发工作量从12PM到11758PM,共使用29种不同语言和66种计算机。利用最小二乘法拟合,得到如下估算公式:
E = × D = × = ×
S = × DOC = 49×
Date
15
广东工业大学计算机学院
其中,L是源代码行数,E是工作量,D是项目持续时间,S是人员需要量,DOC是文档数量。因此估算出了源代码的数量,就可以对工作量、文档数量等进行估算了。
IBM模型是一个静态单变量模型,它利用已估算的特性,例如源代码行数,来估算各种资源的需要量。IBM模型是一个静态单变量模型,但不是一个通用公式。在应用中有时要根据具体实际情况,对公式中的参数进行修改。
Date
16
广东工业大学计算机学院
2. Putnam模型
这是2078年Putnam提出的模型,是一种动态多变量模型。该模型的基础是假定在软件开发的整个生存期中工作量有特定的分布。它把项目的资源需求当做时间的函数。根据对一些大型项目的统计分析,软件开发工作量分布可用如图20-3所示的曲线表示。
Date
17
广东工业大学计算机学院
图20-3 大型项目的工作量分布情况
Date
18
广东工业大学计算机学院
如图20-3所示中的曲线被称为Rayleigh-Norden曲线。利用该曲线得到如下的经验公式:
L=Ck·K1/3·td4/3
其中,td是开发持续时间(以年计),K是软件开发与维护在内的整个生存期所花费的工作量(以人年计),L是源代码行数(以LOC计),Ck是技术状态常数,它反映出“妨碍程序员进展的限制”,并因开发环境而异。
Date
19
广东工业大学计算机学院
3. COCOMO模型(Constructive Cost Model)
Barry Boehm提出的一种软件估算模型的层次体系,称为结构型成本估算模型。是一种比较精确、易于使用的综合成本估算方法。
该模型分为三个层次:
基本的COCOMO模型:只是将工作量(成本)作为程序规模的函数进行计算。
中级的COCOMO模型:除了工作量以外,还将对产品、硬件、人员及项目属性的主观评价作为“成本驱动因子”加入估算模型中。
高级的COCOMO模型:除了中级模型的因素外,还加入了成本驱动因子对软件开发的每一个过程的影响的评估。
Date
20
广东工业大学计算机学院
COCOMO规定了三种项目属性:
(1)组织型(Organic):较小、较简单的软件项目。项目组人员经验丰富,对软件的使用环境很熟悉,受硬件的约束较少,程序的规模不是很大(<5万行)。
(2)嵌入型(Embadded):此种软件要求在紧密联系的硬件、软件和操作的限制条件下运行的软件。比如航天用控制系统属此种类型。
(3)半独立型(Semidetached):对此种软件的要求介于上述两种软件之间,但软件规模和复杂性都属于中等以上,最大可达30万行。例如,大多数事务处理系统属此种类型。
Date
21
广东工业大学计算机学院
基本的COCOMO模型的估计方式
E = a*KLOCb
D = c*Ed
E是以人月为单位的工作量,D是以月表示的开发时间,KLOC是项目的代码行(以千行为单位),a、b、c、d是系数,如表20-2所示。
软件项目
a
b
c
d
组织型
半独立型
嵌入型
Date
22
广东工业大学计算机学院
风险分析
风险含义
未来;
变化
选择
风险分析实际上是4个不同的活动:
风险识别
风险估算
风险评价
风险驾驭。
Date
23
广东工业大学计算机学院
风险识别
可用不同的方法对风险进行分类。
从宏观上来看,可将风险分为项目风险、技术风险和商业风险。
项目风险包括潜在的预算、进度、个