第 3 讲 软件度量

64
3 3 第 第第第第 第 第第第第 毛毛毛 [email protected] http://software.nudt.edu.cn/~xjmao 毛毛毛毛毛毛毛毛毛 602 毛毛毛 0731-(45)73649 毛毛毛毛毛毛毛毛 毛

description

软件项目管理课程 之. 第 3 讲 软件度量. 毛新军 [email protected] http://software.nudt.edu.cn/~xjmao 计算机科学与技术系 602 教研室 0731-(45)73649. 讲授内容. 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结. 小王:软件项目负责人. 老王:公司技术老总. 1. 项目案例. 案例角色和人物. 项目管理需要定量描述(1 /3). 在项目策划阶段的碰头会上 - PowerPoint PPT Presentation

Transcript of 第 3 讲 软件度量

Page 1: 第 3 讲 软件度量

第第 33 讲 软件度量讲 软件度量毛新军

[email protected]://software.nudt.edu.cn/~xjmao 计算机科学与技术系 602 教研室

0731-(45)73649

软件项目管理课程 之

Page 2: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

2

讲授内容讲授内容1. 项目案例2. 什么是软件度量?3. 为什么需要软件度量?4. 软件度量的内容5. 软件度量的方法6. 在软件开发过程中进行软件度量7. 小结

Page 3: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

3

1. 1. 项目案例项目案例案例角色和人物

– 小王:软件项目负责人

– 老王:公司技术老总

Page 4: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

4

项目管理需要定量描述项目管理需要定量描述 (1(1/3)/3)

在项目策划阶段的碰头会上– 公司技术总监询问小王项目开发估计需要多少时间,需要多少成本?

– 小王回答说“时间估计不会太长,成本也在一个可接受的范围之内”,老王显然对这种回答不满意,他希望能够得到一个较为准确定量性的描述

– 经过一番考虑后,小王确认回答说“时间 7- 8 个月,成本需 40 - 45 万”,老王显然对这种回答也不满意,况且用户要求在 6 个月内完成项目。于是他进一步问道“你是如何得到这组数据”,小王显然没有准备,也没有充分的依据,于是他哑口无言

Page 5: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

5

项目管理需要定量描述项目管理需要定量描述 (2(2/3)/3)

在制定软件项目计划时– 小王不知如何预测项目可能所需的工作量?– 小王不知如何预测项目可能所需的成本?– 小王不知所制定的计划是否可行和科学?– 因此,小王尽管制定了软件开发计划,但对于该计划能否得到有效的实施、实施能否遵循计划执行没有足够的信心

Page 6: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

6

项目管理需要定量描述项目管理需要定量描述 (3(3/3)/3)

项目已进展了 2 个月,各个方面进展尚可,在某周的碰头会上,老王继续向小王发问– “目前软件质量如何?”,小王回答道“不错”

– 老王对这种回答不满意,他希望能够得到一个较为准确定量性的描述,但是小王又没有办法给他一个更加确切的答复,实际上连他自己也没有办法说清楚目前软件产品的质量情况,因为他只有直观的、定性了解。

Page 7: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

7

定量分析是重要的定量分析是重要的 工程化的软件开发需要定量、科学的描述

( 实施前、实施过程中、实施完成后 ) 定量、科学的描述有助于获取软件项目以及所开发的软件的某种可视性,促进软件项目的管理

定量的信息描述必须在软件项目开发过程中采集

Page 8: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

8

软件项目管理问题软件项目管理问题 在软件项目实施过程中,需要哪些方面的定量描述以促进软件项目的有效开发和管理?

如何获取这些方面的科学定量描述? 如何在软件项目开发过程中集成度量? 如何将这些定量描述用于指导软件项目的管理?

Page 9: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

9

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 10: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

10

基本概念基本概念 (1(1/4)/4)

对事物属性的定性描述– 个子很高 , 软件的成本很高

对事物属性的定量描述– 高个子有 1.9 米 , 软件成本是 23.5 万

Page 11: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

11

基本概念基本概念 (2(2/4)/4)

软件度量 (Metrics) 是指对软件产品、软件开发过程或者资源的简单属性的定量描述。– 产品:软件开发过程中所生成的各种文档和程序– 过程:与软件开发有关的各种活动,如软件设计等– 资源:软件开发过程中所需支持,如人员、费用等

注意点– 定量描述 , 而不是定性描述– 简单属性 , 无需参照其它属性便可直接获得定量描述

Page 12: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

12

基本概念基本概念 (3(3/4)/4)

软件测量 (Measure) 是对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件测量用于事后或实时状态 , 如软件可靠性

注意点– 定量描述 , 而不是定性描述– 复杂属性 - 不可直接获得、需参照其它属性的度量值

– 实时或者事后状态 , 用于对历史进行评估

Page 13: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

13

基本概念基本概念 (4(4/4)/4)

估算 (Estimation) 对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件估算用于事前 , 如软件开发成本

注意点– 定量描述 , 而不是定性描述– 复杂属性 - 不可直接获得、需参照其它属性的度量值– 事前状态– 可采用经验公式,也可参考历史资料和数据。估算的 结果一般用于签订合同、立项、制定工作计划等

Page 14: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

14

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 15: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

15

为什么需要软件度量为什么需要软件度量 (1(1/2)/2)

任何工程化的工作都需要度量,软件工程也不例外– 准确了解工程的实施情况

项目实施之前– 辅助制定软件项目的计划– 估算成本和工作量,以便制定计划

Page 16: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

16

为什么需要软件度量为什么需要软件度量 (2(2/2)/2)

项目实施过程中– 提供软件开发的可视性– 跟踪和控制软件项目的开发– 评估软件开发质量,进行质量控制– 加强风险管理

项目实施之后– 对项目的实施情况进行评估– 为后续项目的积累经验数据

Page 17: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

17

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 18: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

18

软件度量的内容软件度量的内容 (1(1/3)/3)

三个方面– 产品:各种文档和程序– 过程:各种软件开发活动– 资源:各种资源如人员、费用等

产产品品

过过程程

资源资源

Page 19: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

19

软件度量的内容软件度量的内容 ((2/3)2/3)

二个层次– 内部属性

软件产品,过程和资源本身所具有属性,如软件产品的复杂度、程序长度等

易于度量– 外部属性

软件产品,过程和资源与外部环境 ( 用户、管理人员等 ) 间的关系如成本、效益、可靠性、可维护性等

难以度量,但由内部属性所决定

Page 20: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

20

产品 过程 资源 关注对象 难易程度 内部 属性

(1)代码长度 (2)程序功能 (3)重用性 (4)模块的耦合和内聚度 ……

(1)工作量 (2)计划和进度 ….

(1)人 (2)软硬件环境

(3)方法 (4)经验

软件开发人员和项目管理人员

相对比较容易

外部 属性

(1)可靠性 (2)可理解性(3)质量 (4)可维护性(5)可移植性

(1)成本 (2)可控制性

(1)成本 (2)时间

用户和软件项目管理人员

相对比较困难,但由内部属性所决定

软件度量的内容软件度量的内容 ((3/3)3/3)

Page 21: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

21

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 22: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

22

软件度量的方法软件度量的方法1. 面向规模的度量2. 面成功能的度量3. 项目成本和工作量估算4. 软件质量度量

Page 23: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

23

5.15.1 面向规模的度量面向规模的度量 (1(1/3)/3)

用软件代码行数目来表示软件项目规模– 生产率 : PM = L / E, L表示代码总量 ( 单位:

KLOC), E表示软件工作量 ( 单位:人月 ) – 每千行代码的平均成本: CKL = S / L, S 为软件项目总开销

– 文档与代码比 : Dl = Pd / L, Pd表示文档页数– 代码出错率 : EQRl = Ne / L, Ne表示代码出错的数目

Page 24: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

24

5.15.1 面向规模的度量面向规模的度量 (2(2/3)/3)

项目 (KLOC) 人月 成本($) 文档页数 错误 人员a 12.1 24 168000 365 134 3b 27. 2 62 440000 1224 321 5c 20. 2 43 314000 1050 256 6

Page 25: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

25

5.15.1 面向规模的度量面向规模的度量 (3(3/3)/3)

优点– 简单易行,自然直观

缺点– 依赖于程序设计语言的表达能力和功能– 软件开发初期很难估算出最终软件的代码行数– 对精巧的软件项目不合适– 只适合于过程式程序设计语言

Page 26: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

26

5.25.2 面向功能的度量面向功能的度量 (1(1/7)/7)

用软件的功能表示软件的规模– “功能”不能直接度量,需要依靠其他度量结果导出

– 功能点度量涉及多种因素– 项目开发初期就可估算出 – 功能点计算目前主要基于经验公式

Page 27: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

27

5.25.2 面向功能的度量面向功能的度量 ((2/7)2/7)

功能点计算方法– FP = (0.65 + 0.01×Fi)×CT

– CT : 5 个信息量的“加权和”– Fi: 14 个因素的“复杂性调节值” (i =1..14)

– 0.65, 0.01都是经验常数

Page 28: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

28

5.25.2 面向功能的度量面向功能的度量 ((3/7)3/7)

CT 的计算方法– 用户输入数 × 加权因子 ( 简单 =3,平均 =4, 复杂 =5)– 用户输出数 × 加权因子 ( 简单 =3,平均 =4, 复杂 =5)– 用户查询数 × 加权因子 ( 简单 =3,平均 =4, 复杂 =5)– 文件数 × 加权因子 ( 简单 =3,平均 =4, 复杂 =5)– 外部界面数 × 加权因子 ( 简单 =3,平均 =4, 复杂 =5)

CT = 上述计算值的总和

Page 29: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

29

5.25.2 面向功能的度量面向功能的度量 ((4/7)4/7)

Fi的取值 (0,1,2,3,4,5):0- 没有影响, 1-偶有影响,2-轻微影响, 3-平均影响, 4- 较大影响, 5-严重影响– 系统需要可靠的备份和复原码?– 系统需要数据通信吗?– 系统有分布处理功能吗?– 性能是临界状态吗?– 系统是否在一个实用的操作系统下运行?– 系统需要联机数据项吗?– 联机数据项是否在多屏幕或多操作之间进行切换?

Page 30: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

30

5.25.2 面向功能的度量面向功能的度量 ((5/7)5/7)

– 需要联机更新主文件吗?– 输入、输出、查询和文件很复杂吗?– 内部处理复杂吗?– 代码需要被设计成可重用吗?– 设计中需要包括转换和安装吗?– 系统的设计支持不同组织的多次安装吗?– 应用的设计方便用户修改和使用吗?

Page 31: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

31

5.25.2 面向功能的度量面向功能的度量 ((6/7)6/7)

优点– 与程序设计语言无关 , 在开发前就可以估算出软件项目的规模 ( 事前 )

不足– 没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;

– 功能点计算主要靠经验公式,主观因素比较多– 数据不好采集

Page 32: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

32

程序设计语言 LOC/FP(平均值)汇编语言 300COBOL 100FORTRAN 100PASCAL 90ADA 70OOPL 304GL 20代码生成器 15

5.25.2 面向功能的度量面向功能的度量 ((7/7)7/7)

代码行度量和功能点度量间的关系

Page 33: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

33

5.35.3 成本和工作量估算成本和工作量估算 (1(1/2)/2)

软件项目成本和工作量估算极为重要– 计算机系统中软件成本占总成本的比例很大– 用户和项目管理人员对软件成本和工作量估算都很重视

软件项目成本估算比较困难– 软件是逻辑产品,软件开发是一个逻辑思维的过程

– 涉及多方面因素

Page 34: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

34

5.35.3 成本和工作量估算成本和工作量估算 ((2/2)2/2)

软件项目成本和工作量估算常用方法– 参照和依据已完成项目的历史数据– 将大项目分解为小项目– 将项目按照软件生命周期分解– 根据经验估算公式

上述方法可以同时、单独或者组合使用

Page 35: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

35

5.3.15.3.1 代码行、功能和工作量估算代码行、功能和工作量估算 软件项目规模影响软件项目成本和工作量

– 估算出 FP 或者 LOC期望值 e = (a + 4m + b)/6– 依据历史数据估算出工作量和成本

根据 PM = FP(LOC)/ E 计算出工作量根据 C = S/FP(LOC) 计算出成本

Page 36: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

36

案例案例 : : 代码行和功能点估算 代码行和功能点估算 (1(1/8)/8)

软件描述 (CAD 软件 )– CAD图形软件可接受来自用户的二维和三维几何数据,用户通过界面与 CAD 软件进行交互,并控制它,该软件具有良好的人机界面设计的特征。所有的几何数据及其支持信息存放在数据库中。开发设计分析模块,以产生所需的输出,这些输出将显示在各种不同的图形化设备上。软件在设计中要考虑与外设进行交互并控制它们,包括鼠标、数字化仪、打印机等等。

Page 37: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

37

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((2/8)2/8)

软件子系统划分– 图形用户界面及其控制机制– 二维几何分析– 三维几何分析– 数据库管理– 图形显示– 外设控制 ( 与打印机、数字化仪、扫描仪的接口 )– 设计分析子系统

Page 38: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

38

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((3/8)3/8)

估算出各个子系统的代码行,例如三维几何分析功能的代码行估算范围为:– 乐观值: 4 600– 可能值: 6 900– 悲观值: 8 600– 估算值: e = (a + 4m + b)/6 = 6 800

Page 39: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

39

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((4/8)4/8)

子系统 代码行

图形用户界面及其控制机制 2 300

二维几何分析 5 300

三维几何分析 6 800

数据库管理 3 350

图形显示 4 950

外设控制(与打印机、扫描仪等的接口) 2 100

设计分析子系统 8 400

总代码行估算值 33 200

Page 40: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

40

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((5/8)5/8)

历史数据– 平均生产率 PM: 620 LOC/PM(620 行代码 / 人月 )

– 每个人月的成本 C = 8000¥ 估算项目成本和工作量

– 估算工作量 = 总代码行 /PM= 33200/620=54 人月

– 估算成本 = 估算工作量 ×每个人月的成本 = 54 人月 × 8000 = 43 2000¥

Page 41: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

41

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((6/8)6/8)

基于功能点估算:信息域 乐

观值

可能值

悲观值

估 算计数

加 权因子

FP计数

输入数 20 24 30 24 4 96 输出数 12 15 22 16 5 80 查询数 16 22 28 22 4 88 文件数 4 4 5 4 10 40 接口数 2 2 3 2 7 14 总计 318

Step

1: S

tep1:

计算计算C

TC

T

值值

Page 42: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

42

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((7/8)7/8)

Step2: 计算复杂度调整因子因子 值 备份和复原 4 数据通信 2 分布式处理 0 关键性能 4 操作环境 3 联机数据登陆 4 多屏幕输入切换 5 主文件联机更新 3

因子 值 信息域值复杂性 5 内部处理复杂性 5 软件重用 4 转换和安装 3 多次安装 5 方便修改 5 复杂度调节因子 1.17

Page 43: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

43

案例案例 : : 代码行和功能点估算 代码行和功能点估算 ((8/8)8/8)

计算出 FP 的估算值– FP = (0.65 + 0.01×Fi)×CT = 372

历史数据– 平均生产率 6.5 FP/PM– 每个人月的成本 C = 8000¥ (平均月薪 )

估算成本和工作量– 工作量 58 人月– 成本 457000¥

Page 44: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

44

5.3.25.3.2 经验估算模型经验估算模型 (1(1/7)/7)

什么是 CoCoMo模型?– COCoMo 是指 Constructive Cost Model ,构造性成本模型, Boehm 于 1981年提出,用于对软件开发项目的规模、成本、进度等方面进行估算

– CoCoMo模型是一个综合经验模型,模型中的参数取值来至于经验值,并且综合了诸多的因素、比较全面的估算模型

– 比较实用、可操作,在欧盟国家应用较为广泛

Page 45: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

45

5.3.25.3.2 经验估算模型经验估算模型 ((2/7)2/7)

CoCoMo模型的层次 - 支持不同的阶段– 基本 COCoMo模型

系统开发的初期,估算整个系统的工作量 (包括维护 ) 和软件开发和维护所需的时间

– 中间 COCoMo模型估算各个子系统的工作量和开发时间

– 详细 COCoMo模型估算独立的软构件,如各个子系统的各个模块的工作量和开发时间

Page 46: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

46

5.3.25.3.2 经验估算模型经验估算模型 ((3/7)3/7)

基本 CoCoMo模型– E = a (kLOC)b ;E 是工作量 ( 人月 ) , a和 b 是经验常数

– D = c Ed ;D 是开发时间 ( 月 ) , c和 d 是经验常数

– 其中, a,b,c,d 为经验常数,其取值见下表

软件类型 a b c d 适用范围

组织型 2.4 1.05 2.5 0.38 各类应用程序 半独立型 3.0 1.12 2.5 0.35 各类编译程序等

嵌入型 3.6 1.20 2.5 0.32 实时软件、OS等

Page 47: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

47

5.3.25.3.2 经验估算模型经验估算模型 ((4/7)4/7)

中间 CoCoMo模型– E = a (kLOC)b EAF – 其中, E表示工作量 ( 人月 ), EAF表示工作量调节因子, a,b 为经验常数,其取值见下表

软件类型 a b

组织型 3.2 1.05

半独立型 3.0 1.12

嵌入型 2.8 1.20

Page 48: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

48

5.3.25.3.2 经验估算模型经验估算模型 ((5/7)5/7)

EAF 的取值 ( 考虑 15 个因素 )– 软件产品属性 (3) :软件可靠性,软件复杂性,数据库的规模

– 计算机属性 (4) :程序执行时间,程序占用内存大小,软件开发环境的变化,软件开发环境的响应速度

– 人员属性 (5) :分析员能力,程序员能力,领域经验,开发环境的经验,程序设计语言的经验

– 项目属性 (3) :软件开发方法的能力,软件工具的数量和质量,软件开发的进度要求

Page 49: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

49

5.3.25.3.2 经验估算模型经验估算模型 ((6/7)6/7)

EAF 的取值 ( 范围 )– 很低、低、正常、高、很高、极高– Boehm建议取值范围 [0.70-1.66]

– EAF 的计算= Fi ( i=1..15)

调节因子及其取值由统计结果和经验决定,不同的软件开发组织在不同的时期可能会有不同的取值

Page 50: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

50

5.3.25.3.2 经验估算模型经验估算模型 ((7/7)7/7)

案例分析:用基本 CoCoMo模型估算项目的工作量、开发时间和参加项目开发的人数– CAD 软件:目标代码行 33.2kLOC ,属于中等规模,半独立型,因而 a = 3.0, b = 1.12, c = 2.5, d = 0.35

– E = 3.0*(33.2)1.12 =152 PM– D = 2.5*(152)0.35 = 14.5 ( 月 )– 参加项目人数 N = E/D = 152/14.5 = 11( 人 )

Page 51: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

51

5.4 5.4 软件质量度量软件质量度量 (1/2)(1/2)

软件质量度量的重要性– 质量是软件的生命,质量不高的软件会带来严重、甚至灾难性的后果

– 必须加强对软件质量的管理和监控,如 ISO9001和CMM

– 必须在软件开发过程中能够可视所开发软件的质量 软件质量度量存在的困难

– 软件质量依赖于软件的内部特性及其组合– 这些特性难以度量

Page 52: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

52

5.4 5.4 软件质量度量软件质量度量 (2/2)(2/2)

McCall 的软件质量度量模型– 质量要素

定义了与软件质量相关联的一些要素– 质量要素的评价准则

定义了能够对质量要素进行度量的一些准则– 软件质量的度量

定义了如何基于对质量要素的定量描述对软件质量进行度量的方法

Page 53: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

53

5.4.15.4.1 质量要素质量要素 (1(1/2)/2)

产品修正性

产品转移性

产品运行性

可维护性

灵活性

可测试性

可移植性

可重用性

可互操作性

正确性 可靠性 有效性

完整性 有用性

Page 54: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

54

5.4.15.4.1 质量要素质量要素 (2(2/2)/2)

质量要素之间的相互关联性 (正相关、负相关 ) ,因此在设计时要根据项目的具体情况进行权衡– 例如,软件的可移植性会降低软件的有效性– 例如,对于实时系统,必须保证可靠性和有效性,而将可移植性、可重用性放在次要地位

Page 55: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

55

5.4.25.4.2 质量要素的评价准则质量要素的评价准则 (1(1/2)/2)

给出一组比较容易度量的软件质量要素评价准则来间接对软件质量要素进行定量描述– 定义准则基础是确定影响软件质量要素的属性– 这些属性比较完整、准确地描述软件质量要素– 这些属性比较容易量化

Page 56: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

56

5.4.25.4.2 质量要素的评价准则质量要素的评价准则 (2(2/2)/2)

McCall 质量模型共给出 21 个评价准则,例如– 简单性:理解程序的难易程度– 准确性:计算和控制的精度– 通信通用性:使用标准接口、协议和频带的程度– 完全性:是否全面– 执行效率:程序的运行效率– 可扩充性:对软件结构、数据设计和过程设计进行扩充的程度

– ……

Page 57: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

57

5.4.3 5.4.3 软件质量的度量软件质量的度量 对于每个质量要素的计算

– Fi = (Cik × Mik)

– 其中, Fi 表示第 i 个质量因素的度量值 (i = 1,..11),

– Mik 表示第 i 个质量因素对于第 k 种评价准则的测量值, Mik的取值共分 10级,分别为 0.1, …,1.0

– Cik 表示第 k 种评价准则对第 i 个质量因素影响程度的加权系数,且满足 Cik = 1.0 (k = 1,..21)

Page 58: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

58

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 59: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

59

软件开发过程中集成度量软件开发过程中集成度量 (1(1/2)/2)

度量是重要的– 提高组织软件开发能力成熟度的一种重要措施和有效手段

– CMM强调软件度量,尤其在 4级-可管理级 度量会遇到阻力

– 度量会耗费大量的精力和时间– 度量的作用和效果可能是隐性和长期的,不能为开发人员所接受

– 项目的压力经常会迫使管理者和开发人员放弃度量

Page 60: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

60

软件开发过程中集成度量软件开发过程中集成度量 (2(2/2)/2)

在软件项目实施过程中坚持度量,收集数据 实施前

– 记录估算数据 实施中

– 对过程、产品和资源进行度量– 记录并保存其结果

实施完成后– 对项目进行总结,记录和保存项目实际运作的信息,如成本,工作量,人员等等

Page 61: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

61

讲授内容讲授内容 项目案例 什么是软件度量? 为什么需要软件度量? 软件度量的内容 软件度量的方法 在软件开发过程中进行软件度量 小结

Page 62: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

62

本讲小结本讲小结 软件项目的实施需要定量描述 ( 前、中、后 )

软件度量:定量描述– 针对软件产品、过程和资源– 内部属性和外部属性– 测量和估算

工作量和成本度量:规模和功能 质量度量 在软件项目实施过程中实施度量

Page 63: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

63

教学目的教学目的 理解

– 什么是软件度量?– 为什么需要软件度量?– 软件度量的方式和对象

掌握– 软件度量的方法

运用– 运用软件度量支持和促进软件开发

Page 64: 第 3 讲 软件度量

©Copyright Xinjun Mao 2005

64

Questions & DiscusssingQuestions & DiscusssingQuestions & DiscusssingQuestions & Discusssing

Software Project Management Software Project Management

Practice, Practice, and Practice