摘要

在本专栏里, David Gelperin 提出了一个我们很多人都熟悉的问题——记录需求最好的办法是什么?本文阐述了静态模板的局限性,那么我们怎么能更好地管理一些更大量的、多维的需求信息呢?

David Gelperin

我们计划开发一个项目,我正在考虑过去的项目中开发需求的方法。我们通常的做法是创建一个需求文档,但这一次这可能不是最好的办法。

对于我们过去的较小的项目,使用文档管理需求效果很好,通过二、三十页纸需求能够被详细说明。我们在本单位或者网上可以获得很多模板,这些模板为需求文档的不同信息提供了编辑样式,然而,文档的效力却无法准确衡量。

大型文档检查和使用都是有困难的。因为文档的组织形式是固定的,作者必须选择简单的最好的方法组织信息。不幸的是,对于大量的信息,没有简单的、最好的方法甚至是较好的方法。同样的需求信息用不同的方式来组织以满足不同的需要,包括满足正确性和完整性校核的需要。随着需求页数的增加和涉众数量的增加,以一种可以改变的而不是固定的、组织好的方式――即:使用数据库的需要逐步增长。

例如,我的妻子 Sharon 和我最近为儿子的婚礼建立了一份客人名单。我们曾用过的字处理工具,当名单上只有二、三十人的时候工作的很好。由于邀请了大约 130 人,我就使用了一个电子制表软件来管理,除姓名、地址和关系信息之外,我们还输入了回复和饮食偏好信息。电子制表软件的分类功能使我能够很容易测算出 (1)选择蔬菜类用餐、鱼类用餐和肉类用餐的人数;(2) 外地宾客以及他们从何处来。电子制表软件的计算功能为我提供了一个重要的导出数据:接待的总数。

当我用关系排序的时候,我注意到计划邀请的一些堂兄不在单子上。虽然这些遗漏的堂兄从按字母排序的名单中能被检查出来,但用关系来做分类排序使得检查这种遗漏容易得多。

需求信息也需要以不同的方式进行聚合。例如包括 (1)所有的关键需求, (2) 来自某个涉众的所有需求,(3) 所有未完成的需求,(4) 所有的接口需求。更大量的、多维需求信息最好应该用能计算、能查询、能重组的工具来管理。

计算能力支持导出信息。例如,允许从测试到源需求的直接链接,允许从源需求信息到测试链接。这显著提高了对于频繁变更的链接信息的多种组织方式的可管理能力。

既然规模较大的需求应该使用电子制表软件或数据库来开发,我现在必须决定使用文档还是数据库能更好地服务于我们的项目。

我通常把电子表格软件看作是功能受限的数据库(有超强计算能力)。他们之间的如何选择应该主要考虑需求的规模。如果要处理带有数十个属性的需求信息,电子制表软件也变得象文档一样难于使用。因此我们在工具的使用上大致可以这样分工:文档和数据库分别负责需求规模小的和规模大的、电子制表软件用来处理中等规模的需求信息。你是如何考虑的?我非常想听听你用什么工具、是怎么考虑的?

专家简介

David Gelperin [email protected] 是位于佛罗里达橙色公园大街的软件质量工程协会(sqe.com) 的创始人之一。David 在软件工程方面有 30 年以上的经验,重点关注了软件质量控制。他曾担任的角色有程序员、项目主管,测试主管、质量监控经理、测试咨询和讲师。他主持制定了 ANSI 和 IEEE 两个组织的软件测试标准,推动了《软件测试与质量控制》( Software Test and Quality Engineering magazine)期刊的创立。他在俄亥俄州大学 Carleton 学院读完了数学专业之后,又继续深造获得了计算机科学专业的硕士和博士学位。