1
面向对象软件工程实践指南
1.2.5.4 5.4 软件需求规格说明的编写
5.4 软件需求规格说明的编写

5.4.1 目前系统

描述了目前的状态。如果目前软件项目是开发一个新的系统替代以前的系统,那么此章节可以用来描述老系统的功能和存在的问题。如果目前并没有老系统,那么该章节就描述在实际业务中遇到的一些问题。

5.4.2 建议的系统

这一部分应包含所有的软件需求,其详细程度应使设计人员能够设计出可以满足这些需求的系统,并使测试人员能够测试该系统是否满足这些需求。

1)概述

对系统的功能需求提供了简略的描述。

2)功能需求

此部分以自然语言风格说明为此设计的系统功能性需求。通常按特性来组织,但也可能会有其他适用的组织方式,例如按用户或子系统组织的方式。功能性需求可能包括特性集、性能和安全性。在表述时,可以一一列举各条功能需求,格式如下:

(1)<功能性需求一>:需求说明。

(2)<功能性需求二>:需求说明。

3)非功能需求

(1)可用性:此部分应包括所有影响可用性的需求。

(2)可靠性:对系统可靠性的需求应在此处说明。

(3)性能:此部分应概述系统的性能特征。

(4)可支持性:此部分应列出将提高所构建系统的可支持性或可维护性的所有需求。

(5)设计约束:此部分应列出所构建系统的所有设计约束。

4)接口

此部分规定应用程序必须支持的接口/界面。它应非常具体,包含协议、端口和逻辑地址等,以便于按照接口/界面需求开发并检验软件。

(1)用户界面:说明软件将实现的用户界面方面的要求。

(2)硬件接口:此部分指出软件所支持的所有硬件接口,其中包括逻辑结构、物理地址、预期行为等。

(3)软件接口:此部分说明软件系统中与其他构件之间的软件接口。这些构件可以是购入的构件、取自其他应用程序重新利用的构件,也可以是为此需求范围之外的子系统开发,但该软件应用程序必须与之交互的构件。

(4)通信接口:说明与其他系统或设备(如局域网、远程串行设备等)的所有通信接口。

5)法律、版权及其他声明

此部分说明软件涉及的所有必需的法律免责声明、保证、版权声明、专利声明、字标、商标或徽标符合性问题。

6)适用的标准

通过引用,此部分说明了所有适用的标准以及适用于所述系统的相应标准的具体部分。例如,其中可以包括法律、质量及法规标准;业界在可用性、互操作性、国际化、操作系统相容性等方面的标准。

5.4.3 系统模型

该部分使用UML中的概念、方法和模型图来详细表达需求。

1)场景

该部分中针对每一个发起用例的参与者,选择代表性的场景进行描述。按照如下格式进行:

<场景一>:

场景名字:为每一个场景起的具体名字;

参与者实例:场景中涉及的具体参与者人员;

事件流程:按照步骤列出详细的流程。

2)用例模型

该节中先给出一个所有参与者列表,并对每一个参与者给予解释,形式如表5-1所示。

表5-1 参与者列表

对所有用例,列在表格5-2中,并给以简单介绍。

表5-2 用例列表

接下来,详细定义每一个用例,具体格式参考5.2.2节。

当用例定义完成后,我们就需要画出一张形式如图5-7的完整的用例图。

以下的两节在需求定义阶段一般不给出,而是在分析阶段给出。

3)对象模型

以类图的形式给出软件中涉及的领域对象及其关系。

4)动态模型

描述各个对象之间的交互行为或者单个对象的复杂状态。

5)用户界面

在需求获取阶段,可以给出部分用户界面,并在分析阶段继续完善。在介绍界面时,可以通过文字描述界面之间的转换关系。