文章目录
一:软件项目管理综述(1)管理(2)软件项目管理
二:估算软件规模(1)代码行技术A:定义B:方法C:优缺点
(2)功能点技术A:定义B:信息域特性C:估算功能点的步骤①:计算未调整的功能点数UFP②:计算技术复杂性因子TCF③:计算功能点数FP
三:工作量估算(1)静态单变量模型A:形式B:分类①:面向KLOC的估算模型②:面向FP的估算模型
(2)动态多变量模型A:定义B:形式
(3)COCOMO2模型A:三层模型B:特点C:形式D:与COCOMO模型所使用成本因素的区别E:模型指数F:COCOMO2的5个分级因素
一:软件项目管理综述
(1)管理
管理:管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程
(2)软件项目管理
软件项目管理:软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。软件项目管理过程从一组项目计划活动开始,而制定计划的基础是工作量估算和完成期限估算
二:估算软件规模
(1)代码行技术
A:定义
代码行技术:代码行技术依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。是一种比较简单的定量估算软件估摸的方法
B:方法
. 把实现每个功能的源程序行数累加起来,可得到实现整个软件所需要的源程序行数. 估计程序的最小规模(a)、 最大规模(b) 和最可能的规模(m), 分别算出这3种规模的平均值后,再用下式计算程序规模的估计值:
L
=
a
ˉ
+
4
m
ˉ
+
b
ˉ
6
L=\frac{\bar{a}+4\bar{m}+\bar{b}}{6}
L=6aˉ+4mˉ+bˉ. 程序小时用的单位是代码行数(LOC);程序大时用的单位是千行代码数(KLOC)
C:优缺点
优点:
代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数有以往开发类似产品的历史数据可参考时,估计出的数值比较准确
缺点:
源程序仅是软件配置的一个成分,用它的规模代表整个软件的规模不太合理用不同语言实现同一个软件所需要的代码行数并不相同不适用于非过程语言
(2)功能点技术
A:定义
功能点技术:功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。用 功能点(FP) 为单位度量软件规模。是为了克服代码行技术的缺点,提出来的新技术
B:信息域特性
输入项数(Inp):用户向软件输入的项数,这是输入给软件提供面向应用的数据输出项数(Out): 软件向用户输出的项数,它们向用户提供面向应用的信息查询数(Inq):一次联机输入,它导致软件以联机输出方式产生某种即时响应主文件数(Maf): 逻辑主文件(数据的一个逻辑组合)的数目外部接口数(Inf): 机器可读的全部接口数量,用这些接口把信息传送给另一个系统
C:估算功能点的步骤
①:计算未调整的功能点数UFP
把产品信息域的每个特性都分类为简单级、平均级或复杂级,并根据其等级为每个特性分配一个功能点数用下式计算未调整的功能点数UFP:
U
F
P
=
a
1
×
I
n
p
+
a
2
×
O
u
t
+
a
3
×
I
n
q
+
a
4
×
M
a
f
+
a
5
×
I
n
f
UFP=a_{1}×Inp+a_{2}×Out+a_{3}×Inq+a_{4}×Maf+a_{5}×Inf
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,
a
i
a_{i}
ai(1<
i
i
i<5) 是信息域特性系数,由相应特性的复杂级别决定,如下表所示
②:计算技术复杂性因子TCF
这一步骤度量14种技术因素对软件规模的影响程度,下表中列出了全部技术因素,并用
F
i
(
1
≤
i
≤
14
)
F_{i}(1\leq i \leq 14)
Fi(1≤i≤14)代表这些因素
根据软件的特点,为每个因素分配一个从0(不存在或对软件规模无影响)到5(有很大影响)的值计算技术因素对软件规模的综合影响程度
D
I
DI
DI(0~70):
D
I
=
∑
i
=
1
14
F
i
DI=\sum_{i=1}^{14}F_{i}
DI=∑i=114Fi技术复杂性因子
T
C
F
TCF
TCF(0.65~1.35) :
T
C
F
=
0.65
+
0.01
×
D
I
TCF=0.65+0.01×DI
TCF=0.65+0.01×DI
③:计算功能点数FP
F
P
=
U
D
P
×
T
C
F
FP=UDP×TCF
FP=UDP×TCF
三:工作量估算
软件估算模型使用由经验导出的公式来预测软件开发工作量,工作量是软件规模的函数,工作量的单位通常是人月(pm)。没有一个估算模型可以适用于所有类型的软件和开发环境
(1)静态单变量模型
A:形式
静态单变量模型的总体结构形式如下:
E
=
A
+
B
×
(
e
v
)
c
E=A+B×(ev)^{c}
E=A+B×(ev)c
A、B、C是由经验导出的常数E是以人月为单位的工作量ev是估算变量(KLOC或FP)
B:分类
①:面向KLOC的估算模型
Walston_Felix模型:
E
=
5.2
×
(
K
L
O
C
)
0.91
E=5.2×(KLOC)^{0.91}
E=5.2×(KLOC)0.91Bailey_Basili模型:
E
=
5.5
+
0.73
×
(
K
L
O
C
)
1.1.6
E=5.5+0.73×(KLOC)^{1.1.6}
E=5.5+0.73×(KLOC)1.1.6Boehm简单模型:
E
=
3.2
×
(
K
L
O
C
)
1.05
E=3.2×(KLOC)^{1.05}
E=3.2×(KLOC)1.05Doty模型(KLOC > 9时适用):
E
=
5.288
×
(
K
L
O
C
)
1.047
E=5.288×(KLOC)^{1.047}
E=5.288×(KLOC)1.047
②:面向FP的估算模型
Albrecht & Gaffney模型:
E
=
−
13.39
+
0.0545
F
P
E=-13.39+0.0545FP
E=−13.39+0.0545FPMaston,Barnett和Mellichamp模型:
E
=
585.7
+
15.12
F
P
E=585.7+15.12FP
E=585.7+15.12FP
(2)动态多变量模型
A:定义
动态多变量模型( 软件方程式)是根据从4000多个当代软件项目中收集的生产率数据推导出来的。该模型把工作量看作软件规模和开发时间这两个变量的函数
B:形式
动态多变量估算模型的形式如下:
E
=
(
L
O
C
×
B
0.333
P
)
×
(
1
t
)
4
E=(LOC×\frac{B^{0.333}}{P})×(\frac{1}{t})^{4}
E=(LOC×PB0.333)×(t1)4
其中E是以人月或人年为单位的工作量;t是以月或年为单位的项目持续时间;B是特殊技术因子,对于较小的程序(KLOC=5-15),B=0.16,对弈超过70KLOC的程序,B=0.39;P是生产率参数,它反映了以下因素对工作量的影响
总体过程成熟度及管理水平使用良好的软件工程实践的程度使用的程序设计语言的级别软件环境的状态软件项目组的技术及经验应用系统的复杂程度
(3)COCOMO2模型
A:三层模型
COCOMO是 构造性成本模型(constructive cost model) 的英文缩写COCOMO2给出了3个层次模型,这3个层次的模型在估算工作量时,对软件细节考虑的详尽程度逐级增加。这3个模型如下:
应用系统组成模型:主要用于估算构建原型的工作量,模型名字暗示在构建原型时大量使用已有的构件早期设计模型:适用于体系结构设计阶段。体系结构模型:适用于完成体系结构设计之后的软件开发阶段
B:特点
这个层次的模型在估算工作量时,对软件细节考虑的详尽程度逐级增加这些模型既可以用于不同类型的项目,也可以用于同一个项目的不同开发阶段
C:形式
COCOMO2模型把软件开发工作量表示成代码行数(KLOC)的非线性函数
E
=
a
×
K
L
O
C
b
×
∏
i
=
0
17
f
i
E=a×KLOC^{b}×\prod \limits_{i=0}^{17}f_{i}
E=a×KLOCb×i=0∏17fi
E是以人月或人年为单位的工作量a是模型系数KLOC是估计的源代码行数(以千行为单位)b是模型指数
f
i
f_{i}
fi (
i
i
i=1~17)是成本因素
D:与COCOMO模型所使用成本因素的区别
新增加了4个成本因素,它们分别要求的是可重用性、需要的文档量、人员连续性和多地点开发略去了原始模型中的两个成本因素某些成本因素(分析员能力、平台经验、语言和工具经验)对生产率的影响增加了,另一些成本因素(程序员能力)的影响减小了
E:模型指数
COCOMO2采用了的b分级模型,是使用5个分级因素
W
i
W_{i}
Wi (
1
≤
i
≤
5
1 \leq i \leq 5
1≤i≤5),其中每个因素都划分成从甚低(
W
i
W_{i}
Wi=5)到特高(
W
i
W_{i}
Wi=0)的6个级别,用下式计算b(1.01~1.26)的数值
b
=
1.01
+
0.01
×
∑
i
=
1
5
W
i
b=1.01+0.01×\sum_{i=1}^{5}W_{i}
b=1.01+0.01×i=1∑5Wi
F:COCOMO2的5个分级因素
项目先例性:指出对于开发组织来说该项目的新奇程度开发灵活性:反映出为实现预先确定的外部接口和为了及早开发出产品而增加的工作量风险排除度:反映了重大风险已被消除的比例项目组凝聚力:表明了开发人员相互协作时可能存在的困难过程成熟度:反映了按照能力成熟度模型度量出的项目组织的过程成熟度。
参考链接
发表评论