1. 需求分析的主要工作
 (1)问题识别 (problem recognition)
 (2)评价和综合 (evaluation and synthesis)
 (3)建模 (modeling)
 (4)规格说明 (specification)
 (5)评审 (review)
  需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
  调查的重点是"数据"和"处理",通过调查、分析,获得用户对数据库的如下要求:
 (1) 信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
 (2) 处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
 (3) 安全性与完整性要求。
  确定用户的最终需求是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此往往不能准确的表达自己的需求,所提出的需求往往不断的变化。另一方面,设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须不断深入的与用户交流,才能逐步确定用户的实际需求。

 2. 软件需求规格说明
  进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。对用户需求进行分析与表达后,必须提交给用户,征得用户的认可。
  软件需求规格说明是在对用户需求分析的基础上,把用户的需求规范化、形式化而写成的。目的是为软件开发提出总体要求,作为用户和开发人员之间相互了解和共同开发的基础。根据我国国家标准GB856D-88的规定,软件需求规格说明的内容如下:
  1. 引言
   1.1 编写说明
   1.2 背景
   1.3 定义
   1.4 参考资料
  2. 任务概述
   2.1 目标
   2.2 用户的特点
   2.3 假定与约束
  3. 需求规定
   3.1 对功能的规定
   3.2 对性能的规定
    3.2.1 精度
    3.2.2 时间特性要求
    3.2.3 灵活性
   3.3 输入输出要求
   3.4 数据管理能力要求
   3.5 故障处理要求
   3.6 其它专门要求
  4. 运行环境规定
   4.1 设备
   4.2 支持软件
   4.3 接口
   4.4 控制

 3 软件需求分析方法和工具 
  调查了解了用户的需求以后,还需要进一步分析和表达用户的需求。在众多的分析方法中结构化分析方法(Structured Analysis,简称SA方法)是一种简单实用的方法。SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。SA方法把任何一个系统都抽象为图5-11的形式。

  图5-11 系统高层抽象

  在需求分析阶段,通常用系统逻辑模型描述系统必须具备的功能。系统逻辑模型常用的工具主要是:
 (1) 数据流图
 (2) 数据字典
  图5-11给出的只是最高层次抽象的系统概貌,要反映更详细的内容,可将处理功能分解为若干子功能,每个子功能还可以继续分解,直到把系统工作过程表示清楚为止。在处理功能逐步分解的同时,他们所用的数据也逐级分解,形成若干层次的数据流图。
  数据流图表达了数据和处理过程的关系。在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。