第四章 结构化设计3-详细设计.ppt_第1页
第四章 结构化设计3-详细设计.ppt_第2页
第四章 结构化设计3-详细设计.ppt_第3页
第四章 结构化设计3-详细设计.ppt_第4页
第四章 结构化设计3-详细设计.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 结构化设计,4.5 详细设计,详细设计,详细设计阶段的目标是什么? 详细设计与总体设计的区别是什么? 程序设计方法学是什么? 结构化程序设计方法是什么? 详细设计的工具?,详细设计阶段的目标,详细设计阶段的根本目标是 确定怎样具体的实现所要求的系统; 也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以将这个描述直接翻译成用某种程序设计语言书写的程序。,详细设计与总体设计的区别,在总体设计阶段,数据项和数据结构以比较抽象的方式描述。 例如,总体设计可以声明一组值从概念上表示一个矩阵,详细设计就要确定用什么数据结构来实现这样的矩阵; 比如特殊的稀疏矩阵技术等

2、等 详细设计要提供关于算法的更多细节,为每个模块增加足够的细节,使得程序员能够以相当直接的方法编码每个模块。 例如,总体设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。,详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有: 详细的算法, 数据表示和数据结构, 实施的功能和使用的数据之间的关系。 每个模块被编码成过程、子程序、函数或其他类型的命名实体。,程序设计方法学,以程序设计方法为研究对象的学科。 主要涉及用于指导程序设计工作的原理和原则,以及基于这些原理和原则的设计方法和技术,着重研究各种方法的共性和个性,各自的优缺点。 针对某一领域或某一领

3、域的特定一类问题,所用的一整套特定程序设计方法所构成的体系 目前已经出现了多种程序设计方法学,例如:结构化程序设计方法学,各种逻辑程序设计方法学,函数式程序设计方法学,面向对象程序设计方法学等。,结构化程序设计方法,结构化程序设计是一种结构性的编程方法。 其中结构性主要反映如下: 第一:编程工作为一演化过程; 即按抽象级别依次降低,逐步精化,最终得出所需程序的方法编程; 第二,按模块组装的方法编程; 也就是将所需程序编制成只含顺序构造,判定构造以及重复构造,其中每一个构造只允许一个入口和一个出口。,其中,顺序结构,选择结构和循环结构构成了结构化程序设计的核心,它们组合使用 可以实现任意复杂的处

4、理逻辑,除此之外无需其他控制结构。,(1)是顺序结构,先执行A再执行B;(2)是IF-THEN-ELSE型选择; (3)DO-WHILE循环结构,用顺序结构和循环结构完全可以实现选择结构。,用顺 序和 循环 结构 表示选择结构,结构化程序设计的目标,使程序的控制流程线性化 即程序的动态执行顺序符合静态书写结构,这就增强了程序的可读性,不仅容易理解、调试、测试和排错,而且给程序的形式化证明带来了方便。,GOTO语句,两种观点: GOTO语句是构成程序结构混乱不堪的主要原因,一切高级程序设计语言应该删除GOTO语句。 GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句能使写出的程序更加

5、简洁,并且GOTO语句可直接得到硬件指令的支持。 关于GOTO语句讨论的实质在于: 程序设计首先是讲究结构,还是讲究效率。 好结构的程序不一定是效率高的程序。 结构化程序设计的观点是要求设计好结构的程序。宁可牺牲一些效率,也要保证程序有一个好的结构。,详细设计的工具,详细设计的任务 是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计。 详细设计的工具可以分为图形、表格、语言三种,包括 程序流程图、 盒图(N-S图)、 PAD图、 类程序设计语言(PDL) 无论哪类工具,对它们的基本要求都是能提供对设计的无歧义的描述,即能指明控制流程、处理功能、数据组织以及其他方面的实现细节,

6、从而在编码阶段能把设计描述直接翻译成程序代码。,程序流程图(Program Flow Chart),程序流程图又称为程序框图。 优点是: 对控制流程的描绘很直观,便于初学者掌握。 缺点是: (1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构; (2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制; (3)程序流程图不易表示数据结构;,(1) 顺序结构(sequential structure),(2) 选择结构(selective structure),(4) 后判定型循环结构(unti

7、l-loop structure),(3) 循环结构(do-while structure),(5) 多分支结构 (do-case structure),主要符号,示例,虚线表示嵌套关系,程序流程图的标准符号,流线表示控制流的流向。在自上而下,或自左而右的自然流向情形,流向可不加箭头,否则必须在流线上加上箭头。 虚线表示两个或多个符号间的选择关系。(如果虚线连接了两个符号,则表示这两个符号中只选用其中的一个) 外界符及内接符表示流线在另外一个地方接续,或者表示转向外部或从外部转入。,循环的标准符号 注解的使用,循环的界限设有一对特殊的符号,注解符可用来表示注解内容,多出口判断,判断有一个入口,

8、但有多个可选出口,N-S盒图(Box Diagram,N-S图由Nassi &Shneiderman 1973年提出,又称盒图(Box Diagram): 。 处于要有一种不允许违背结构程序设计精神的考虑。 同程序流程图相比,它以一种结构化的方法严格地限制从一个处理到另一个处理的控制转移。,盒图的基本符号,每一个N-S图开始于一个大的矩形,表示它所要描述的模块,该矩形的内部被分成不同的部分,分别表示不同的子处理过程,这些子处理过程又可以进一步分解成为更小的部分。但是每次分解只能使用图给出的基本符号,因此最终得到的详细设计必然是结构化的。,示例,N-S图的特点, 没有箭头,不允许随意转移控制;

9、每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确; 局部及全程数据的作用域易见; 易表现嵌套关系(embedded structure)以及模块的层次结构。,N-S图的嵌套定义形式,PAD,PAD(Problem Analysis Diagram):日立公司,1973 。又称问题分析图。 它用二维树形结构的图表示程序的控制流。,问题分析图(PAD)的基本符号,PAD图的主要优点,(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序; (2)PAD图所描述的程序结构十分清晰; 图中最左边的竖线是程序的主线,即第一层控制结构。 随着程序

10、层次的增加,PAD图逐渐向右延伸,每增加一个层次,图像向右扩展一条竖线。 PAD图中竖线的总条数就是程序的层数。,PAD描述的示例,(3)用PAD图表现程序逻辑,易读、易懂、易记; 程序从图中最左边上端的结点开始执行,自上而下,从左向右顺序执行。 (4)很容易将PAD图转换成高级语言源程序; 这种转换可用软件工具自动完成。 (5)既可用于表示程序逻辑,也可用于描述数据结构; (6)PAD图的符号支持自顶向下逐步求精的使用,PAD图是面向高级程序设计语言的;,使用PAD图提供的定义功能来逐步求精,初始的PAD图,使用def符号细化处理P2,练习:请将NS图转化成PAD图,例:N-S图与PAD的转

11、换,开始 ,结束 ,k,PDL (Program Design Language),PDL 是一种用于描述功能模块的算法设计和加工细节的语言,称为设计程序用语言。 它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的内语法可使用自然语言的词汇。,例:,PDL举例,PDL应具备以下特点: 有固定的外语法(keyword);, 有数据说明,例如: TYPE number IS STRING LENGTH (12) TYPE table IS INSTANCE OF symbol_table,有子程序定义与

12、调用机制,例如: PROCEDURE INTERFACE pseudocode lines END 调用时可用:PERFORM USING, 内语法用自然语言描述;,抽象类型,优点:易于实现由PDL到源代码的自动转换。 缺点:不够直观。,PDL,判定表 & 判定树,判定表 & 判定树(Decision Table & Tree) 表示复杂的条件(input)组合与应做动作(output)之间的对应关系。,例: 航空行李托运费的算法 按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;

13、残疾乘客的收费为正常乘客的1/2。,用判定树表示计算行李费的算法,注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试,总 结,结构化方法,包含结构化需求分析方法和结构化软件设计方法。 优点: 结构化方法为了支持问题定义和软件求解,紧紧围绕“过程抽象”和“数据抽象”,给出了完备的符号体系、可操作的过程和相应的表示工具。 这些概念对于规约软件系统的功能是完备的,即它们可以“覆盖”客观世界的一切事物,并且这些概念的语义还相当简单,容易理解和掌握。 结构化方法还给出了控制信息组织复杂性机制。 缺点: 结构化方法没有“摆脱”冯.诺依曼体系结构的影响,捕获的“功能(过程)”和“数据”

14、恰恰是客观事物的易变性质; 并由此建造的系统模型也没有与客观实际系统在结构上保持一致,从而为系统的验证和维护带来了相当大的困难,甚至是“灾难性”的。 就是这些问题,促使了面向对象方法学的产生和发展。,软件设计规格说明书,在完成软件设计之后,应产生设计规约。 设计规约是对软件的组织或其组成部分的内部结构的描述,满足系统需求规约所指定的全部功能及性能要求。 通常有概要设计规约和详细设计规约。,概要设计规约,概要设计规约指明软件的组织结构,其主要内容包括: 系统环境 硬件、软件接口与人机界面 外部定义的数据库 与设计有关的限定条件 设计描述 数据流和主要数据结构 软件模块的结构 模块之间的接口 对每个模块的描述 处理过程外部行为 界面定义 数据结构 必要的注释 文件结构和全局数据 文件的逻辑结构 记录描述以及访问方式 交叉引用信息 有关软件测试等方

温馨提示

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

评论

0/150

提交评论