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