17.2 需求文档 在传统的开发方法中,待开发系统的需求通过需求文档进行定义。需求文档通常会按照一个通用的参考结构来组织。典型的需求文档的例子包括客户需求规约和系统需求规约。然而,越来越多的开发组织开始使用基于数据库的工具来管理文本需求。当使用数据库进行需求管理时,需求文档可以随时从需求数据库中生成(见3.5节和18.5节)。因此,一个需求文档可以被视为在一个给定时间点上从需求数据库中(有选择地)获取的需求的快照。17.2.1 需求文档的类型 无论需求是在文档中还是数据库中进行管理的,都经常需要为了某种目的将所选择的需求汇集在相应的需求文档中,例如定义那些作为一个合同主题的需求。一个需求文档可能因以下这些目的而创建:便于用户、领域专家、需求工程师、软件开发人员等之间的交流; 作为创建体系结构设计的一个参考模型; 在委托开发任务时用于协商; 作为客户与合同商之间订立合约的基础; 作为产生诸如用户手册或维护手册等手册的基础; 作为项目规划、监控和控制的基础。鉴于各自不同的目的,不同的需求文档具有不同的内容,并且在需求定义的细节层次上也存在差异。不幸的是,不同类型的需求文档之间并不存在一致的术语体系。而且,各种文献中给出的关于在项目开发中需要什么样的需求文档以及这些文档应当包含什么内容的建议也存在着很大的差异。英语**中的需求文档 在使用英语的**中,一般区分两类软件密集型系统的需求文档:系统需求规约。软件需求规约。系统需求规约定义了关于系统硬件和软件,以及硬件和软件之间的必要关系的需求(见【IEEE Std 1233—1998】)。软件需求规约(【IEEE Std 830—1998】)详细描述了系统需求规约中所定义的软件需求。在18.1节中,我们将讨论对于需求文档参考结构的使用。作为一个示例,我们根据【IEEEStd 1233—1998】描述了一个软件需求规约的详细结构。德语**中的需求文档 在使用德语的**中,一般区分两类需求文档:要求汇总书(见17.2.2节)。责任汇总书(见17.2.3节)。系统需求规约与软件需求规约都与责任汇总书相似(参见【Parnas and Madey 1995】)。对于软件密集型系统,尤其是嵌入式软件密集型系统而言,除了系统需求文档之外还需要为系统中的每一个软件和硬件组件创建需求文档。此时可以区分3种不同的需求文档:系统需求文档:该文档定义了整个系统的需求,因此也为硬件、软件以及软硬件之间的相互作用定义了需求。通常,系统需求文档中描述的需求需要进行精化并分配给各个硬件与软件组件。