第五章 详细设计2
软件工程第五章

5.2.1、结构化程序设计技术
1. 结构化设计技术的形成
--对“取消GOTO 语句”的争论 --只用“顺序”、“选择”和“循环”三 种基本控制结构就能实现任何单入口单出 口的程序设计 --程序应该只有一个入口和一个出口;自 顶向下,逐步求精
5.2.1、结构化程序设计技术
2. 结构化设计技术的概念 经典定义:“如果一个程序的代码仅仅通 过顺序、选择和循环这三种基本控制结构 进行连接,并且每个代码块只有一个入口 和一个出口,则称这个程序为结构化的。”
1. 模块的逻辑结构设计 逻辑结构设计是结合所开发项目的具体要 求和对每个模块规定的功能,开发出模块 处理的详细算法,选择某种适当的工具加 以精确描述。
5.1.1、详细设计的任务
详细设计阶段的主要任务:
2. 模块的数据设计 为在需求分析阶段的数据对象定义逻辑数 据结构,并且对不同的逻辑数据结构进行 不同的算法设计,选择最有效的方案。同 时,确定实现逻辑数据结构所必需的操作 模块,以便了解数据结构的影响范围。
第五章
详细设计
详细设计
教学提示:
上一章学习了概要设计的有关知识,本章将 介绍详细设计的内容。主要包括详细设计的 任务与原则、设计方法以及详细设计规格说 明及评审等。
详细设计
教学目标:
理解详细设计的设计任务和设计原则。掌握 详细设计的方法和常用工具的使用,了解详 细的设计规格说明书的内容和评审。
5.2.1、结构化程序设计技术
5.2.1、结构化程序设计技术
2. 结构化设计技术的概念 当前结构化程序设计的基本内容如下: (1) 程序的控制结构一般采用顺序、选择、循环3 种结构来构成,确保结构简单。 (2) 使用单入口单出口的控制结构。 (3) 程序设计中应尽量少用GOTO 语句,以确保 程序结构的独立性。 (4) 采用自顶向下逐步求精方法完成算法设计。
第五章2引言、正文布局和小标题制作

藏雪鸡又名淡腹雪鸡,是青藏高原特产的珍禽,对其地 理分布、生态习性等均做过报道[1-7],唯对其生长发育的 观测资料很少,笔者于1992年对------做了较为详 细的观察和测定,现将结果报告如下:
这种写法要注意紧扣研究对象,不要偷换概念 这种写法要注意紧扣研究对象,
点评 研究对象是民生新闻中的特写,而不是民生新闻, 研究对象是民生新闻中的特写,而不是民生新闻, 但引言唠唠叨叨都是写的民生新闻,而且抄的别人 但引言唠唠叨叨都是写的民生新闻, 的陈腔滥调。 的陈腔滥调。 如果从特写引入,一两句话直接点到中心论点, 如果从特写引入,一两句话直接点到中心论点,也 就是核心的亮点,这样会好很多。 就是核心的亮点,这样会好很多。
电视民生新闻目前在全国遍地开花,形成了一股强劲的发展势头。关于“民 生新闻”的概念,在学界和业界众说纷纭, “民生新闻”也算不上是一个有关 新闻体裁样式的科学概念。传统新闻学领域对于新闻体裁样式的划分都是遵循着 单一的标准,而民生新闻是一个由多种标准共同作用的划分结果。但理论上没有 定论并不代表理论研究的缺乏,更不妨碍民生新闻的兴起与发展。 自2002年江苏电视台城市频道推出了《南京零距离》,这个被认为是开大时 段城市民生电视新闻节目的先河以来,民生新闻在全国范围内快速蔓延。由于其 全新的平民视觉,关注广大平民百姓的日常生活以及与他们密切相关的社会政治 经济文化,大胆突破传统的传播模式,注重观众的参与性和双向交流性,主持人 的形象、语言和风格趋于平民化设计,使民生新闻一路走红,几年来更是不断壮 大,几乎所有地方频道都有民生新闻栏目。 然而时至今日,民生新闻却处于一种发展疲惫期,受众在满足了一把感官刺 激后渐渐对此失去兴趣,导致收视率下滑。其原因就是电视民生新闻对自身核心 价值观把握有偏离,不论如何的火爆都掩饰不住民生新闻市井化的倾向。从新闻 画面的角度来看,千篇一律的百姓生活场景,没有重点的琐碎事件,展现的又是 表面现象,无法挖掘真正的新闻价值,必然被知识层面日益增长、人文素质不断 提高的受众所抛弃。许多记者往往又十分生硬、随便地拍摄事件,空洞琐碎的镜 头使编辑也束手无策,使得制作出来的新闻因此失去了说服力与感染力。本文就 本文就 结合案例具体分析特写镜头在民生新闻中的各种作用,从中总结出经验, 结合案例具体分析特写镜头在民生新闻中的各种作用,从中总结出经验,以便电 视民生新闻合理运用特写镜头,提高自身的新闻价值与可视性。 视民生新闻合理运用特写镜头,提高自身的新闻价值与可视性。
详细设计

chapter__5
19
yyy y Nຫໍສະໝຸດ n C3 : a=c?yyN N N
n C4 : b=c?
y NN Y N
n A1 :非三角形
X
n A2:不等边三角形
X
n A3:等腰三角形
X
n A4:等边三角形
X
n A5:不可能
X
X
chapter__5
14
伪代码
程序设计语言(PDL),也称为结构化英语或 者伪代码,它是一种混合语言,它采用一种语言 (例如英语)的词汇同时采用类似另外一种语言 (例如,结构化程序语言)的语法。
模块和接口
将对象定义为模块 定义对象之间的接口和对象的总的结构
实例
chapter__5
9
本章要点
一、详细设计的概述 二、详细设计方法 三、详细设计工具 四、案例分析
chapter__5
10
详细设计工具
图形符号的设计方式 表格的设计方式 伪代码
chapter__5
伪代码实例
chapter__5
15
相关文档
《软件项目详细设计》
chapter__5
16
本章要点
一、详细设计的概述 二、详细设计方法 三、详细设计工具 四、案例分析
chapter__5
17
案例分析
n 《综合信息管理平台》 详细设计
chapter__5
18
小结
详细设计方法
结构化详细设计方法 面向对象的详细设计方法
chapter__5
6
详细设计
结构化的详细设计方法 面向对象的详细设计方法
chapter__5
第五章 物流设施规划及其布置设计

• 大规模的配送中心是由许多参加单位共同进行系统规划与实施的。 为了保证系统的统一性,要制定共同遵守的规则,如通讯和信号的 接口、控制方式等。
• (5) 服务水平或内部服务单位划分(S)
• ①服务水平。物流水平包括交货时间、供应保证度等,服 务水平应是合理物流成本下的服务品质。
• ②内部服务单位划分。服务单位划分影响到物流中心的服 务能力,也就说其作业区域(单位)与辅助服务区域(单 位)的设置就不同,其服务功能要素就存在差异,如存储 型的物流中心,其主要功能是仓储,就必须考虑设置面积 占的比重大仓库,如果是转运型的物流中心,其货物换装 理货服务很重要,就应设施面积大的换装理货的场地。
• (4) 物流通路(R)
• 物流通路可从两方面理解,一是供应链物流渠道,因物流 中心在供应链(物流通道)中的位置不一样,其服务的对 象就不一样,也就是说其功能就不一样。二是指的货物在 物流中心根据作业流程安排在作业区域间的流转路线,它 反映货物在物流中心内的流向和距离,它的合理性影响到 物流中心的作业效率与作业成本,特别是商品搬运的效率、 分拣配货的效率。
• (1)配送对象或客户(E)
• 往往客户对象不同,其订货要求就不一样。 也就说其订单品种、规模、数量就存在很大 差异,那么物流中心的设施设备、工具、作 业流程、功能区划与布置等都会存在区别。
• 如果配送对象是经销商,则品种订货量大, 那么物流中心出入库功能要强;
• 如果配送对象是零售店,订货量小、品种多, 物流中心的分拣功能要强。
人事管理系统毕业设计

课程论文题目:人事管理系统学院:计算机学院班级名称:学号:学生姓名:组员姓名:指导教师:年月日摘要随着计算机技术的飞速开展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。
本系统结合公司实际的人事管理制度,经过实际的需求分析,采用功能强的Visual Studio2021作为开发工具而开发出来的单机版人事管理系统。
整个系统从符合操作简便、界友好、灵活、实用、平安的要求出发,完成人事管理的全过程,包括新进员工参加时人事档的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人事管理工作以及新进员的新增、老员工修改等管理工作。
经过实际使用证明,本文所设计的人事管理系统可以满足公司人事管理方面的需要。
关键词:VS、数据库、窗体、测试目录第一章引言 (2)第二章系统调研及可行性分析 (4)系统调研 (4)2.2 可行性分析概述 (4)2.3 技术可行性分析 (5)第三章系统分析 (6)3.1 系统需求分析 (6)系统目标 (7)第四章系统总体设计 (8)系统概述 (8)系统功能模块图 (8)模块功能介绍 (9)界面设计 (10)第五章详细设计 (11)5.1 系统数据库设计 (11)用户管理模块设计 (15)用户管理后台代码 (17)人事变动模块设计 (21)人事变动后台代码 (22)小结 (32)参考文献 (33)第一章引言在这个信息迅速膨胀的社会,各行各业所要管理、涉及的数据信息量越来越多、越来越大。
随着当前许多的中、小型企业的开展壮大,员工的数量也在不断的增加。
随之而来的管理本钱也在不断的提高。
考虑到当前大量企业的人事管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。
因此根据局部企业提供的需求,设计此企业人事管理系统,以帮助企业到达人事管理办公自动化、节约管理本钱、提高企业工作效率的目的。
国外专家学者对人事管理系统的研究起步比拟早,兴旺国家的企业非常注重自身人事管理系统的开发。
数字图像处理系统毕业设计论文

毕业设计说明书基于ARM的嵌入式数字图像处理系统设计学生姓名:张占龙学号: 0905034314学院:信息与通信工程学院专业:测控技术与仪器指导教师:张志杰2013年 6月摘要简述了数字图像处理的应用以及一些基本原理。
使用S3C2440处理器芯片,linux内核来构建一个简易的嵌入式图像处理系统。
该系统使用u-boot作为启动引导程序来引导linux内核以及加载跟文件系统,其中linux内核与跟文件系统均采用菜单配置方式来进行相应配置。
应用界面使用QT制作,系统主要实现了一些简单的图像处理功能,比如灰度话、增强、边缘检测等。
整个程序是基于C++编写的,因此有些图像变换的算法可能并不是最优化的,但基本可以满足要求。
在此基础上还会对系统进行不断地完善。
关键词:linnux 嵌入式图像处理边缘检测AbstractThis paper expounds the application of digital image processing and some basic principles. The use of S3C2440 processor chip, the Linux kernel to construct a simple embedded image processing system. The system uses u-boot as the bootloader to boot the Linux kernel and loaded with file system, Linux kernel and file system are used to menu configuration to make corresponding configuration. The application interface is made using QT, system is mainly to achieve some simple image processing functions, such as gray, enhancement, edge detection. The whole procedure is prepared based on the C++, so some image transform algorithm may not be optimal, but it can meet the basic requirements. On this basis, but also on the system constantly improve.Keywords:linux embedded system image processing edge detection目录第一章绪论 (1)1.1 数字图像处理概述 (1)1.2 数字图像处理现状分析 (5)1.3 本文章节简介 (8)第二章图像处理理论 (8)2.1 图像信息的基本知识 (8)2.1.1 视觉研究与图像处理的关系 (8)2.1.2 图像数字化 (10)2.1.3 图像的噪声分析 (10)2.1.4 图像质量评价 (11)2.1.5 彩色图像基本知识 (11)2.2 图像变换 (13)2.2.1 离散傅里叶变换 (13)2.2.2 离散沃尔什-哈达玛变换(DWT-DHT) (20)2.2.3 离散余弦变换(DCT) (21)2.2.4 离散图像变换的一般表达式 (23)2.3 图像压缩编码 (24)2.3.1 图像编码的基本概念 (24)2.4 图像增强和复原 (24)2.4.1 灰度变换 (24)2.4.2 图像的同态增晰 (26)2.4.3 图像的锐化 (27)2.5 图像分割 (27)2.5.1 简单边缘检测算子 (27)2.6 图像描述和图像识别 (28)第三章需求分析 (28)3.1 系统需求分析 (28)3.2 可行性分析 (28)3.3 系统功能分析 (29)第四章概要设计 (29)4.1 图像采集 (30)4.2 图像存储 (31)4.3 图像处理(image processing) (31)4.4 图像显示 (32)4.5 网络通讯 (32)第五章详细设计 (32)5.1 Linux嵌入式系统的构建 (33)5.1.1 启动引导程序的移植 (33)5.1.2 Linux内核移植 (33)5.1.3 根文件系统的移植 (34)5.2 图像处理功能的实现 (34)5.2.1 彩色图像的灰度化 (34)5.2.2 灰度图的直方图均衡化增强 (35)5.2.3 图像二值化 (35)5.2.4 边缘检测 (36)第六章调试与维护 (36)附录 A (37)参考文献 (43)致谢 (44)第一章绪论1.1 数字图像处理概述数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
【课程练习】习题解答-第五章 详细设计

第五章详细设计1.详细设计的基本任务是什么?有哪几种描述方法?详细设计的基本任务:(1)为每个模块进行详细的算法设计。
(2)为每个模块内的数据结构进行设计。
(3)对数据库进行设计,即确定数据库的物理结构。
(4)其他设计:a.代码设计b.输入/输出格式设计。
c.人机对话设计。
(5)编写详细设计说明书。
(6)评审。
描述方法(三种):a.程序流程图b.PAD图 C.过程设计语言2.结构化程序设计基本要求要点是什么?a.采用自顶向下、逐步求精的程序设计方法b.使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。
2).用选择方式对过程分解,确定某个部分的执行条件。
3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。
c.主程序员组的组织形式。
3.简述Jackson 方法的设计步骤。
Jsp 方法一般通过以下5个步骤来完成设计:a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。
b.找出输入数据结构和输出数据结构中有对应关系的数据单元。
c.按一定的规则由输入、输出的数据结构导出程序结构。
d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。
e.用伪码写出程序。
4.请使用流程图、PAD图各PDL语言描述下列程序的算法。
(1)在数据A(1)-A(10)中求最大数和次大数。
(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。
答:(1)1)流程图:2)PAD图3)PDL语言定义n1=n2=0输入A(1).......A(10)n1=n2=A(1)while i>10if A(i)>=n1n2=n1n1=A(i)end while5.用PAD图描述下面问题的控制结构。
有一个表A(1)、A(2)、........A(n),按递增顺序排列。
给定一个Keyw值,在表中用折半查找。
若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。
软件工程-详细设计

具
(3)程序流程图不便于表示数据结构。
前一页
程 序 流 程 图
前一页
盒图(N-S图)
详
Nassi和Shneiderman提出盒图
细
(1)功能域(一个特定控制结构的作用
设 域)明确,可以从盒图上一眼就看出来。
计
(2)不能够随意转移控制。
的 (3)很容易确定局部和全局数据的作用 域。
工
(4)很容易表现嵌套关系,也可以表示
序 择一个。
设 3.重复结构
计 方
重复结构的数据,根据使用时的条件由一个数 据元素出现零次或多次构成。
法
前一页
JACKSON图
J
JACKSON图
A
C
K
S O
Jackson图的优点:便于表示层 次结构,而且是对结构进行自顶向下分 解的有力工具;形象直观可读性好;
N
既能表示数据结构也能表示程序结构
程
细
使用最广泛、也是用得最混乱的一种描述软件设计 的方法。总的趋势是正在逐步被淘汰 。
设
(1)程序流程图在本质上并不是逐步求精的好
计
工具,它诱使程序员过早地考虑程序的控制流程, 而不去考虑程序的全局结构。
的
(2)程序流程图中用箭头代表控制流,因此程
工
序员不受任何约束,可以完全不顾结构化程序设计 的原则,随意转移控制。
描述程序处理过程的工具称为 详细设计的工具,分为图形、表格 和语言三类。都要求能提供对设计 的无歧义(无二义性)的描述。
前一页
详细设计的工具
• 程序流程图
主 要
• 盒图(N-S图) • PAD图
内
• 判定表
容
• 判定树
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详细设计阶段的根本目标是确定应该怎样具 体地实现所要求的系统。 详细设计的结果基本上决定了最终的程序代 码的质量。
5.1 结构程序设计
早在1965年,E.W.Dijkstra就提出结构程序设 计的概念。 1966年,Bohm和Jacopini证明了只用三种基 本的控制结构就能实现任何单人口单出口的程序。 这三种基本的控制结构是“顺序”、“选择” 和“循环”。
其中第三条需要根据下列规则: 第一,为每对有对应关系的数据单元,按照它们 在数据结构图中的层次在程序结构图的相应层次画一 个处理框。 第二,根据输入数据结构中剩余的每个数据单元 所处的层次,在程序结构图的相应层次分别为它们画 上对应的处理框。 第三,根据输出数据结构中剩余的每个数据单元 所处的层次,在程序结构图的相应层次分别为它们画 上对应的处理框。
5.2.1 程序流程图
程序流程图又称为程序框图,它是历史最悠久使 用最广泛的描述软件设计的方法。它使用了一些系统 流程图中没有的符号。如下图所示:
程序流程图一直是软件设计的主要工具。 它的主要优点是:对控制流程的描绘很直观,便 于初学者掌握。 它的主要缺点是: 1. 程序流程图本质上不是逐步求精的好工具。它 诱使程序员过早的考虑程序的控制流,而不去考虑程 序的全局结构。 2. 程序流程图中用箭头代表控制流,因此程序员 可以不受任何约束,可以完全不顾结构程序设计的精 神,随意转移控制。 3. 程序流程图不易表示数据结构。
分析字符 or 字符不是空格 处理非空格 seq pointer :=pointer+1 处理非空格 end 分析字符 end 分析字符串 end 印空格数 seq 印出空格数目 印空格数 end totalsum :=totalsum+sum 读入字符串 处理字符串 end 程序体 end 印总数 seq 印出空格总数 印总数 end 关闭文件 停止 统计空格 end
和图5.11(d)所示重复结构对应的伪码,其中 ‘iter’、 ‘until’、 ‘while’和‘end’是关键字(重复 结构有until和while两种形式),cond是条件: A iter until (或while) cond B A end
举例:
一个正文文件由若干记录组成,每个记录是一 个字符串。要求统计每个记录中空格字符的个数, 以及文件中空格字符的总个数。要求的输出数据格 式是,每复制一行输入字符串之后,另起一行印出 这个字符串中的空格数,最后印出文件中空格的总 个数。 解析: 对于这个简单的例子而言。 第一步:确定输入和输出数据的结构。下图是用 Jackson图描绘的输入/输出数据结构。
下面以行李托运费的算法为例说明判定表的组织方 式。 假设某航空公司规定,乘客可以免费托运重量不超 过30公斤的行李。当行李重量超过30公斤时,对头等舱 的国内乘客超重部分每公斤收费4元,对其他舱的国内乘 客超重部分每公斤收费6元,对国外乘客超重部分每公斤 收费比国内乘客多一倍,对残疾乘客超重部分每公斤比 正常乘客少一半。 用判定表可以清楚的表示与上述每种条件组合相对 应的动作(算法),如下页图所示: 其中“T”表示条件成立,“F”表示条件不成立,空 白表示这个条件的成立与否并不影响对动作的选择。 画“×”表示做它左边的那项动作,空白表示不做这 项动作。
5.2.5 判定树
判定树是判定表的变种,也能清晰地表示复杂的 条件组合与应做的动作之间的对应关系,是一种比较 常用的系统分析和设计工具。 与上表判定表对应的判定树如下:
5.2.6 过程设计语言 过程设计语言(PDL)
PDL也称为伪码,它是用正文形式表示数据和处理 过程的设计工具。 PDL具有严格的关键字外部语法,用于定义控制结 构和数据结构,然而,PDL表示实际操作和条件的内部 语法通常又是灵活自由的,以便可以适应各种工程项 目的需要,它使用一种语言的词汇,却使用另一种语 言的语法。 它具有以下特点: 1. 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。 2. 自然语言的自由语法,它描述处理特点。
5.3.1 Jackson图 图
它的逻辑数据结构只有三种:顺序、选择和重复。 顺序结构:它的数据由一个或多个数据元素组成, 每个元素按确定次序出现一次。结构图如下图所示:
选择结构:它的数据包括两个或多个数据元素,每 次使用这个数据时按一定条件从这些数据元素中选择一 个。下图所示的是三个中选一个结构的Jackson图:
从理论上说只用那三种基本控制结构就可 以实现任何单入口单出口的程序。 但是为了实际使用方便,还常常允许使用 DO-UNTIL和DO-CASE两种控制结构。它们的 流程图如上图所示。
5.2 详细设计的工具
描述程序处理过程的工具称为详细设计的工 具,它们可以分为图形、表格和语言三类。 不论是哪类工具,对它们的基本要求都是能 提供对设计的无歧义的描述,也就是应该能指明 控制流程、处理功能、数据组织以及其他方面的 实现细节,从而在编码阶段能把对设计的描述直 接翻译成程序代码。
第五步:用伪码表示程序处理过程。从图5.14可 以得出下列代码:
统计空格 seq 打开文件 读入字符串 totalsum : = 0 程序体 iter until文件结束 处理字符串 seq 印字符串 seq 印出字符串 印出字符串 end sum := 0 pointer := 1 分析字符串 iter until 字符串结束 分析字符 select 字符是空格 处理空格 seq sum :=sum+1 pointer :=pointer+1 处理空格 end
使用PAD图,开始时设计者可以定义一个抽象的程 序,随着设计工作的深入而使用def符号逐步增加细节, 直到完成详细设计,如下图所示:
5.2.4 判定表
判定表能够清晰地表示复杂的条件组合与应做的 动作之间的对应关系。一张判定表由四部分组成: 左上部列出所有条件。 左下部是所有可能做的动作。 右上部是表示各种条件组合的一个矩阵。 右下部是和每种条件组合相对应的动作。 判定表右半部的每一列实质上是一条规则,规定 了与特定的条件组合相对应的动作。
5.2.7 模块开发文件夹
模块开发文件夹是组织和保存在软件开发过程种 不断产生出来的文档资料的一种有效方法,用这种方 法保存和管理文档既方便又容易查阅。 文件夹的封面上列出工程项目的名称、模块名字、 程序员姓名、完成日期、修改日期、源程序行数、目 标代码长度、对模块的简要描述、以及设计、编码、 单元测试和集成测试等阶段的起止时间等等。 文件夹内应该保存对模块详细设计结果的描述、 源程序清单、测试时间、修改的源程序清单、最终的 源程序清单、测试方案、测试软件和测试结果等等。
5.2.3 PAD图 图
PAD是问题分析图(Problem Analysis Diagram)的 英文缩写。它用二维树形结构的图来表示程序的控制 流。下图给出了PAD图的基本符号:
其中: (a)顺序(先执行P1后 执行P2) (b)选择(IF C THEN P1 ELSE P2) (c)CASE型对分支 (d)WHILE型循环 (WHILE C DO P) (e)UNTIL型循环 (REPEAT P UNTIL C) (f)语句标号 (g)定义
重复结构:它的数据,根据使用时的条件由一个 数据元素出现零次或多次构成。下图表示重复结构的 Jackson图:
Jackson图有下述优点:
便于表示层次结构,而且是对结构进行自顶向下 分解的有力工具。 形象直观可读性好。 既能表示数据结构也能表示程序结构。
5.3.2 改进的 改进的Jackson图 图
Jackson方法中使用的伪码和Jackson图是完全对应 的,下面是和三种基本结构对应的伪码。 和图5.11(a)所示的顺序结构对应的伪码:其中 ‘seq’和‘end’是关键字。 A seq B C D A end
和图5.11(b)所示的选择结构对应的伪码,其 中‘select’、 ‘or’和‘end’示关键字,cond1、cond2 和cond3分别是执行B、C和D的条件: A select cond1 B A or cond2 C A or cond3 D A end
Jackson结构程序设计方法基本上由下述五个步骤 组成: 1. 分析并确认输入数据和输出数据的逻辑结构, 并用Jackson图描述这些数据结构。 2. 找出输入数据结构和输出数据结构中有对应关 系的数据单元。 3. 从描述数据结构的Jackson图导出描绘程序结构 的Jackson图。 4. 列出所有操作和条件,并且把它们分配到程序 结构图的适当位置。 5. 用伪代码表示程序。
第二步:在确定了输入/输出数据结构之后,下 一步是分析确定在输入数据结构和输出数据结构中由 有对应关系的数据单元。 第三步:从数据结构中导出程序结构图。如下:
第四步:列出所有操作和条件,并且把它们分配到 程序结构图的适当位置。 首先,列出统计空格个数需要的全部操作和条件如 下: (1)停止 (2)打开文件 (3)关闭文件 (4)印出字符串 (5)印出空格数目 (6)印出空格总数 7 sum (8)totalsum : =totalsum+sum 8 totalsum (7)sum : =sum+1 (9)读入字符串 (10)sum : = 0 (11)totalsum : = 0 (12)pointer : = 1 (13)pointer : =pointer+1 I(1)文件结束 I(2)字符串结束 S(3)字符是空格 其中,sum是保存空格个数的变量,totalsum是保存 空格总数的变量,pionter是指示当前分析的字符的在字符 串中的位置的变量。 得到如下图形:
5.2.2 盒图(N_S图) 盒图( 图
这种盒图是不允许违背结构程序设计精神的图形 工具。它有下述特点: 1. 功能域明确,可以从盒图上看出来。 2. 不可能任意转移控制。 3. 很容易确定局部和全程数据的作用域。 4. 很容易表现嵌套关系,也可以表示模块的层次 结构。