《第4章结构化方法电子教案》由会员分享,可在线阅读,更多相关《第4章结构化方法电子教案(49页珍藏版)》请在金锄头文库上搜索。
1、1,结构化方法,2,学习内容,结构化方法概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计,3,一.结构化方法概述, 它包括结构化分析(Structured Analysis)、结构化设计( Structured Design)和结构化程序设计( Structured Programming)三部分组成。 结构化方法的基本指导思想是自顶向下,逐步求精,它的基本原则是抽象与分解。,5,二、结构化分析,策略:它根据软件内部数据传递、变换的关系,自顶向下逐层分解描绘出满足功能要求的软件模型。,6,结构化分析步骤,建立当前系统的物理模型(系统流程图,怎么做) 抽象出当前系统的逻辑模型。(
2、做什么) 建立目标系统的逻辑模型。 作进一步补充和优化。,7,描述工具,数据流图 :描速系统的分解。 数据词典:定义数据流图中的数据和加工。 描述加工逻辑的结构化语言、判定表、判定树等工具:详细描述数据流图中不能被再分解的每一个基本加工的处理逻辑 。,8,数据流图,数据流图(Data flow Diagram,简称DFD)是表示系统逻辑模型的一种工具,以图形的方式描绘数据在系统中的流动和处理过程。由于只反映系统必须完成的逻辑功能,所以是一种功能模型。,9,数据流图基本图形符号,数据源点和终点:系统的外部实体。一般只出现在顶层图中。 为了避免在数据流图上出现数据流的线条交叉,同一个外部实体允许在
3、一张图上出现多次。,10,数据流图基本图形符号,加工 :对数据进行处理。加工名一般用一个动词和一个作宾语的名词所组成。,编号 加工名,或,编号,加工名,11,数据流图基本图形符号,数据流: 数据及其流向,通常由一组数据项组成。有时数据流很难用简单而适当的词表达,这时可用概括性的语句来表达,一般用名词或名词短语表示。,内容,12,数据流图基本图形符号,数据存储:信息的静态存储。它也允许在一张数据流图上重复出现相同的数据存储,以避免数据流的交叉。,数据名称,或,编号,数据名称,13,数据流图的分层方法,描述一个复杂的系统,不可能一下子引进太多的细节。否则用一张数据流图画出所有的数据流和加工,则这张
4、图将是极其庞大而复杂,因而难以绘制,也难以理解。所以必须用分层的方法将一个流程图分解成几个流程图,来分别表示。,14,数据流图的分层方法,一套分层的数据流图由顶图、0层图、中间层和底图的数据流图所组成。 顶图说明了系统的边界,即系统的输入和输出的数据流,顶图只有一个加工,标识被开发的系统。 画系统内部,一般将层号从0开始编号。0层图分解顶层图的系统为若干子系统。 底图由一些不必再分解的加工组成,这些加工称为基本加工。在顶图和底图之间是中间层。 称上层图为下层图的“父”图,下层图称为上层图的“子”图。,15,子图P1,b,d,子图P2,c,a,b,d,父图(0层图),c,d,e,子图P3,e,P
5、1,P3,P2,P2 .1,P2 .2,P2 .3,P3 .3,P3 .2,P3 .1,P,a,b,e,源点1,终点,源点2,顶图,16,绘制数据流图的几个问题,合理地命名:数据流程图中对每一个元素都要命名,恰当地命名有助于数据流程图的理解与阅读。命名原则: 为了避免引起错觉,为每个元素所取的名字要能反映该元素的整体性内容,而不只是它的部分内容。 每个元素的名字都能有唯一地标识该元素。 避免用空洞的名字,要具体的含义。 如果发现难以为某个数据流或加工命名时,这往往是数据流图分解不当的征兆,可重新分解。,17,绘制数据流图的几个问题,编号的设置 子图的编号是父图相应的加工的编号。 子图中加工编号
6、由子图号、小数点与局部号组成。,18,绘制数据流图的几个问题,父图与子图的平衡 子图是详细地描述父图中加工,因而子图的输入、输出数据流应该同父图中加工的输入、输出数据流相一致。,订货单,P,提货单,P3,P1,P2,提货单,数量,客户,19,绘制数据流图的几个问题,局部数据存储 局部数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口。在子图中出现的数据存贮,可以不出现在父图中,画父图时只需画出处理逻辑之间的联系,不必画出各个处理逻辑内部的细节,有助于实现信息隐蔽。,库存记录,20,绘制数据流图的几个问题,加工的分解与分细的程度 为提高数据流图的易理解性,注意合理分解。分得
7、太细,则使得层次太多;分得太快,则达不到分层的目的。 从管理的层次结构原理来看,一个领导人管理他的下属一般不超过7人,故在分解一层时不宜超过7个加工。 一个加工分解到基本加工为止。基本加工:能表达系统所有的逻辑功能和必要的数据输入与输出,这些功能与数据的描述能使用户清楚地理解,并且还能使以后的系统设计人员看到每一个加工,有一个明确的概念,并据此能设计程序模块实现这些加工。 注意子加工的独立性和匀称性。,21,22,23,数据流图实例,以某企业的销售管理系统为例,采用SA方法进行需求分析,建立功能模型。该企业销售管理的描述如下: (1)接受顾客的订单,检验订单。若库存有货,则进行供货处理,即修改
8、库存,给仓库开备货单,并将订单留底;若库存量不足,则将缺货订单登入缺货记录。 (2)根据缺货记录进行缺货处理,将缺货通知单发给采购部门,以便采购。 (3)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。 (4)根据留底的订单进行销售统计,打印统计表给经理。,24,数据流图实例,顶层图,25,0层图,26,1层图,图1,图2,27,1层图,图3,图4,28,1层图,图5,修改下面的经营处理系统,顾客,供应商,订货单,发货单,订货单,发货单,顶层数据流程图,经营处理系统,经理,统计表,顾客,P1 销售,P2 采购,供应商,F1 配件库存,P3 会计,应付款
9、通知,收款通知,到货通知,订货单,订货单,发货单,发货单,统计,缺货通知,第0层数据流程图,31,数据流图的优缺点,总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”。 可以反映出数据的流向和处理过程。 由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。 容易与计算机处理相对照。 不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。 如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。,32,与其它流程图的差别,与系统流程图的区别 系统流程图中不仅有数据流,还有物质流、资金流。 数据流程图仅以数据流的形态来反映一个组织中整个管理业务的过程。 与程
10、序结构图的区别 程序结构图反映模块之间的控制关系,以及模块之间的调用关系,而数据流图则不反映控制关系、调用关系、控制流,只画数据流。,33,与其它流程图的差别,与程序流程图的区别 程序流程图中的处理框之间有严格的时间上的顺序,也就先执行哪个处理框,起始点以及终止点等。而数据流程图只反映数据的流向、加工和必要的数据存储,它不反映加工的先后的时间顺序。,数据字典,Data Dictionary,简称DD 数据字典是用来定义DFD中各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型。 数据字典的
11、内容 数据流、数据存贮、数据项、基本加工。,数据字典的符号,36,数据流条目,在一个数据流图上,数据按数据流为单位传输。主要内容有: 数据流名称、别名及简述。 数据流的来源:可能是一个外部实体、处理逻辑、数据存贮。 数据流的去处。(同上) 数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义。 数据流的流通量:单位时间内的传输次数。,37,数据流条目举例,数据流的名称:销售科发货单 别名:无 简述:工厂对顾客办理的发货单 数据流来源:“销售科”外部实体 数据流去向:“核对发货单”处理逻辑 数据流组成:发货单标识+顾客+配件 流通量:50份/天,38,数据存储条目
12、,数据存储是数据结构停留或保存的场所。主要内容: 数据存储的名称、别名及其简述。 流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向。 数据存储的组成:指它所包含的数据项或数据结构。 组织方式、查询要求等。,数据存储条目举例,数据存储名称:销售历史 别名:无 简述:公司从月初到目前为止所有配件的销售量。 流入的数据流:“顾客的发货单”,来源是“产生发货单”处理逻辑。 流出的数据流:“销售量”,去向是“产生销售报表”处理逻辑。 数据存贮的组成:配件编号+日期+销售量。 组织方式:以配件编号为关键字建立索引。 查询要求:能立即查询。,40,数据项条目,数据项也称数据元素,是“不可再
13、分”的数据单位,是数据的最小组成单位。主要内容有: 数据项名称、别名及简述:给数据项取名时,按“顾名思义”的原则,反映该数据项的含义,易于他人理解、记忆。 数据项的类型 数据项的长度:指数据项所包含的字符或数字的位数。 取值的范围和取值的含义,41,数据项条目举例,数据项名称:货物编号 别名:G_No,Goods_No 简述:本公司的所有货物的编号。 类型:字符串 长度:10 取值/含义:第一位:进口/国产 24位:类别 57位:规格 810:品名编号,加工条目,用来说明DFD中基本加工的处理逻辑的。 加工名; 编号; 简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的。 激
14、发条件; 优先级; 输入、输出; 加工逻辑:描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,描述如何把输入数据流变换为输出数据流的加工规则。 常用的描述方法:结构化语言、判定表及判定树。,43,加工条目举例,加工名:确定能否供货 编号:1.2 简述: 激发条件:接受到合格订单时 优先级:普通 输入:合格订单 输出:可供货订单、缺货订单 加工逻辑:根据库存记录 IF 订单项目的数量该项目库存量的临界值 THEN 可供货处理 ELSE 此订单缺货,登记,待进货后再处理 ENDIF,44,加工逻辑的描述结构化语言,结构化语言是在自然语言基础上加了一些限定,使用有限的词汇和语句来描述加工
15、逻辑,其结构分内外二层。 外层用来描述控制结构,采用顺序、选择、重复三种基本结构。 内层一般采用祈使语句的自然语言短语。使用数据字典中的名词和有限的自定义词,动词含义要具体。还可使用一些简单的算术运算和逻辑运算符号。,45,结构化语言示例,IF 顾客订额1000 IF 顾客信誉好 订单设“优先”标志 ELSE IF 顾客是老顾客 订单设“优先”标志 ELSE 订单设“正常”标志 ENDIF ENDIF ELSE 订单设“正常”标志 ENDIF,加工逻辑的描述判定表,47,判定表,判定表能把什么条件下系统应做什么动作准确地表示出来,同时能发现需求的不完整性,如某些条件组合下缺少应采取的动作。也能发现冗余的动作,可将条件合并。但判定表不能描述循环的处理特性,循环处理还需结构化语言。,Y,N,Y,Y,N,N,两条规则合并,Y,N,-,48,加工逻辑的描述判定树,好-优先处理 1000 顾客信誉 老顾客-优先处理 顾客订额 不好顾客是 新顾客-正常处理 1000-正常处理,三种描述工具各有优缺点。,IF 顾客订额1000 IF 顾客信誉好 订单设“优先”标志 ELSE IF 顾客是老顾客 订单设“优先”标志 ELSE 订单设“正常”标志 ENDIF ENDIF ELSE 订单设“正常”标志 ENDIF,49,总结,熟练掌握:结构化分析方法的指导思想和基本原则。 掌握