6-第六章 面向数据结构的设计方法.doc_第1页
6-第六章 面向数据结构的设计方法.doc_第2页
6-第六章 面向数据结构的设计方法.doc_第3页
6-第六章 面向数据结构的设计方法.doc_第4页
6-第六章 面向数据结构的设计方法.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章 面向数据结构的设计方法前面介绍的结构化系统设计,是一种面向数据流的设计方法.本章介绍两种其它的设计方法-Jackson方法与LCP方法.它们都是面向数据结构的独立的系统设计方法.常将它们作为辅助的设计方法,配合SD方法使用.1 面向数据结构的设计一. 面向数据流的设计考虑问题的出发点是:数据流.最终目标:软件的最终SC图.解决问题的焦点:模块的合理划分.最佳适用范围:概要设计中,确定软件的结构.以SD为例,在分析阶段:以数据流图表示软件的逻辑模型;在设计阶段:按照数据流的类型,分别用变换分析或事务分析将它们转换为相应的软件结构.二. 面向数据结构的设计 基本思想:从问题的数据结构导出它的程序结构.作为独立的系统设计方法主要用于小规模数据处理的开发.考虑问题的出发点是:数据结构.最终目标:得出程序的过程性描述.最佳适用范围:详细设计中,确定部分或全部模块的逻辑过程.三. 两种设计方法的共同点1. 遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;2. 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则.2 Jackson设计方法一. Jackson图 Jackson图是Jackson方法的表达工具. 1.Jackson图表达的结构(a)顺序 (b)选择 (c)重复AB*AB0C0ACBB*AAB0C0BCA S I(a)表示A由B、C两部分顺序组成;(b)表示A可以包含B或C(S代表选择);(c)表示A由B重复任意次(含零次)构成(I代表重复). 2.Jackson图的应用(1)表示数据结构(2)表示程序结构例:一教职工名册如下: 教职工名册姓 名类 别津 贴 表头 表体 用Jackson图表示的数据结构如下名册行*栏名行姓名表头表体表名行类别教龄津贴0工龄津贴0津贴 用Jackson图表示的程序结构如下产生名册文件产生行*产 生栏名行产生姓名产生表头产生表体产 生表名行产生类别产 生0教龄津贴产 生0工龄津贴产生津贴 (3) Jackson伪代码: 为了实现从程序结构到逻辑结构描述的转换,需设计一组相应的伪代码: Jackson伪代码(图解逻辑).下图给出与三种程序结构相对应的Jackson伪代码.其中,带下滑线的字为保留字,cond表示条件.(a)顺序 (b)选择 (c)重复A seq A select cond1 until B B A iter cond C or cond2 while end A C B end A end A二. Jackson设计方法1.Jackson方法设计步骤与SD方法设计步骤图解比较Jackson方法 映射 数据结构 程序结构 程序的过程表示 (Jackson图) (Jackson图) (Jackson伪代码) 程序分析 程序设计SD方法 映射 问题结构 软件结构 各模块的过程描述 (DFD图) (SC图) (PDL等工具) 概要分析 详细设计2Jackson方法设计步骤 (1)分析并确定输入数据和输出数据的逻辑结构,用Jackson图描绘这些数据结构.实质是对求解的问题进行需求分析.用Jackson图表示数据结构时,省略与解题无关的多余信息,仅保留需要用到的数据单元. (2)找出输入数据结构和输出数据结构中有对应关系的数据单元(即有因果关系,在程序中可以同时处理的数据单元) 按照下列映射规则, 导出描绘程序结构的Jackson图.-为每一对在输入结构和输出结构中有对应关系的单位元画一个处理框;-为输入数据结构中每一剩余的数据单元画一个处理框;-为输出数据结构中每一剩余的数据单元画一个处理框;-所有处理框在程序结构上的位置, 应与由它处理的数据单元在数据结构Jackson图上的位置相对应(程序中具有因果关系).(3)写出程序的过程性表示:列出所有操作和条件,并把它们分配到程序结构图的适当位置(4)用Jackson伪代码写出与程序结构图对应的过程性表示.3.应用举例1输入卡片分析程序.一叠卡片按内容分为K1、K2、K3三类,卡片叠的排列规则是:以K1卡始,以K2卡终.起始卡之前属前置部分,不含K1卡; 起始卡与终了卡之间属分批部分,不含K2卡.如图:K3K3K3K1K1K1K3K2K3K2 . . 前置部分 起始卡 分批部分 终了卡试用Jackson方法编一程序,要求依次完成下列分析工作:-统计起始卡前卡片的张数,存入A;-打印起始卡的内容;-统计起始卡后出现的K1卡和K3卡总批数,存入B;-统计起始卡后出现的K1卡的张数,存入C;-统计起始卡后出现的K3卡的张数,存入D;-打印终了卡的内容;-打印A、B、C、D四个统计值.求解步骤:第一步:画数据结构图. 输入卡片文件数据结构图输入卡片文件分批部分前置部分起始卡(K1)终了卡(K2)批*非K1卡*K3批0K1批0K3卡*K1卡*打印文件起始卡内容终了卡内容ABCD统计值 输出文件数据结构图卡片分析程序处理批部分处理前置部分打印起始卡打印终了卡处理批*处理非K1卡*处理K3批0处理K1批0处理K3卡*处理K1卡*打印A、B、C、D 第二步:画程序结构图处理批部分对输入数据与输出数据两图进一步细化:处理前置部分处理非K1卡*统计张数 I2处理批* I1统计总批数处理批类 S3处理K3批0处理K1批0 I4统计批数处理批体处理K1卡* I5统计张数处理K3卡* 第三步:写出程序的过程性表示:列出所有操作和条件,并把它们分配到程序结构图的适当位置 程序结构图中所需的有关操作: 有关条件: 打开卡片文件 A:=A+1 I1:until出现K1卡 读卡片 B:=B+1 I2:until出现K2卡 A:=0 C:=C+1 S3:select是K1卡or是K3卡 B:=0 D:=D+1 I4:while是K1卡 C:=0 11 关闭卡片文件 I5:while是K3卡 D:=0 12 停止将上述判断条件和操作安排到程序结构图的适当位置,如图:卡片分析程序处 理前置部分处理非K1卡*统计张数处理批部分处理批*处理K1卡*处理K1批0处理批类统计总批数统计张数处理K3批0处理批体处理K3卡*统计批数打印起始卡123打印终了卡打印ABCD45621112I1 I2S3 I4 I5 第四步:用Jackson伪代码写出与程序结构图对应的过程性表示(略). 应用举例2.有两个基本文件:考生基本情况文件(简称考生情况文件)和考生高考成绩文件(简称考分文件)如下: 考生情况文件 考分文件准考证号姓 名通讯地址准考证号考 分 将上述两个文件合并成考生新文件如下:考生新文件准考证号姓 名通讯地址考 分试用Jackson方法编一程序,完成上述工作第一步:画数据结构图. 通过分析并确定输入数据和输出数据的逻辑结构, 用Jackson图描绘出它们的数据结构如下:(1) 输入考生情况文件考生记录*准靠证号姓 名通讯地址准靠证号考 分考分文件考生记录* I I(2) 输出考 分考生情况文件考生记录*准靠证号姓 名通讯地址 I . 找出输入数据结构和输出数据结构中对应的数据单元.考生情况文件考生记录*考生新文件考生记录*考分文件考生记录* I I I第二步:画程序结构图 从描绘数据结构的Jackson图确定程序结构的Jackson图遵循如下规则:(1)按照在数据结构图中的层次,在程序结构图的相应层次,为每对有对应关系的数据单元,画一个处理框;(2)根据输入数据结构中剩余的每一个数据单元所处的层次,在程序结构图的相应层次,分别为它们画上对应的处理框;(3)根据输出数据结构中剩余的每一个数据单元所处的层次,在程序结构图的相应层次,分别为它们画上对应的处理框.按上述规则得到程序结构图如下:产生考分产生新文件处理考生记录*产生准靠证号产生姓名产生通讯地址 I(1) 第三步:写出程序的过程性表示,列出所有操作和条件: 停止 打开两个输入文件 建立输出文件 从输入文件中各读一条记录 生成一条新记录将新记录写入输出文件关闭全部文件I(1)文件结束把它们分配到程序结构图的适当位置,如图:产生新文件产生考分处理考生记录*产生准靠证号产生姓名产生通讯地址分析考生记录23471564 I(1)第四步:用Jackson伪代码写出与程序结构图对应的过程性表示 产生新文件seq 打开两个输入文件 建立输出文件 从输入文件中各读一条记录 分析考生记录iter until文件结束 处理考生记录seq 产生准靠证号 产生姓名 产生通讯地址 产生考分 生成一条新记录 将新记录写入输出文件 从输入文件中各读一条记录 处理考生记录end 关闭全部文件 停止 产生新文件end3 Warnier图一.Warnier图 1Warnier图是LCP设计方法中使用的一种专用表达工具.它是由嵌套的花括号、伪代码以及少量说明和符号组成的层次树。 2Warnier图使用的说明与符号符号“或”,表示or说明(1次)顺序结构(n次)重复结构“非”,例如A表示notA(0或1次)选择结构 3Warnier图的功能:(1)表达数据结构(2)表达程序结构在Warnier图中, 花括号代表结构的层次; 圆括号内说明“发生次数”区分结构的类型;“或”与“非”是逻辑符号。 4.最终目的:得出程序处理过程的详细描述.二.Warnier程序设计方法的基本步骤(1) 分析并确定输入数据和输出数据的逻辑结构,用Warnier图描绘这些数据结构;(2) 主要依据输入数据结构导出程序结构, 用Warnier图描绘程序的处理层次;(3) 画出程序流程图,并自上而下依此给出每一个处理框的编序号;(4) 分类写出伪码指令.包括: 输入和输入准备、分支和分支准备、计算、输出和输出准备及子程序调用等指令;(5) 把前一步中分类写出的伪码指令按序号排序,从而得出描述处理过程的伪码。三. 应用举例1(教材P83-86)设计一个系统,定期产生有关顾客帐目的报表。已知的输入文件中每个顾客有一个首记录,后接若干个(0个、1个或多个)活

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论