面向数据流的结构化分析和设计知识点讲解.ppt

上传人:小飞机 文档编号:6034450 上传时间:2023-09-16 格式:PPT 页数:59 大小:433KB
返回 下载 相关 举报
面向数据流的结构化分析和设计知识点讲解.ppt_第1页
第1页 / 共59页
面向数据流的结构化分析和设计知识点讲解.ppt_第2页
第2页 / 共59页
面向数据流的结构化分析和设计知识点讲解.ppt_第3页
第3页 / 共59页
面向数据流的结构化分析和设计知识点讲解.ppt_第4页
第4页 / 共59页
面向数据流的结构化分析和设计知识点讲解.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《面向数据流的结构化分析和设计知识点讲解.ppt》由会员分享,可在线阅读,更多相关《面向数据流的结构化分析和设计知识点讲解.ppt(59页珍藏版)》请在三一办公上搜索。

1、第4讲 面向数据流的结构化分析和设计知识点讲解,主要内容,4.1结构化分析和结构化设计4.2需求建模:面向数据流的结构化分析面向数据流的结构化分析方法的概念怎样开展面向数据流的结构化分析任务4.3设计建模:面向数据流的结构化设计面向数据流的结构化设计的概念怎样开展面向数据流的结构化设计任务 4.4习题与思考题,4.1结构化分析和结构化设计,结构化分析是由美国YOURDOR公司在70年代中期提出。SA适用于大型的数据处理系统,特别是企事业管理方面的系统。这个方法通常与设计阶段的结构化设计(SD)衔接起来使用。,4.2需求建模:面向数据流的结构化分析,本节内容:面向数据流的结构化分析方法的概念怎样

2、开展面向数据流的结构化分析任务过程:自顶向下、逐层分解技术:语言规则,面向数据流的结构化分析方法的概念,定义:面向数据流的结构化分析方法用抽象模型的概念,按照内部数据传递和变换的关系(IPO观点),自顶向下,逐步求精分解,直到找到满足功能要求的所有可实现的软件为止。面向数据流的结构化分析方法的本质:1)数据传递和变换:IPO=输入-处理-输出2)自顶向下,逐步求精分解:树形结构(层次清晰,同层结点独立性),怎样开展面向数据流的结构化分析任务,本节内容:怎样开展面向数据流的结构化分析任务过程:自顶向下、逐层分解技术:数据流图法画数据流图DFD体现分析的过程数据字典DD,过程:自顶向下、逐层分解,

3、SA方法使用了“自顶向下逐层分解”的方式理解和表达它的功能:层与层之间(1)顶层抽象的描述了整个系统。(2)底层具体的画出了系统的每个细部。(3)中间层则是从抽象到具体的逐步过渡。每一层:(4)在每一层描述数据对象的输入-处理-输出的细节。优点:(1)体现了分解和抽象的原则。(2)分析过程分层进行,有效地控制了复杂性。不足:关注功能(分离了实体的数据),而功能是其不稳定的部分,导致了难以维护。,技术:数据流图法,本节内容:画数据流图DFD体现分析技术数据流图的图形记号画出数据流图的分层结构数据字典DD关于数据字典DD定义数据的方法VS定义加工的方法,数据流法:画数据流图DFD体现分析的过程,本

4、节内容:数据流图的图形记号(1)DFD-外部实体(数据源点或终点)(2)DFD-加工(变换)(3)DFD-数据流(4)DFD-数据源画出数据流图的分层结构,数据流图,数据流图(Data Flow Diagram,简称DFD)描绘系统的逻辑模型,是结构化系统分析的主要工具。数据流图(DFD)是描述软件系统中数据处理过程(部分+联系)的一种有力的图形工具。数据流图承载了IPO技术和自顶向下逐层分解的技术。,数据流图的图形记号,外部实体(数据源点或终点)数据加工(数据变换)数据流数据源,DFD-外部实体(数据源点或终点),数据的源点和终点,位于软件系统边界之外的信息生产者或者消费者。外部实体:不需要

5、在开发系统的过程中设计和实现。外部实体:不属于数据流通的核心部分,它是目标系统的外围工作环境部分,人或者设备。外部实体:通常数据源点和终点命名时,采用它们在问题领域中习惯使用的名字。,DFD-加工(变换),变换数据的加工,转换数据的处理过程,又称为泡(bubble)。加工也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。,DFD-数据流,由一组固定成分的数据组成的、在转换(加工)之间有向流动的数据项或数据项集合。有单向数据流和双向数据流。流动的数据:加工-加工;加工-文件;文件-加工;源点-加工;加工-

6、终点。,DFD-数据源,数据源又称数据存储(文件),为一个或者多个转换提供数据源或者数据存储服务的缓冲区、文件或者数据库。,画出数据流图的分层结构,SA方法使用了“自顶向下逐层分解”的方式:(1)顶层抽象的描述了整个系统。(2)底层具体的画出了系统的每个细部。(3)中间层则是从抽象到具体的逐步过渡。(4)在每一层描述数据对象的输入-处理-输出的细节。,SA方法之DFD法:从问题描述出发得到分层数据流图。(1)第一步:从问题描述出发提取数据流图的4种成分,确定基本系统模型,也就是顶层DFD。(2)分析第二步:遵循“先全局后局部、先整体后细节、先抽象后具体,先系统内部后加工内部”,得到一套分层的数

7、据流图,包括中间层DFD和底层DFD。,数据字典DD,本节内容:关于数据字典DD定义数据的方法VS定义加工的方法用形式语言定义数据流或数据存储描述加工逻辑的结构化语言、判定表及判定树,关于数据字典DD,DFD与DD的关系:数据流图+数据字典=需求说明书 有哪些数据元需要在DD中进行描述呢?DD中需要描述的4种类型的条目:数据流条目、数据存储条目、数据项条目、加工条目。,关于数据字典DD,数据字典的实现(建立)过程如下:为每个要定义的名字准备一页;在专属页上写上这个名字及其条目类型(即数据流、数据项、数据存储或加工,其中数据存储可以为文件、数据库表格等等);写上这个名字的定义;写上这个名字的其他

8、特性和种种限制;顺序完成所有的要定义的名字。数据字典的实现应具有以下特点:通过名字能方便地查阅数据定义没有冗余尽量不重复在规格说明的其他组成部分中已出现的信息容易修改和更新能单独处理描述每个数据元素的信息定义的书写方法简便而严格注意事项:分析员应当根据系统的特点,以及用户要求的具体情况决定DD中应记录的内容。需求说明书应当完整的记述用户的要求,系统的每一成分的种种限制和性质都是“用户要求”的一部分,这些信息对于设计、测试阶段来说都是很重要的,应当在DD中反映出来。,定义数据的方法VS定义加工的方法,本节内容:用形式语言定义数据流或数据存储描述加工逻辑的结构化语言、判定表及判定树,用形式语言定义

9、数据流或数据存储,数据字典中所有的定义都应是严密的、精确的,不可有半点含混,不可有二义性,必须遵循精确、简洁的原则,并能为用户方和开发方共同理解。虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁建议采用形式语言的语法机制描述数据条目的内容。在定义数据流或数据存储(如文件)时,使用下表给出的符号。将这些条目按照一定的规则组织起来加以描述。,描述加工逻辑的结构化语言、判定表及判定树,例一 考务处理系统“检查报名单”IF 输入项满足书写要求Then输出合格报名单Else输出不合格报名ENDIF,例二“确定能否供货”的加工逻辑:根据库存记录IF 订单项目的数量 该项目库存量的临界

10、值THEN 可供货处理ELSE 此订单缺货,登录,待进货后再处理ENDIF,结构化语言,描述加工逻辑的结构化语言、判定表及判定树,例1:对商店每天的营业额所收税率(一个加工),例2:一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。,判定表,描述加工逻辑的结构化语言、判定表及判定树,判定树例:一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。,4.3设计建模:面向数据流的结构化设计,本节内容:面向数据流的结构化设计的概念怎样

11、开展面向数据流的结构化设计任务过程:自顶向下逐步细化技术:体系结构映射技术:过程设计,面向数据流的结构化设计的概念,Mitch Kapor“软件设计宣言”:“什么是设计?设计是你站在两个世界技术世界和人类的目标世界而你尝试将这两个世界结合在一起”。,怎样开展面向数据流的结构化设计任务,本节内容:过程:自顶向下逐步细化技术:体系结构映射(结构设计方法/映射体系结构)技术:过程设计(结构化程序设计方法传统构件/模块),过程:自顶向下逐步细化,从过程上讲,面向数据流的结构化设计任务主要包括2个方面:系统设计:一是将复杂问题的解法分解和细化成由若干个模块组成的层次结构。详细设计和编码:二是将每个模块的

12、功能逐步分解细化为一系列的处理。,技术:体系结构映射,何为“体系结构映射”?数据流(DFD)实际上是软件系统的逻辑模型。面向数据流的系统设计要解决的任务,就是在上述需求分析的基础上,将DFD图 映射(Mapping)为软件系统的结构 如何“映射”?以结构化分析产生的数据流图为基础,按一定步骤映射成软件结构,以确定软件的体系结构和接口。称之为“结构设计方法”(SD)。SD方法提供了一种称为SC图(structure chart结构图)的描述工具,专门描述软件的总体结构。,技术:体系结构映射,结构映射的过程,技术:体系结构映射,DFD的类型与SC类型,变换型系统结构图:变换型系统的结构图由输入、中

13、心变换和输出3部分组成。如图所示。,变换型数据流图:变换型数据处理问题的工作过程大致分为3步,即取得数据、变换数据和给出数据。如图所示。特点:具有明确的传入、变换(或称主加工)和传出界面的DFD。,技术:体系结构映射,DFD的类型与SC类型,事务型系统结构图:对应的事务型系统的结构图可以有多种不同的形式,如有多层操作层或没有操作层。典型的如图所示。如果调度模块并不复杂,可将其归入事务中心模块。从而得到简化的事务型系统结构图。如图所示。,事务型数据流图:事务型数据流图展现的工作过程不同于变换型数据处理问题的方式通常,在接受一项事务后,会根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给

14、出结果。其中,完成选择分派任务的部分(加工、泡泡)称为事务处理中心,或分派部件。如图所示。,技术:体系结构映射,变换型映射方法步骤 1:重画数据流图。在需求分析阶段得到的数据流图侧重于描述系统如何加工数据,而重画数据流图的出发点是描述系统中的数据是如何流动的。在重画的数据流图上区分系统的逻辑输入、逻辑输出和变换中心部分。如图所示。,技术:体系结构映射,变换型映射方法步骤 2:进行一级分解,设计系统模块结构的顶层和第一层。自顶向下设计的关键是找出系统树形结构图的根或顶层模块。如图所示。,技术:体系结构映射,变换型映射方法步骤3:进行二级分解,设计中、下层模块。这一步工作是自顶向下,逐层细化,为(

15、各层的)每一个输入模块、输出模块、变换模块设计它们的从属模块。如图所示。,1,3,2,技术:体系结构映射,事务型映射方法步骤1.确定DFD中的事务中心和加工路径。步骤2.设计软件结构的顶层和第一层事务结构 步骤3.事务结构中、下层模块的设计、优化同变换结构,技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,主图变换型、子图事务型,技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,主图事务型、子图变换型,技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,混合结构,技术:体系结构映射,软件模块结构的改进方法模块功能的完善化消除重复功能,改

16、善软件结构模块的作用范围应在控制范围之内尽可能减少高扇出结构,随着深度增大扇入避免或减少使用病态连接模块的大小要适中,技术:过程设计,过程设计概要设计的任务完成后,就进入详细设计阶段,也就是过程设计阶段。在这个阶段,要决定各个模块的实现算法,并使用过程描述工具精确地描述这些算法。过程描述工具,3类。(1)图形工具:把过程的细节用图形方式描述出来,如程序流程图、N-S图、PAD图、决策树等。(2)表格工具:用一张表来表达过程的细节。这张表列出了各种可能的操作及其相应的条件,即描述了输入、处理和输出信息,如决策表。(3)语言工具:用某种类高级语言(称为伪代码)来描述过程的细节,如很多数据结构教材中

17、使用类Pascal、类C语言来描述算法。过程设计的方法:结构化程序设计方法,技术:过程设计,结构化程序设计的概念如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。,技术:过程设计,结构程序设计的主要原则(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。(2)选用的控制结构只准许有一个入口和一个出口。(3)程序语句组成容易识别的块(Block),每块只有一个入口和一个出口。(4)复杂结构应该用基本控制结构进行组合嵌套来实现。(5)语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整

18、个系统中应前后一致。,技术:过程设计,结构程序设计的主要原则(6)严格控制GOTO语句,仅在下列情形才可使用:用非结构化的程序设计语言去实现结构化的构造。若不使用GOTO语句就会使程序功能模糊。在某种可以改善而不是损害程序可读性的情况下。例如,在查找结束时,文件访问结束时,出现错误情况要从循环中转出时,使用布尔变量和条件结构来实现就不如用GOTO语句来得简洁易懂。(7)在程序设计过程中,尽量采用自顶向下(TopDown)、逐步细化(Stepwise Refinement)的原则,由粗到细,一步步展开。,技术:过程设计,程序流程图程序流程图也称为程序框图,是软件开发者最熟悉的算法表达工具。早期的

19、流程图也存在一些缺点。特别是表示程序控制流程的箭头,使用的灵活性极大,程序员可以不受任何约束,随意转移控制,这将不符合结构化程序设计的思想。为使用流程图描述结构化程序,必须对流程图加以限制。,技术:过程设计,程序流程图的基本控制结构(1)顺序型:几个连续的加工步骤依次排列构成。(2)选择型:由某个逻辑判断式的取值决定选择两个加工中的一个。(3)先判定(while)型循环:在循环控制条件成立时,重复执行特定的加工。(4)后判定(until)型循环:重复执行某些特定的加工,直至控制条件成立。(5)多情况(case)型选择:列举多种加工情况,根据控制变量的取值,选择执行其一。,技术:过程设计,程序流

20、程图的基本控制结构,技术:过程设计,程序流程图实例,技术:过程设计,N-S图Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图(box-diagram),也叫做N-S图。在N-S图中,为了表示5种基本控制结构,规定了5种图形构件。,技术:过程设计,N-S图的基本控制结构,技术:过程设计,N-S图的实例,技术:过程设计,N-S图的特点(1)图中每个矩形框(除CASE构造中表示条件取值的矩形框外)都是明确定义了的功能域,以图形表示,清晰可见。(2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求。(3)很容易确定局部数据和(或)全局数据的作用域。(4

21、)很容易表现嵌套关系,也可以表示模块的层次结构。,技术:过程设计,伪代码伪代码是一种介于自然语言和形式化语言之间的半形式化语言,是一种用于描述功能模块的算法设计和加工细节的语言,也称为程序设计语言(Program Design Language,PDL)。伪码的语法规则分为“外语法”和“内语法”。外语法应当符合一般程序设计语言常用语句的语法规则;内语法可以用英语中一些简单的句子、短语和通用的数学符号来描述程序应执行的功能,技术:过程设计,伪代码的基本控制结构简单陈述句结构:避免复合语句。判定结构:IF_THEN_ELSE或CASE_OF结构。重复结构:WHILE_DO或REPEAT_UNTIL

22、结构。,技术:过程设计,伪代码实例:“检查订货单”例子,技术:过程设计,伪代码的特点(1)有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征。外语法的关键字是有限的词汇集,它们能对伪代码正文进行结构分割,使之变得易于理解。(2)内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性。(3)有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。(4)有子程序定义与调用机制,用以表达各种方式的接口说明。,4.4习题与思考题,分别将下列的DFD转换为SC:,4.4习题与思考题,请同学们课后多找一些例子来画一画DFD和SC图,并锻炼读图的能力和从模型生成代码的能力。,本章讲授内容已结束,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号