已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4讲 面向数据流的结构化分析和设计知识点讲解,主要内容,4.1结构化分析和结构化设计 4.2需求建模:面向数据流的结构化分析 4.2.1面向数据流的结构化分析方法的概念 4.2.2怎样开展面向数据流的结构化分析任务 4.3设计建模:面向数据流的结构化设计 4.3.1面向数据流的结构化设计的概念 4.3.2怎样开展面向数据流的结构化设计任务 4.4习题与思考题,4.1结构化分析和结构化设计,结构化分析是由美国YOURDOR公司在70年代中期提出。 SA适用于大型的数据处理系统,特别是企事业管理方面的系统。 这个方法通常与设计阶段的结构化设计(SD)衔接起来使用。,4.2需求建模:面向数据流的结构化分析,本节内容: 4.2.1面向数据流的结构化分析方法的概念 4.2.2怎样开展面向数据流的结构化分析任务 4.2.2.1过程:自顶向下、逐层分解 4.2.2.2技术:语言规则,4.2.1面向数据流的结构化分析方法的概念,定义:面向数据流的结构化分析方法用抽象模型的概念,按照内部数据传递和变换的关系(IPO观点),自顶向下,逐步求精分解,直到找到满足功能要求的所有可实现的软件为止。 面向数据流的结构化分析方法的本质: 1)数据传递和变换 :IPO = 输入-处理-输出 2)自顶向下,逐步求精分解 :树形结构(层次清晰,同层结点独立性),4.2.2怎样开展面向数据流的结构化分析任务,本节内容: 4.2.2怎样开展面向数据流的结构化分析任务 4.2.2.1过程:自顶向下、逐层分解 4.2.2.2SA技术:数据流图法 4.2.2.2.1画数据流图DFD体现分析的过程 4.2.2.2.2数据字典DD,4.2.2.1过程:自顶向下、逐层分解,SA方法使用了“自顶向下逐层分解”的方式理解和表达它的功能: 层与层之间 (1)顶层抽象的描述了整个系统。 (2)底层具体的画出了系统的每个细部。 (3)中间层则是从抽象到具体的逐步过渡。 每一层: (4)在每一层描述数据对象的输入-处理-输出的细节。 优点: (1)体现了分解和抽象的原则。 (2)分析过程分层进行,有效地控制了复杂性。 不足: 关注功能(分离了实体的数据),而功能是其不稳定的部分, 导致了难以维护。,4.2.2.2SA技术:数据流图法,本节内容: 4.2.2.2.1画数据流图DFD体现分析技术 4.2.2.2.1.1数据流图的图形记号 4.2.2.2.1.2画出数据流图的分层结构 4.2.2.2.2数据字典DD 4.2.2.2.2.1关于数据字典DD 4.2.2.2.2.2定义数据的方法VS定义加工的方法,4.2.2.2.1数据流法:画数据流图DFD体现分析的过程,本节内容: 4.2.2.2.1.1数据流图的图形记号 (1)DFD-外部实体(数据源点或终点) (2)DFD-加工(变换) (3)DFD-数据流 (4)DFD-数据源 4.2.2.2.1.2画出数据流图的分层结构,数据流图,数据流图(Data Flow Diagram,简称DFD)描绘系统的逻辑模型,是结构化系统分析的主要工具。数据流图(DFD)是描述软件系统中数据处理过程(部分+联系)的一种有力的图形工具。 数据流图承载了IPO技术和自顶向下逐层分解的技术。,4.2.2.2.1.1数据流图的图形记号,外部实体(数据源点或终点) 数据加工(数据变换) 数据流 数据源,DFD-外部实体(数据源点或终点),数据的源点和终点,位于软件系统边界之外的信息生产者或者消费者。 外部实体:不需要在开发系统的过程中设计和实现。 外部实体:不属于数据流通的核心部分,它是目标系统的外围工作环境部分,人或者设备。 外部实体:通常数据源点和终点命名时,采用它们在问题领域中习惯使用的名字。,DFD-加工(变换),变换数据的加工,转换数据的处理过程,又称为泡(bubble)。 加工也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。,DFD-数据流,由一组固定成分的数据组成的、在转换(加工)之间有向流动的数据项或数据项集合。 有单向数据流和双向数据流。 流动的数据: 加工-加工;加工-文件;文件-加工;源点-加工;加工-终点。,DFD-数据源,数据源又称数据存储(文件),为一个或者多个转换提供数据源或者数据存储服务的缓冲区、文件或者数据库。,4.2.2.2.1.2画出数据流图的分层结构,SA方法使用了“自顶向下逐层分解”的方式:(1)顶层抽象的描述了整个系统。(2)底层具体的画出了系统的每个细部。(3)中间层则是从抽象到具体的逐步过渡。(4)在每一层描述数据对象的输入-处理-输出的细节。,SA方法之DFD法:从问题描述出发得到分层数据流图。 (1)第一步:从问题描述出发提取数据流图的4种成分,确定基本系统模型,也就是顶层DFD。 (2)分析第二步:遵循“先全局后局部、先整体后细节、先抽象后具体,先系统内部后加工内部”,得到一套分层的数据流图,包括中间层DFD和底层DFD。,4.2.2.2.2数据字典DD,本节内容: 4.2.2.2.2.1关于数据字典DD 4.2.2.2.2.2定义数据的方法VS定义加工的方法 4.2.2.2.2.2.1用形式语言定义数据流或数据存储 4.2.2.2.2.2.2描述加工逻辑的结构化语言、判定表及判定树,4.2.2.2.2.1关于数据字典DD,DFD与DD的关系: 数据流图+数据字典 = 需求说明书 有哪些数据元需要在DD中进行描述呢? DD中需要描述的4种类型的条目:数据流条目、数据存储条目、数据项条目、加工条目。,4.2.2.2.2.1关于数据字典DD,数据字典的实现(建立)过程如下 : 为每个要定义的名字准备一页; 在专属页上写上这个名字及其条目类型(即数据流、数据项、数据存储或加工,其中数据存储可以为文件、数据库表格等等); 写上这个名字的定义; 写上这个名字的其他特性和种种限制; 顺序完成所有的要定义的名字。 数据字典的实现应具有以下特点: 通过名字能方便地查阅数据定义 没有冗余 尽量不重复在规格说明的其他组成部分中已出现的信息 容易修改和更新 能单独处理描述每个数据元素的信息 定义的书写方法简便而严格 注意事项: 分析员应当根据系统的特点,以及用户要求的具体情况决定DD中应记录的内容。 需求说明书应当完整的记述用户的要求,系统的每一成分的种种限制和性质都是“用户要求”的一部分,这些信息对于设计、测试阶段来说都是很重要的,应当在DD中反映出来。,4.2.2.2.2.2定义数据的方法VS定义加工的方法,本节内容: 4.2.2.2.2.2.1用形式语言定义数据流或数据存储 4.2.2.2.2.2.2描述加工逻辑的结构化语言、判定表及判定树,4.2.2.2.2.2.1用形式语言定义数据流或数据存储,数据字典中所有的定义都应是严密的、精确的,不可有半点含混,不可有二义性,必须遵循精确、简洁的原则,并能为用户方和开发方共同理解。 虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁建议采用形式语言的语法机制描述数据条目的内容。 在定义数据流或数据存储(如文件)时,使用下表给出的符号。将这些条目按照一定的规则组织起来加以描述。,4.2.2.2.2.2.2描述加工逻辑的结构化语言、判定表及判定树,例一 考务处理系统“检查报名单” IF 输入项满足书写要求 Then 输出合格报名单 Else 输出不合格报名 ENDIF,例二 “确定能否供货”的加工逻辑:根据库存记录 IF 订单项目的数量 该项目库存量的临界值 THEN 可供货处理 ELSE 此订单缺货,登录,待进货后再处理 ENDIF,结构化语言,4.2.2.2.2.2.2描述加工逻辑的结构化语言、判定表及判定树,例1:对商店每天的营业额所收税率(一个加工),例2:一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。,判定表,4.2.2.2.2.2.2描述加工逻辑的结构化语言、判定表及判定树,判定树 例:一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。,4.3设计建模:面向数据流的结构化设计,本节内容: 4.3.1面向数据流的结构化设计的概念 4.3.2怎样开展面向数据流的结构化设计任务 4.3.2.1过程:自顶向下逐步细化 4.3.2.2技术:体系结构映射 4.3.2.3技术:过程设计,4.3.1面向数据流的结构化设计的概念,Mitch Kapor “软件设计宣言” : “什么是设计?设计是你站在两个世界技术世界和人类的目标世界而你尝试将这两个世界结合在一起”。,4.3.2怎样开展面向数据流的结构化设计任务,本节内容: 4.3.2.1过程:自顶向下逐步细化 4.3.2.2技术:体系结构映射(结构设计方法/映射体系结构) 4.3.2.3技术:过程设计(结构化程序设计方法传统构件/模块),4.3.2.1过程:自顶向下逐步细化,从过程上讲,面向数据流的结构化设计任务主要包括2个方面: 系统设计:一是将复杂问题的解法分解和细化成由若干个模块组成的层次结构。 详细设计和编码:二是将每个模块的功能逐步分解细化为一系列的处理。,4.3.2.2技术:体系结构映射,何为“体系结构映射”? 数据流(DFD)实际上是软件系统的逻辑模型。 面向数据流的系统设计要解决的任务,就是在上述需求分析的基础上,将DFD图 映射(Mapping)为软件系统的结构 如何“映射”? 以结构化分析产生的数据流图为基础,按一定步骤映射成软件结构,以确定软件的体系结构和接口。称之为“结构设计方法”(SD)。 SD方法提供了一种称为SC图(structure chart结构图)的描述工具,专门描述软件的总体结构。,4.3.2.2技术:体系结构映射,结构映射的过程,4.3.2.2技术:体系结构映射,DFD的类型与SC类型,变换型系统结构图: 变换型系统的结构图由输入、中心变换和输出3部分组成。如图所示。,变换型数据流图: 变换型数据处理问题的工作过程大致分为3步,即取得数据、变换数据和给出数据。如图所示。 特点:具有明确的传入、变换(或称主加工)和传出界面的DFD。,4.3.2.2技术:体系结构映射,DFD的类型与SC类型,事务型系统结构图: 对应的事务型系统的结构图可以有多种不同的形式,如有多层操作层或没有操作层。典型的如图所示。 如果调度模块并不复杂,可将其归入事务中心模块。从而得到简化的事务型系统结构图。如图所示。,事务型数据流图: 事务型数据流图展现的工作过程不同于变换型数据处理问题的方式通常,在接受一项事务后,会根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。其中,完成选择分派任务的部分(加工、泡泡)称为事务处理中心,或分派部件。 如图所示。,4.3.2.2技术:体系结构映射,变换型映射方法 步骤 1:重画数据流图。在需求分析阶段得到的数据流图侧重于描述系统如何加工数据,而重画数据流图的出发点是描述系统中的数据是如何流动的。在重画的数据流图上区分系统的逻辑输入、逻辑输出和变换中心部分。如图所示 。,4.3.2.2技术:体系结构映射,变换型映射方法 步骤 2:进行一级分解,设计系统模块结构的顶层和第一层。自顶向下设计的关键是找出系统树形结构图的根或顶层模块。如图所示。,4.3.2.2技术:体系结构映射,变换型映射方法 步骤3:进行二级分解,设计中、下层模块。这一步工作是自顶向下,逐层细化,为(各层的)每一个输入模块、输出模块、变换模块设计它们的从属模块。如图所示。,1,3,2,4.3.2.2技术:体系结构映射,事务型映射方法 步骤1.确定DFD中的事务中心和加工路径 。 步骤2.设计软件结构的顶层和第一层事务结构 步骤3.事务结构中、下层模块的设计、优化同变换结构,4.3.2.2技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,主图变换型、子图事务型,4.3.2.2技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,主图事务型、子图变换型,4.3.2.2技术:体系结构映射,综合型数据流图与分层数据流图映射成软件结构的设计,混合结构,4.3.2.2技术:体系结构映射,软件模块结构的改进方法 模块功能的完善化 消除重复功能,改善软件结构 模块的作用范围应在控制范围之内 尽可能减少高扇出结构,随着深度增大扇入 避免或减少使用病态连接 模块的大小要适中,4.3.2.3技术:过程设计,过程设计 概要设计的任务完成后,就进入详细设计阶段,也就是过程设计阶段。 在这个阶段,要决定各个模块的实现算法,并使用过程描述工具精确地描述这些算法。 过程描述工具,3类。 (1) 图形工具:把过程的细节用图形方式描述出来,如程序流程图、N-S图、PAD图、决策树等。 (2) 表格工具:用一张表来表达过程的细节。这张表列出了各种可能的操作及其相应的条件,即描述了输入、处理和输出信息,如决策表。 (3) 语言工具:用某种类高级语言(称为伪代码)来描述过程的细节,如很多数据结构教材中使用类Pascal、类C语言来描述算法。 过程设计的方法:结构化程序设计方法,4.3.2.3技术:过程设计,结构化程序设计的概念 如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。,4.3.2.3技术:过程设计,结构程序设计的主要原则 (1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。 (2)选用的控制结构只准许有一个入口和一个出口。 (3)程序语句组成容易识别的块(Block),每块只有一个入口和一个出口。 (4)复杂结构应该用基本控制结构进行组合嵌套来实现。 (5)语言中没有的控制结构,可用一段等价的程序段模拟, 但要求该程序段在整个系统中应前后一致。,4.3.2.3技术:过程设计,结构程序设计的主要原则 (6) 严格控制GOTO语句,仅在下列情形才可使用: 用非结构化的程序设计语言去实现结构化的构造。 若不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况下。例如,在查找结束时,文件访问结束时,出现错误情况要从循环中转出时,使用布尔变量和条件结构来实现就不如用GOTO语句来得简洁易懂。 (7) 在程序设计过程中,尽量采用自顶向下(TopDown)、逐步细化(Stepwise Refinement)的原则,由粗到细,一步步展开。,4.3.2.3技术:过程设计,程序流程图 程序流程图也称为程序框图,是软件开发者最熟悉的算法表达工具。 早期的流程图也存在一些缺点。特别是表示程序控制流程的箭头,使用的灵活性极大,程序员可以不受任何约束,随意转移控制,这将不符合结构化程序设计的思想。 为使用流程图描述结构化程序,必须对流程图加以限制。,4.3.2.3技术:过程设计,程序流程图的基本控制结构 (1) 顺序型:几个连续的加工步骤依次排列构成。 (2) 选择型:由某个逻辑判断式的取值决定选择两个加工中的一个。 (3) 先判定(while)型循环:在循环控制条件成立时,重复执行特定的加工。 (4) 后判定(until)型循环:重复执行某些特定的加工,直至控制条件成立。 (5) 多情况(case)型选择:列举多种加工情况,根据控制变量的取值,选择执行其一。,4.3.2.3技术:过程设计,程序流程图的基本控制结构,4.3.2.3技术:过程设计,程序流程图实例,4.3.2.3技术:过程设计,N-S图 Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图 (box-diagram),也叫做N-S图。 在N-S图中,为了表示5种基本控制结构,规定了5种图形构件。,4.3.2.3技术:过程设计,N-S图的基本控制结构,4.3.2.3技术:过程设计,N-S图的实例,4.3.2.3技术:过程设计,N-S图的特点 (1) 图中每个矩形框(除CASE构造中表示条件取值的矩形框外)都是明确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠期高血压患者的个案护理
- 地理(安徽卷)(全解全析)-2026年高考考前预测卷
- 化学02(广东卷)(考试版)-2026年高考考前预测卷
- 蓝色商务渐变招商引资模板
- 机加中心刀具寿命监控维护标准
- 急性心肌梗死静脉溶栓流程
- 性能测试实施方案部署细则
- 焊接工序质量异常追踪制度
- 边缘节点故障快速切换应急预案
- 市政道路路基施工组织测量配合方案
- 2026年采血点工作人员招聘试题及答案
- 2026中国人民财产保险股份有限公司中宁支公司招聘8人农业笔试参考题库及答案解析
- 2026年注册安全工程师(初级)安全生产法律法规单套试卷
- 乌鲁木齐地区房屋建筑与市政工程施工图文件审查常见问题汇编2025版(勘察专业)
- 青海青江实业集团有限公司招聘笔试题库2026
- 某水电站×kN坝顶双向门机安装质量检测记录表
- GB/T 1401-1998化学试剂乙二胺四乙酸二钠
- GA 884-2018公安单警装备催泪喷射器
- 名师课件:部编版(新)高中历史必修中外历史纲要(上)第20课《北洋军阀统治时期的政治经济与文化》
- 汉字六书课件
- 中国文字发展史课件
评论
0/150
提交评论