1、教学辅导-需求分析一、需求分析的任务需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?这个问题.需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求.通常软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求.在这个阶段结束时交出的文档中应该包括详细的数据流图(DFD),数据字典(DD)和一组简明的
2、算法描述。需求分析阶段的任务包括下述几方面。1确定对系统的综合需求2分析系统的数据需求分析系统的数据需求是由系统的信息流归纳抽象出数据元素组成、数据的逻辑关系、数据字典格式和数据模型.并以输入/处理/输出(IPO)的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务.3导出系统的逻辑模型就是在理解当前系统“怎样做的基础上,抽取其“做什么”的本质。4修正系统开发计划5开发原型系统二、需求分析的步骤结构化分析方法(简称SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法.需求分析的步骤如下.1 调查研究2分析与综合应注意下述两条原则:第一,在分层细化时必须保持信息连续
3、性,也就是说细化前后对应功能的输入输出数据必须相同;第二,当进一步细化将涉及如何具体地实现一个功能时,也就是当把一个功能进一步分解成子功能后,并将考虑为了完成这些子功能而写出其程序代码时,就不应该再分解了。3书写文档在这个阶段应该完成下述四种文档资料:(1)系统规格说明。(2)数据要求。(3)用户系统描述.(4)修正的开发计划。4需求分析评审三、需求分析的原则1必须能够表达和理解问题的数据域和功能域2按自顶向下、逐层分解问题3要给出系统的逻辑视图和物理视图四、需求分析方法大多数的需求分析方法是由数据驱动的,数据域具有三种属性:数据流、数据内容和数据结构.通常,一种需求分析方法总要利用一种或几种
4、属性。需求分析方法具有以下的共性。1支持数据域分析的机制2功能表示的方法3接口的定义4问题分解的机制以及对抽象的支持5逻辑视图和物理视图6系统抽象模型五、面向数据流的需求分析方法结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象.六、数据流图数据流图是描述数据处理过程的工具。1数据流图的含义数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了
5、系统内部信息的流向,并表示了系统的逻辑处理的功能.2数据流图的特性(1)抽象性 (2)概括性(3)层次性3。 数据流图基本符号(1)数据流图中的主要图形元素数据流图的基本图形元素有4种,如图所示。数据流图基本图形符号(2)数据流与加工之间的关系其中星号“表示相邻的一对数据流同时出现,? 则表示相邻的两数据流只取其一。 (3)分层的数据流图数据流图加工关系4.数据流图的用途数据流图的作用主要有以下几条:(1) 系统分析员用这种工具可以自顶向下分析系统信息流程。 (2) 可在图上画出需要计算机处理的部分。 (3) 根据数据存贮,进一步作数据分析,向数据库设计过渡. (4) 根据数据流向,定出存取方
6、式. (5) 对应一个处理过程,用相应的语言、判定表等工具表达处理方法.5数据流图的优缺点(1) 总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么。 (2) 可以反映出数据的流向和处理过程。 (3) 由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。 (4) 容易与计算机处理相对照。 (5) 不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到. (6) 如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大.6数据流图画法(1) 画数据流图的一般原则画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。具体步骤如下。(2) 数据流
7、图的分层方法(3) 分层法绘制流程图的几个问题7数据流图的绘制与其它流程图的差别(1) 数据流图与系统流程图的区别(2) 数据流与程序流程图的区别(3) 数据流与程序结构图的区别(4) 数据流与控制流的区别要求会画第一层数据流图。七、数据字典1数据字典的定义数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型.2数据字典的内容数据字典由下列六类元素的定义组成.(l)数据流数据流名称及其称号;数据流的来源:可能是一个外部实体、处理逻辑、数据存储; 数据流的去处; 数据流的组成:一个数据流可能包括若干个数据结构
8、,若只有一个数据结构,就不需要专门定义; 数据流的流通量:单位时间的传输次数; 高峰时期的流通量:业务的频繁程度和时间有关.(2)数据项数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。主要内容有:数据项名称及编号:数据项名称必须唯一地标识这个数据项,以区别于其他数据项;给数据项取名时,要反映该数据项的含义,易于他人理解、记忆。 别名:同一数据项的名称可能不止一个,称为别名。 取值的范围和取值的含义 。数据项的长度:指数据项所包含的字符或数字的位数。(3)数据结构数据结构的名称及其编号 ;数据结构的组成:如果是一个简单的数据结构,只要列出它所包含的数据项即可.如果是一个嵌套的
9、数据结构,只需列出它所包含的数据结构名称,因为这些数据结构同样在数据字典中有定义。(4)数据存储数据存储是数据结构停留或保存的场所.主要内容:数据存储的名称及其编号:在数据流程图中对数据存储给以命名,并编上一个唯一的编号; 流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向; 数据存储的组成:指它所包含的数据项或数据结构。 (5)处理逻辑主要内容:处理逻辑的名称及编号 ;简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的; 处理逻辑的输入和输出; 处理逻辑的主要功能 ;处理逻辑的小说明(文档之一) 。(6)外部实体外部实体是系统的“人机”界面,也就是系统的数据
10、流由外部实体流入,或者系统的数据向外部流出。主要内容:外部实体的名称及编号;与外部实体有关的数据流. 例如:外部实体名称:供应商;编号:GS0322;简述:向本公司供应货物的个人和单位; 有关的数据流: 数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述三个原因:对于同样的数据,不同的用户使用了不同的名字;一个分析员在不同时期对同一个数据使用了不同的名字;两个分析员分别分析同一个数据流时,使用了不同的名字。虽然应该尽量减少出现别名,但是不可能完全消除别名.3定义数据的方法4数据字典的用途5数据字典的实现八、需求规格说明与评审需求规格说明的主要内容,即需求分析应交付的主要文档是需求规格说明。软件需求规格说明的一般格式如下: 1引言2任务概述3数据描述4功能要求5性能需求6运行需求8附录7其他要求需求分析的评审需求分析评审的方法必须从一致性、完整性、现实性和有效性等四个不同角度验证软件需求的正确性。