结构化分析(SA)方法的基本思想是自定向下,逐层分解,把一个大问题分解成若干个小问题,每一个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。
SA方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型,功能模型和行为模型。在实际工作中,一般使用E-R图表示数据模型,用DFD表示功能模型,用状态转换图STD表示行为模型。
一.数据流图
DFD是SA方法中重要的工具,是表达系统内部数据的流动并通过数据流描述系统功能的一种方法,DFD还可以被认为是一个系统模型,在信息开发系统中,如果采用结构化方法,则一般将DFD作为需求规格说明书的一个组成部分。
1.DFD的主要作用
DFD从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间的传递情况,来说明系统所完成的功能。主要作用如下:
(1)DFD是理解和表达用户需求的工具,是需求分析的手段。
(2)DFD概括描述了系统的内部逻辑过程,是需求分析结果的表达工具,也是系统设计的重要参与资料,是系统设计的起点。
DFD作为一个存档的文字材料,是进一步修改和充实开发计划的依据。
2.DFD的基本符号
在DFD中,通常会出现4种基本符合,分别是数据流,加工,数据存储和外部实体。数据流是具有名字和流向的数据,在DFD中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息,一般用直线表示。外部实体是位于建模的系统之外的信息生产者或消费者,是不能被计算机处理的成分。
3.DFD的层次
SA的方法的思路是依赖于DFD进行自上而下的分析。DFD提供一种表现系统高层和底层概念的机制,也就是先绘制一张教高层次的DFD,然后在次基础上,对其中的加工进行分解,分解成若干个独立的、低层次的、详细的DFD,而且可以这样逐个分解下去,直到系统被清晰描述出来。
(1)顶层图
底层图是是描述系统最高层结构的DFD,它的特点是将整个待开发的系统表示为一个加工,将所有的外部实体和进出系统的数据流都画在一张图中。
(2)逐层分解。当完成了顶层图的建模之后,就可以在这个基础上进一步分解。可以根据谣要对0 层图上的加工进行类似的再分解,称之为1层图,在 1 层图中引入的新加工,其编号规则就是1.1、1.2、…,以及 2.1、2.2、…,依次类推,直到完成分析工作。
4.如何画DFD
DFD的绘制是一个自定向下、由外到里的过程,通过以下步骤进行:
(1)画系统的输入和输出:在图的边缘标出系统的输入数据流和输出数据流。这一步其实是决定研究的内容和系统的范围。
(2)画DFD的内部:将系统的输入输出用用一系列的处理连接起来。
(3)为每一个数据流命名:命名的好坏与DFD的可理解性密切相关,应避免使用空洞的名字。
(4)为加工命名:使用动宾短语为每个加工命名
画好DFD之后,需要进行检查和修改,检查和修改的原则如下:
(1)DFD中的所有图形符号只限于前4种基本图形元素,图上每个元素必须有名字。
(2)每个加工至少有一个输入数据流和一个输出数据流,而且要保持数据守恒。
(3)在DFD中,需按层给员工加工编号。编号表明该加工处于那一层,以及上下层之间的关旭。
(4)规定任何一个DFD子图必须与它上一层的加工对应,两者的输入数据流和输出数据流必须一致。
(5)在整套DFD中,每个数据存储必须啊哟既有读的数据流,又有写的数据流。
(6)可以在DFD中加入物质流,帮助用户理解DFD,但不可夹带控制流。
二.状态转换图
STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为。此外,STD还指出作为特定事件的执行结果将执行哪些动作。状态是任何可以被观察到的系统行为模式,每个状态代表系统的一种行为模式。在STD中,用圆形框或椭圆框表示状态,通常在框内标上状态名。状态规定了系统对事件的响应方式。系统对事件的响应可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态。STD描述了系统如何在各种状态之间移动。
在 STD 中,从一个状态到另一个状态的转换用箭头线表示,箭头表明转换方向,箭头线上标上事件名。必要时可在事件名后面加一个方括号,括号内写上状态转换的条件。也就是说,仅当方括号内所列出的条件为真时,该事件的发生才引起箭头所示的状态转换。
STD 既可以表示循环运行过程,也可以表示单程生命期。当描述循环运行过程时, 通常不关心循环是怎样启动的。
三.数据字典
数据字典是在DFD的基础上,对DFD中出现的所有命名元素都加以定义,使得每个图形元素的名字都有一个确切的解释。DFD和数据字典等工具配合,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。
1.数据字典的条目
数据字典一般有六类条目,分别是数据元素、数据结构、数据存储、加工逻辑和外部实体。不同类型的条目有不同的属性需要描述。
(1)数据元素。数据元素也称为数据项,是数据的最小组成单位。
(2)数据结构。数据结构用于描述某些数据元素之间的关系,是一个递归的概念,一个数据结构可以包含若干个数据元素或者数据结构。
(3)数据流。数据流有一个或一组数据元素组成,对数据流的描述应包括数据流的名称、编号,简要说明,来源,去处、组成和流通量。
(4)数据存储。数据存储的条目主要描写改数据存储的结构,以及有关的数据流和查询要求。
(5)加工逻辑。需要描述加工的编号、名称、功能的简要说明,有关输入输出数据流。
(6)外部实体。外部实体是数据的来源和去向,对外部实体的描述应该包括外部实体的名称、编号,简要说明。
2.数据字典的作用
在整个系统开发过程和系统运行与维护阶段,数据字典是所有人员工作的依据,统一的标准。数据字典可以确保数据在系统中的完整性和一致性。数据字典具有以下作用:
(1)按各种需求列表。可以根据数据字典,把所有数据条目按一定的顺序列出,保证系统设计时不会遗漏。
(2)相互参照,便于系统修改。
(3)由描述内容检索名称。在一个稍微复杂的系统中,系统分析师可能没有把握断定某个数据元素在数据字典中是否已经被定义,或者记不清其确切名字时,可以由内容查找其名称。
(4)一致性检验和完整性检验。
3.数据字典的管理
为了保证数据的一致性,数据字典必须由专人(数据管理员)管理。数据管理员的职责就是维护和管理数据字典,保证数据字典内容的完整性和一致性。任何人,包括系统分析师、软件设计师、程序员,如果要修改数据字典的内容,都必须通过数据管理员。 数据管理员还要负责把数据字典的最新版本及时通知有关人员。