6-第六章 面向数据结构的设计方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章面向数据结构的设计方法前面介绍的结构化系统设计,是一种面向数据流的设计方法.本章介绍两种其它的设计方法---Jackson方法与LCP方法.它们都是面向数据结构的独立的系统设计方法.常将它们作为辅助的设计方法,配合SD方法使用.
§1 面向数据结构的设计
一.面向数据流的设计
考虑问题的出发点是:数据流.
最终目标:软件的最终SC图.
解决问题的焦点:模块的合理划分.
最佳适用范围:概要设计中,确定软件的结构.
以SD为例,在分析阶段:以数据流图表示软件的逻辑模型;在设计阶段:按照数据流的类型,分别用变换分析或事务分析将它们转换为相应的软件结构.
二.面向数据结构的设计
基本思想:从问题的数据结构导出它的程序结构.作为独立的系统设计方法主要用于小规模数据处理的开发.
考虑问题的出发点是:数据结构.
最终目标:得出程序的过程性描述.
最佳适用范围:详细设计中,确定部分或全部模块的逻辑过程.
三.两种设计方法的共同点
1.遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;
2.均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)
导出程序结构的一组映射规则.
§2 Jackson设计方法
一.Jackson图
Jackson图是Jackson方法的表达工具.
1.Jackson图表达的结构
(a)顺序(b)选择(c)重复
(a)表示A由B、C两部分顺序组成;
(b)表示A可以包含B或C(S代表选择);
(c)表示A由B重复任意次(含零次)构成(I代表重复).
2.Jackson图的应用
(1)表示数据结构
(2)表示程序结构
例:一教职工名册如下:
教职工名册
表头
表体
用Jackson 图表示的数据结构如下
用Jackson图表示的程序结构如下
(3) Jackson伪代码:
为了实现从程序结构到逻辑结构描述的转换,需设计一组相应的伪代码: Jackson伪代码(图解逻辑).下图给出与三种程序结构相对应的Jackson伪代码.其中,带下滑线的字为保留字,cond表示条件.
(a)顺序(b)选择(c)重复
A seq A select cond1
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等工具)
概要分析详细设计2.Jackson方法设计步骤
(1)分析并确定输入数据和输出数据的逻辑结构,用Jackson图描绘这些数据结构.实质是对
求解的问题进行需求分析.用Jackson图表示数据结构时,省略与解题无关的多余信息,仅保留需要用到的数据单元.
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元(即有因果关系,在程序中
可以同时处理的数据单元) 按照下列映射规则, 导出描绘程序结构的Jackson图.
-----为每一对在输入结构和输出结构中有对应关系的单位元画一个处理框;
-----为输入数据结构中每一剩余的数据单元画一个处理框;
-----为输出数据结构中每一剩余的数据单元画一个处理框;
-----所有处理框在程序结构上的位置, 应与由它处理的数据单元在数据结构Jackson
图上的位置相对应(程序中具有因果关系).
(3)写出程序的过程性表示:列出所有操作和条件,并把它们分配到程序结构图的适当位置 (4)用Jackson 伪代码写出与程序结构图对应的过程性表示. 3.应用举例1
输入卡片分析程序.一叠卡片按内容分为K1、K2、K3三类,卡片叠的排列规则是:以K1卡始,以K2卡终.起始卡之前属前置部分,不含K1卡; 起始卡与终了卡之间属分批部分,不含K2卡.
如图:
...
前置部分 起始卡 分批部分 终了卡
试用Jackson 方法编一程序,要求依次完成下列分析工作: -----统计起始卡前卡片的张数,存入A; -----打印起始卡的内容;
-----统计起始卡后出现的K1卡和K3卡总批数,存入B; -----统计起始卡后出现的K1卡的张数,存入C; -----统计起始卡后出现的K3卡的张数,存入D; -----打印终了卡的内容;
-----打印A 、B 、C 、D 四个统计值. 求解步骤:
第一步:画数据结构图. 输入卡片文件数据结构图
输出文件数据结构图
对输入数据与输出数据两图进一步细化:
I 2
S 3
I 4
I 5
第三步:写出程序的过程性表示:列出所有操作和条件,并把它们分配到程序结构图的适当位置
程序结构图中所需的有关操作: 有关条件: ① 打开卡片文件 ⑦ A :=A+1 I 1:until 出现K1卡