结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。结构是指系统内系统内各个组成要素之间的相互联系、相互作用的框架。
结构化开发方法提出了一组提高软件结构合理性的概念与规则,如分解与抽象、模块独立、信息隐藏等。对应于软件生命周期各个不同的阶段,结构化方法包括结构化分析(SA)、结构化设计(SD)和结构化编程(SP)等方法。
其中,结构化设计是一种面向数据流的方法,在该方法中,模块是实现功能的基本单元。它通常与结构化分析方法衔接起来进行,以数据流图(DFD)为基础得到软件的模块结构。
数据流图
数据流图(Data Flow Diagram,简称DFD),是进行结构化分析和设计的重要工具,是表达系统内部数据的流动并通过数据流描述系统功能的一种方法。
在DFD中,有四种基本组成元素,分别是:数据流、加工、数据存储、外部实体(数据来源及数据终点)。这四种元素分别用四种基本符号表示。
→:数据流。数据流是具有名字和流向的数据。除了与数据存储之间的数据流不用命名外,其他一般都应该命名,将名字标注在带箭头的线条旁边。在数据流图中应该体现所有可能的数据流,但不需要描绘出出现某个数据流的条件。
□:外部实体。外部实体是指位于被建模的系统/模块之外的信息生产者或消费者,它们分别表示数据处理过程的数据来源和数据去向。用标有名字的方框表示。外部实体可以是人、物或其他软件系统。
○:对数据的加工(或处理)。它接收一定的数据输入,对其进行处理,并产生输出。一个处理节点可以代表一系列程序、单个程序或者程序的一个模块,可以称之为一个功能单元。
〔:数据存储。数据存储是可访问的数据信息,表示信息的静态存储。可以是文件、数据库的信息等。
例如,对于以下的计算序列:
用数据流图表示为:
可以看到,图中的每个圆圈表示一个操作,箭头表示数据的流向,即输入输出,同时还包含先后顺序。具体来说,图中的a、b、c、d、R1、R2属于外部实体,+、-、*、/为处理节点,箭头表示数据流方向。
在上图中,执行 a+b 和 c-d 的顺序是任意的,x*y 和 b+d 的顺序也是任意的。它们没有数据依赖性,即两个步骤之间不存在一个步骤的输出是另一个步骤的输入。
在概念上,数据流图是有向非循环的图,包含节点和边。其中,节点代表功能单元,处理输入和产生输出;有向边是两个节点间的有向箭头,表示箭头节点的输入数据是箭尾节点的输出,意味着只有上一个节点计算完成才能进行下一个节点计算。
从图中可以看出,数据流图表达了数据的生产者、数据的产生顺序和数据的消费者,同时也可以看出数据流的并行情况、并发计算的时机和数据的生命周期。
数据流图的作用
数据流图从数据传递和处理的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所需要完成的功能。主要有以下作用
物理与逻辑DFD
DFD可以是一个物理系统模型,也可以是逻辑系统模型,还可以是二者的混合。逻辑DFD与物理DFD最大的区别在于,逻辑DFD只描述了相关的组成元素,而物理DFD则会涉及具体的实现技术。
在系统分析中,逻辑DFD作为需求规格说明书的组成部分,用于建模系统的逻辑业务需求;在系统设计中,物理DFD作为系统构造和实现的技术性蓝图,用于建模系统实现的技术设计决策和人为设计决策。
数据流图的分层
通常在实际应用中,为了表达数据处理过程中的数据加工情况,用一个DFD是不够的。对于复杂的实际业务问题,在DFD中常常出现十几个甚至更多的加工。为了使DFD看起来更清晰直观,可以采用层次结构的DFD,按照系统的层次结构进行逐步分解。
一般,根据层级将数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图按顺序从0开始编号。
顶层数据流图只包含一个处理节点,代表所要建模的整个系统;输入数据和输出数据为系统的输入和输出。通常用于表达系统范围,以及与外部系统或环境的关系。
中层数据流图是对顶层数据流图中某个处理进行细化,而它本身的某个处理节点还可以进一步细化,形成下一级的数据流图。中层数据流图的多少,一般与系统的复杂度有关。
底层数据流图是指处理节点不能再分解的数据流图。其处理节点称为“原子处理”或“原子加工”。
例如,某经销商经销系统的功能为:
(1) 向高级经销商提交订货订单;
(2) 接收下级经销商退货订单;
(3) 接收电商系统的消费者订单。
画出该系统的顶层数据流图为:
然后,可以的顶层数据流图进一步细化,细化为多个下级数据流图。在此举例细化消费者订单模块数据流图DFD/L0.1如下:
注意命名方式,顶层数据流图下面的第一层为DFD/L0,如果该层有多个数据流图,DFD/L0.1、DFD/L0.3、DFD/L0.3……,第一层的下一层为DFD/L1,以此类推。
我对加盟感兴趣,马上免费通话或留言!
(24小时内获得企业的快速回复)
我们立即与您沟通
温馨提示:
1.此次通话将不会产生任何费用, 请放心使用
7x24小时电话咨询
130*1234567