·02·
计算机应用研究
2005 年
软 件 过 程 中 的 度 量 数 据 收 集 方 法 研 究 *
周 宇, 钱红兵
( 北 京航 空航 天大 学 软件 工程研 究所 , 北京 100083)
摘 要: 度 量数 据收 集在 软件 过程 改善实 践中 起着 重要 作用 , 但 是往 往在 研究 中受 到忽 视。 介绍 了 软 件过 程 数
据收 集方 法和 技术的 发展 历程 , 提出了 软件 过程 度量 数据 收 集 方法 的 评 价 准 则, 给 出 了 一 个 软 件过 程 度 量 数 据
自动 收集 的框 架, 并且 列举 了四 种实现 方法 。
关键 词: 度 量数 据收 集; 软件 过程 改善; 自动 数据 收集 ; 评价 准则
中图 法分 类号 : TP311. 52
文 章编 号: 1001- 3695( 2005) 01- 0020- 03
文 献标 识码 : A
Research on the Metric Data Collection in the Software Process
( Institute of Software Engineering, Beijing University of Aeronautics & Astronautics, Beijing 100083, China)
ZHOU Yu, QIAN Hong-bing
Abstract: Metric data collection is very important in the software process improvement, but it’s often neglected in the re-
search. The roadmap of data collection in the software process is introduced . The rules and framework of automating metric da-
ta collection in the software process are brought forward. At last, four automating metric data collection methods based on the
framework are given.
Key words: Metric Data Collection; Software Process Improvement; Automating Dada Collection; Evaluate Guide Lines
软件过程中的度量数据指 的是为 了对过 程进行 度量而 收
集的过程中的数据, 过程数据在软件过程改进的研究和实施中
起的作用十分重要。通过对软件过程数据的度量, 人们能够验
证项目计划的有效性, 判断过程的性能, 总结过程的不足, 进而
制定新的项目计划, 改进过 程的性 能。 长期以 来, 学 术界一 直
比较注重软件过程度量的计 划和分 析, 即收集 什么样 的数据、
怎么样分析数据, 而对过 程数据 的收集, 即怎 么样收 集数据 的
研究却不够重视。实际调查表明, 在实 施 GQM 方法 来进行 过
程改进的企业中, 数据收 集这一 活动的 成本是 最高的, 甚至 超
过其他改进活动成本的总和 [ 1] 。数据 收集的 高成本 已经成 为
阻碍企业实施过程改进的一个瓶颈。另外, 数据收集的活动往
往给员工的正常生产带来一 定的影 响, 造成的 现状是: 由于 人
工收集数据的麻烦, 员工不愿收集数据; 由于成本巨大, 企业不
愿收集数据, 甚至不 愿进行 过程改 进活动。导 致的后 果是: 由
于缺乏数据, 企业过程改善活动不能有效实施; 同样, 学术界也
不能进行有效的研究和总结。因此, 软件过程数据收集的研究
具有十分重要的意义。
1 软件过程度量数据收集方法的评价准则
像软件工程是为了研究生产好的软件一样, 软件过程的数
据收集也应该考虑怎样收 集高质 量的数 据。软件过 程数据 收
集研究的目的可概括为: 怎样在较低的成本内高效率地收集到
高质量的软件过程数据。因此, 这里的评价准则涉及数据收集
和收集到的数据本身两个方面: 与数据收集相关的评价准则关
注什么样的数据 收集方 法是 高效 的( 即 以较 低 的成 本在 较 短
收稿日期: 2004- 02- 05; 修返日期: 2004- 04- 09
基金项目: 国家“863”计划资助项目( 2001AA110243)
的时间内收集数据) ; 而过程数据本身 相关的 评价准 则关注 什
么样的数据是高质量的数据。准则如下:
( 1) 过程数据的 收集 过程 应该 尽可 能地 自 动化。自 动 化
意味着不需要人 们的 手 动收 集, 过 程数 据可 以 在员 工完 成 设
计、开发和维护工作的同时自动地收集好。这可以大大地减少
数据收集的成本, 同时也 有利于 员工专 心地从 事自己 的工作。
但是, 不是所有的数据都可 以自动 地收集, 有 一些凭 借人们 主
观判断的数据只能由员工手动地收集。
( 2) 收集到的过 程数 据应 该达 到度 量的 目 的。收集 过 程
数据是为了分析数据, 即为 度量服 务的, 度量 是为了 达到某 种
目标。因此, 收集到的数据应该达到度量计划制定的目标。
( 3) 过程数据应 该具 有易 交换 性。软件 过 程数 据一 般 由
多种工具收集, 并且在多种 工具之 间传递, 这 就要求 数据的 格
式具有易交换性。
( 4) 过程数据应 该具 有开 放性、易访 问性、易检 索性。 软
件过程数据在软件开发过程中起的作用非常重要, 软件过程数
据应该能够为项目经理等 相关人 员提供 项目执 行的信 息。 因
此, 过程数据信息应该能够分类检索、容易访问, 在存储结构上
是开放的。
( 5) 过程数据应该具有及时 性。随 着过程 的进行, 许多 过
程数据都在不断地变化, 如 软件开 发的进 度、成本信 息等都 在
不断地发生变化, 这就要求收集到的过程数据应该表征数据收
集时刻的过程特征。
( 6) 过程数据应该具有一致 性。在 软件过 程的某 一阶段,
有些过程数据可以由不同的工具收集; 另一些过程数据在软件
开发过程的不同阶段由不同 的工具 收集; 另外, 数据 也与收 集
数据的人有关。这就要求过 程数据 的定义、类型、语义 都要 有
一致性, 无歧义。
第 1 期
周 宇等: 软件过程中的度量数据收集方法研究
·12·
( 7) 过程数据 应具有 语义 完整 性。语义 完 整性 指的 是 数
据包含的信息应尽可能 丰富。例如, 工 作量的 数据, 它是哪 个
活动的? 哪些人完成的? 开 始时间 是多少? 结束 时间 是多 少
等? 而不单单是工作量本身的数据和对应阶段的数据。
2 软件过程数据收集方法和技术发展历程
过程的数据收集经历了三个发展阶段:
( 1) 手动地 填 写事 先 设 计好 的、打 印 出 来的 表 格。在 20
世纪 80 年代中期到 90 年代中期, 这是一种主要的收集数 据的
方式。该方法相当耗费人力和成本, 是最低级的一种收集数据
的方式。手动地填写设计好的 Word 表格也属于这一方式。
( 2) 90 年代中 期以 后, 随 着数 据 库 技术 和 网 络技 术 的 发
展, 与关系数据库相连的电子表格成了收集过程数据的主要工
具。数据收集软件是 B/ S 结构或 C/ S 结 构, 人 们在 软件 上 填
写数据, 数 据自 动地 收集 到数据 库中, 供 数据 分析 软件 使用。
这一时期突出的代表性的工作是 1998 年 Oliver 等人 [ 2] 开 发的
通过互联网即 B/ S 结构收集软件 评审数 据的工 具。在个体 软
件过程研究中, 比较有名的商业 软件 PSP-STADIO 也 属于这 一
代。虽然这种方法和第( 1) 种比较 起来有利于 数据的 分析, 节
省了许多成 本, 但是, 根 据 美 国 夏威 夷 大 学 [ 3] 的 研 究 调 查 表
明, 由于这种方法( 工 具) 要 求不 断地在 工作 和记 录数 据之 间
交换, 人们并不情愿使用这种方式。
( 3) 近几年来, 软件开发环境越来越向 着过程集 成化的 方
向发展, 即集建模、需求、分析、编码和测试于一体。这样, 由一
个厂商生产的集成化的开发工 具包含 了软件 开发过 程的各 个
阶段, 也使过程数据的自动收集成为可能。这里面有代表性的
产品是基于 IBM 的 Rational 系列产品 ProjectConsole 和 Borland
公司的应用软件 生命 周期 管理 战略 ( ALM) , 它 们整 合了 应 用
软件生命周期的各个 阶段: 定义、设计、开发、测试 和部 署。另
外, 在个体软件过程 ( PSP) 的 研究中, 美 国夏 威夷 大学 开发 了
自动数 据收 集工 具 Hackystat, 该 工具在 编码 和测 试工 具中 嵌
入探测器, 探测 器收集 的数据 传送到 Web 服务 器发布。目 前
完成了针对 JBuilder, Ant Build System 和 JUnit 测 试工 具 的 数
据收集工具 [ 3] 。相应的技术发 展路线 是源于 人工智 能研究 领
域的 Agent 技术在软件中得到了 很大的发展。作 为智能主体,
被赋予自动收集过程 数据 职能 的 Agent 能够 自动 地完 成该 职
能, 而开发人员无须干预, 甚至感觉不到。Agent 技术被用来在
软件场景测试领域收集用户的 使用数 据 [ 4] 。软件配 置管理 工
具保存了软件开发过程的各个阶段的最新产品, 因此从配置管
理工具中可获得必要的 过程数 据。但是, 需要 克服两 点困难:
大多数配置管理工具不支持输 出信息 和数据 库的连 接以及 有
些过程数据不能从配置管 理工具 得到。这需 要根据 对工具 的
接口编程和其他如度量工具的配 合, 基 于 PVCS[ 1] 和 CVS[ 5] 的
过程数据收集工具分别得到了实现。
综上所述, 软件 过 程数 据收 集 方法 的发 展 经历 了三 个 阶
段: 基于孤立的文件系统表格甚至是纸质的文件表格的数据收
集、基于与数据库相 连的 Web 表 格的数 据收 集和 自动 化的 过
程数据收集。在这三个阶段中, 自动化的软件过程数据收集无
疑是效率最高和成本最低 的。但是自 动的数 据收集 尚存在 着
的一个问题是, 有些需要 的数据 不能覆 盖到, 即不是 所有的 数
据收集都能自动化, 解决这个问题需要专门的过程数据收集人
员的一定的人工参与。
3 软件过程度量数据自动收集的四层框架 SCPB
从以上的介绍中可以看出, 软件过程度量数据的自动收集
具有重要意义, 本部 分试 图 给出 一 个广 义上 的 数据 收集 的 框
架, 根据该框架可以实现几种度量数据的自动收集方法。根据
度量数据的流向, 我们定义了一个四层的度量数据自动收集的
框架( 图 1) 。该度量数据收集框架包含四个实体层 次: 数据 源
( Data Source) 、数据收集工具 ( Data Collection Tool) 、数据加 工
工 具( Data Processing Tool) 和数据库( Data Base) ; 三个过程: 收
集过程、加工 过程和存储 过程; 涉 及三项重要 技术: 数据收集、
数据交换和数据组织存储。
软件过程度量数据收集层次图
数据收集
数据交换
数据组织与存储
怎样解决芽
怎样解决芽
怎样解决芽
数据收集
数据加工
数据存储
数
据
库
数
据
源
数据
收集
工具
数据
加工
工具
图 1 软 件过程 度量 数据自 动收 集框架
( 1) 数据源, 即从哪里收集数据, 可 以是集 成开发 环境、软
件产品、配置管理工具等。
( 2) 数据收 集工具, 即 用什 么把 数据 从数 据源 中取 出来,
可以是集成开发环境、对配置管理工具的接口编写的程序或者
是嵌入到开发环境中的收集 数据的 Agent, 也 可以是 度量工 具
等。
( 3) 数据加工工具和数据交换技 术, 即对 数据收 集工具 收
集的数据进行加工。加工主要是指对数据的合理性进行检查,
去除不合理的数据, 另外还有一项重要的任务是使数据具有易
交换性。在实际的软件开发的整个生命周期中, 一般各个阶段
要用到不同的度量数据收集 工具, 而过程 是连续 的, 下一阶 段
的某个过程的输入可能就是上个阶段过程的输出, 这就需要在
不同 的过程度量 工具之间交 换数据。Martin Auer 等人提出 了
这些不同工具之 间数 据交 换的 格式和 协议 [ 6, 8, 9] , 该 协议 利 用
XML 技术定义了数据交换的格式。首先 将度量数据 转换成 预
定义的格式, 然 后把 数据 封装 成 SOAP 消 息送 到度 量 Hub, 该
度量 Hub 以 Web 服务的格式发布这些数据, 供其他工具使用。
为了解决各种软件系统 之间 元数 据的 交换 问题, OMG 定义 了
公共数据仓 库元 模 型( Common Warehouse Metamodel, CWM) ,
该元模型描述了数据仓库与业 务分析 领域中 普遍存 在的业 务
与技 术元数据 [ 13] 。通过导入 / 导出采用 CWM 描述 的元模型,
不同的产品之间就能够共享元数据。
( 4) 数据库 和数 据组 织存 储技 术。自动 收集的 度量 数 据
最后要统一收集到数据库中, 一般是关系数据库或者是对象—
关系数据库。为了分析起来更加有效, 对数据的组织存储技术
进行研究是必要的。由于各个软件过程的特殊性, 一般要求数
据库的结构要灵活, 可以灵活地添加和删除要度量的元素和它
的值。度量的数据要有利于在各个层次上查询, 并且要求度量
数据的语义要尽量丰富, 即准 则 7 的 要求。另外, 还有 度量 数
据的易交换性的要求, 即 准则 3, 要 求不 同的 过程 之间 乃至 不
同的项目之间的数据都要具有易交换性。对于灵活性的要求,
一般按照数据仓库的设计要 求, 组 织两个 表格, 一个 表格存 储
元 数据, 即 存储 数据结 构; 另一 个表 格存 储实 实在 在的 数据。
·22·
计算机应用研究
2005 年
当需要增加或者删除某个度量元素时, 只需要修改存储实在数
据的表格的行, 而不 需要修 改表格 的结构。对 于易查 询、语 义
丰富性和数据易交换性的要求, 涉及到存储元数据的表格的设
计, 解决的办法一般是定 义一种 层次化 的过程 描述语 言, 以 该
过程描述语言定义元数据 的表格 结构。代表 性的工 作是 Gra-
ham Clark 等人设 计的过 程工 程语 言( PEL) [ 7] , 该语 言定 义 了
行动、阶段、产品和描述等四个描述过程度量语言单词, 而语法
则描述了这些单词之间 的组成 关系。由于 行动、阶段、产品 和
描述等各个部分的任意组合, 以该语言组织的数据易于在各个
维度上进行查询; 同时在四个单词的描述下, 语义较为丰富; 由
于结构统一, 采用该过程语言进行描述的项目和过程之间也利
于交换度量数据。另外, 国际工作流联盟定义的工作流过程定
义语言( WPDL) 也可以用来描述元数据的表格结构。
4 基于 SCPB 框架的自动数据收集方法
4. 1 四种自动数据收集方法
如 表 1 所示, 基于上面 的度量数据 自动收集框 架, 列 举了
四种软件过程度 量数 据的 自动 收集 方法 ( 均已 在业界 实现 ) :
①使用覆盖软件开发生命周期的集成开 发环境 [ 12] , 如 Rational
的系列产品 ProjectConsole。软件 的需 求、设计、开 发和 测试 都
要用 Rational 公司的产品, 过 程数 据交 换起 来比 较容 易, 不 需
要数据加工工具, 数据也 都存储 在开发 环境的 各个工 具中, 不
需要数据库。②把配置管理工具作为数据源, 对配置管理工具
的接口编程, 将从配置管理工具中得到的数据存储到关系数据
库 [ 1] 。③将包含软件 产 品的 集成 开 发环 境 作为 数据 源, 将 嵌
入到开发环境中的收集数据的 Agent 作 为数据收集 工具, 收集
度量数据送到关系数据库 [ 3] 。④将软 件开发 过程的 产品作 为
数据源, 在开发过程的各个阶段一般用不同的度量工具对该阶
段的产品进行 度量, 抽 取 度量 数 据 [ 6] 。 由于 各 个度 量工 具 存
储数据的格式不同, 因此需要定义一种数据交换的格式和协议
来交换数据, 最后数据也要保存在关系数据库中。
表 1 软件过 程度 量数据 的自 动收集 方法
数 据 源
数 据 收 集 工 具
数 据 加 工 工 具
数 据 库
软 件 开 发 过 程 产 品 集 成 开 发 环 境
配 置 管 理 工 具
集 成 开 发 环 境
对 配 置 管 理 工 具 的 接 口
编 写 的 程 序
嵌 入 到 开 发 环 境 中 收 集
数 据 的 Agent
无
无
无
软 件 开 发 过 程 产 品 各 种 过 程 产 品 度 量 工 具
用 定 义 的 数 据 交
换 格 式 和 协 议 加
工 数 据
无
关 系
数 据 库
关 系
数 据 库
关 系
数 据 库
4. 2 四种方法的比较
在这四种方法中, 方法①的开销最小, 但是它不够灵活, 限
定整个过程用一个公司的产 品。方法 ②要求 对配置 管理工 具
的接口编程, 因此开销较大, 而且度量有及时性要求, 这就要求
开发人员必须及时将产品保存到配置管理工具中, 否则得不到
最新的度量数据。当然, 如果配置管理工具和关系数据库有接
口是最好, 目前有些配置管理工具如 PVCS 支持这一 功能。方
法③的开销也较 大, 最 好有 现成 的 嵌入 到其 他 开发 工具 中 的
Agent 软件, 能完成数据收集的功能, 但是目前所能支持的工具
还较少。方法④虽然需要规 定数据 交换协 议, 需要另 外编程,
但是它的灵活性好, 比较 符合实 际的软 件开发 情况, 而且基 于
XML 的数据 格式能够验 证数据的一 致性, 而 基于 Web 服务 将
数据发布到 Web 上有利于数据的开放性访 问。四种工具比 较
起来, 方法 ②中利 用与关 系数据 库有接 口的, 像 PVCS 这样 的
配置管理工具比较实用方便, 开销小; 方 法④ 即利用 多种度 量
工具也可行, 因为它符合目 前大多 数软件 开发组 织的现 状, 并
且在度量数据的一致性和开放性上占有优势。
5 结束语
软件过程中的度量数据的 自动收 集能够 降低过 程改进 的
成本, 使员工能够专注于自身的工作。同时, 必须认识到, 限 于
当前的技术发展, 度量数据只能在一定的范围内实现收集的自
动化, 即不是所有的数据都能实现自动化收集。这时如果不进
行人工收集, 则会发生数据 收集不 全、满足不 了度量 计划的 要
求等情况。总之, 在目前的 情况下, 适量 的人工 收集数 据是 适
当的和必需的。
参考文献:
[ 1]
uigi Lavazza. Providing Automated Support for the GQM Measure-
ment Process[ J] . IEEE Software, 2000, 17 ( 5, 6) : 56- 62.
[ 2] Oliver Laitenberger. Automated Software Engineering Data Collection
Activities via World Wide Web: A Tool Development Strategy Ap-
plied in the Area of Software Inspection[ EB/ OL] . http: / / www.
iese. fraunhofer. de / network/ ISERN/ pub / technical_ reports / isern-98-
12 . pdf, 1998 .
[ 3 ] Philip M Johnson, et al. Beyond the Personal Software Process: Met-
rics Collection and Analysis for the Differently Discipilined [ EB/
OL] . http: / / csdl. ics. hawaii. edu / techreports /02- 07 /02- 07. pdf,
2002.
[ 4] David M Hilbert, et al. Agents for Collecting Application Usage Data
over the Internet[ EB/ OL] . http: / / www. ics. uci. edu/ ~redmiles /
publications/ C027 -HR98. pdf, 1998.
[ 5] Dirk Draheim, Lukasz Pekacki. Analytical Processing of Version Con-
trol Data: Towards a Process-Centric Viewpoint [ EB / OL] . http: / /
www. pekacki. de/ publications / tr-b- 03- 07 . pdf, 2003 .
[ 6] Martin Auer. Measuring the Whole Software Process: A Simple Metric
Data Exchange Format and Protocol [ EB/ OL] . http: / / alarcos. inf-
cr. uclm. es / qaoose 2002 / docs / QAOOSE-Aue. pdf, 2002 .
[ 7] Antony Lee Powell. Right on Time: Measuring, Modelling and Mana-
ging Time: Constrained Software Development[ D] . 2001 .
[ 8] Martin Auer. XML-based Metric Data Handling[ R] . Vienna: Vienna
University of Technology, 2002 .
[ 9] Martin Auer. Translating Measurement Patterns to Software Metrics
[ R] . Vienna: Vienna University of Technology, 2002.
[ 10] P Giese, et al. Data Collection in a Process-Sensitive Software Engi-
neering Environment[ EB/ OL] . http: / / www. agse. informatik. uni-
kl. de/ pubs / repository / giese94a/ 1994-ispw9. pdf, 1994.
[ 美] W H Inmon. 数 据仓 库( 第 三版 ) [ M] . 王 志 海, 等 . 北 京: 机
械工业 出版 社, 2003.
[ 11]
[ 12] Rational Software Corp. ProjectConsole [ EB / OL] . http: / / www. ra-
tional. com/ .
[ 13] Object Management Group. The Common Warehouse[ EB / OL] . ht-
tp: / / www. cwmforum. org/ .
作者简介:
周 宇( 1978- ) , 男 , 硕 士研 究生, 主要 研究 方 向为 软 件 过程 技 术; 钱红 兵
( 1961- ) , 副教授 , 在 读博 士 生 , 主 要 研 究 方 向 为 软 件过 程 技 术 1 软 件
测 试及 软件质 量保 障。