第三章 需求分析
学习目标
1. 掌握:需求分析的方法
2. 理解:需求分析的任务和原则
学习要点
面向数据流的分析方法
需求分析的任务与步骤
需求分析的任务
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。
需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在这个阶段结束时交出的文档中应该包括详细的数据流图(DFD),数据字典(DD)和一组简明的算法描述。
需求分析阶段的任务包括下述几方面。
1.确定对系统的综合需求
2.分析系统的数据需求
分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典格式和数据模型。并以输入/处理/输出(IPO)的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。
3.导出系统的逻辑模型
就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。
4.修正系统开发计划
5.开发原型系统
需求分析的步骤
结构化分析方法(简称SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。需求分析的步骤如下。
1. 调查研究
2.分析与综合
应注意下述两条原则:第一,在分层细化时必须保持信息连续性,也就是说细化前后对应功能的输入/输出数据必须相同;第二,当进一步细化将涉及如何具体地实现一个功能时,也就是当把一个功能进一步分解成子功能后,并将考虑为了完成这些子功能而写出其程序代码时,就不应该再分解了。
3.书写文档
在这个阶段应该完成下述四种文档资料:
①系统规格说明。
②数据要求。
③用户系统描述。
④修正的开发计划。
4.需求分析评审
需求分析的原则
1.必须能够表达和理解问题的数据域和功能域
2.按自顶向下、逐层分解问题
3.要给出系统的逻辑视图和物理视图
需求分析方法
大多数的需求分析方法是由数据驱动的,数据域具有三种属性:数据流、数据内容和数据结构。通常,一种需求分析方法总要利用一种或几种属性。
需求分析方法具有以下的共性。
1.支持数据域分析的机制
2.功能表示的方法
3.接口的定义
4.问题分解的机制以及对抽象的支持
5.逻辑视图和物理视图
6.系统抽象模型
面向数据流的需求分析方法
结构化分析方法是面向数据流进行需求分析的方法。
结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。
数据流图
数据流图是描述数据处理过程的工具。
1.数据流图的含义
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。
2.数据流图的特性
(1)抽象性
(2)概括性
(3)层次性
3. 数据流图基本符号
(1)数据流图中的主要图形元素
数据流图的基本图形元素有4种,如图所示。

数据流图基本图形符号
(2)数据流与加工之间的关系
其中星号“*”表示相邻的一对数据流同时出现,Å
则表示相邻的两数据流只取其一。
(3)分层的数据流图

数据流图加工关系
4.数据流图的用途
数据流图的作用主要有以下几条:
(1)系统分析员用这种工具可以自顶向下分析系统信息流程。
(2)可在图上画出需要计算机处理的部分。
(3)根据数据存贮,进一步作数据分析,向数据库设计过渡。
(4)根据数据流向,定出存取方式。
(5)对应一个处理过程,用相应的语言、判定表等工具表达处理方法。
5.数据流图的优缺点
(1)总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”。
(2)可以反映出数据的流向和处理过程。
(3)由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。
(4)容易与计算机处理相对照。
(5)不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。
(6)如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。
6.数据流图画法
(1)画数据流图的一般原则
画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。具体步骤如下。
(2)数据流图的分层方法
(3)分层法绘制流程图的几个问题
7.数据流图的绘制与其它流程图的差别
(1)
数据流图与系统流程图的区别
(2)
数据流与程序流程图的区别
(3)
数据流与程序结构图的区别
(4)数据流与控制流的区别
要求会画第一层数据流图。
3.2.3 数据字典
1.数据字典的定义
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型。
2.数据字典的内容
数据字典由下列六类元素的定义组成。
(l)数据流
① 数据流名称及其称号;
②
数据流的来源:可能是一个外部实体、处理逻辑、数据存储;
③ 数据流的去处;
④
数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义;
⑤
数据流的流通量:单位时间的传输次数;
⑥
高峰时期的流通量:业务的频繁程度和时间有关。
(2)数据项
数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。主要内容有:
①
数据项名称及编号:数据项名称必须唯一地标识这个数据项,以区别于其他数据项;给数据项取名时,要反映该数据项的含义,易于他人理解、记忆。
②
别名:同一数据项的名称可能不止一个,称为别名。
③ 取值的范围和取值的含义
。
④
数据项的长度:指数据项所包含的字符或数字的位数。
(3)数据结构
① 数据结构的名称及其编号
;
②
数据结构的组成:如果是一个简单的数据结构,只要列出它所包含的数据项即可。如果是一个嵌套的数据结构,只需列出它所包含的数据结构名称,因为这些数据结构同样在数据字典中有定义。
(4)数据存储
数据存储是数据结构停留或保存的场所。主要内容:
①
数据存储的名称及其编号:在数据流程图中对数据存储给以命名,并编上一个唯一的编号;
②
流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向;
③
数据存储的组成:指它所包含的数据项或数据结构。
(5)处理逻辑
主要内容:
① 处理逻辑的名称及编号 ;
②
简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的;
③ 处理逻辑的输入和输出;
④ 处理逻辑的主要功能 ;
⑤
处理逻辑的小说明(文档之一) 。
(6)外部实体
外部实体是系统的“人-机”界面,也就是系统的数据流由外部实体流入,或者系统的数据向外部流出。主要内容:
① 外部实体的名称及编号;
② 与外部实体有关的数据流。
例如:
① 外部实体名称:供应商;
② 编号:GS03-22;
③
简述:向本公司供应货物的个人和单位;
④ 有关的数据流:
数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述三个原因:
①对于同样的数据,不同的用户使用了不同的名字;
②一个分析员在不同时期对同一个数据使用了不同的名字;
③两个分析员分别分析同一个数据流时,使用了不同的名字。
虽然应该尽量减少出现别名,但是不可能完全消除别名。
3.定义数据的方法
4.数据字典的用途
5.数据字典的实现
图形工具
层次方框图
Warnier 图
IPO图
I
需求规格说明与评审
需求规格说明的主要内容
需求分析应交付的主要文档是需求规格说明。
软件需求规格说明的一般格式如下:
1.引言
2.任务概述
3.数据描述
4.功能要求
5.性能需求
6.运行需求
7.其他要求
8.附录
需求分析的评审
需求分析评审的方法