- 1、本文档共101页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程第6-1章
第六章 详细设计 详细设计的目标是对目标系统给出精确的描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。 详细设计不是具体编写代码,而是要设计出程序的“蓝图”程序员根据这个蓝图写出实际的程序代码。 详细设计的结果关系到程序代码的质量。 第六章 详细设计 6.1 结构程序设计 结构程序设计的概念是E·W·Dijkstra 1965年提出的,他认为:“可以从高级语言中取消GOTO语句” “程序质量与包含GOTO语句的数量成反比”,实际上用顺序结构和循环结构(DO-WHILE)完全可以实现选择结构(又称IF-THEN-ELSE结构) 什么是结构程序设计? 结构程序设计是一种设计程序的技术,它采用自上向下逐步求精的设计方法和单入口单出口的控制结构。 第六章 详细设计 在三种基本控制结构中,就可以实现任何单入口单出口的程序,但从实际使用方便起见,常常允许使用下面二种控制。 第六章 详细设计 6.2 详细设计的工具 6.2.1 程序流程图 程序流程图又称为程序框图,它是历史悠久,使用广泛的描述软件设计的方法,然而它也是使用得最混乱的一种方法。 上一节已经介绍了程序流程图中使用的符号,有一个十分重要的说明,程序流程图中的箭头代表控制流而不是数据流。 第六章 详细设计 流程图从40年代末到70年代中,一直使用它,不过总的趋势是越来越多的人不再使用程序流程图了。程序流程图的主要缺点如下: 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 程序流程图不易表示数据结构。 应该指出,详细的微观程序流程图——每个符号对应于源程序的一行代码,对于提高大型系统的可理解性作用甚微。 第六章 详细设计 6.2.2 盒图(N -S图) 出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称N-S 图,它有下述特点: 功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。 不可能任意转移控制。 很容易确定局部和全程数据的作用域。 很容易表现嵌套关系,也可以表示模块的层次结构。 第六章 详细设计 第六章 详细设计 6.2.3 PAD图 (problem analysis diagram) 它是日立公司提出的(问题分析图)。它是由程序流程图演化来的,它用二维树型结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 PAD图优点: 1. 使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序 2. PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数; 第六章 详细设计 3. 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维数型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行; 4. 很容易将PDA图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。 5. 既可用于表示程序逻辑,也可用于描述数据结构 6. PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。 第六章 详细设计 第六章 详细设计 下面给出了程序流程图、盒图、PAD图以及程序语句的对应关系。请大家现在用一张纸记下来,便于下面的课堂练习! 第六章 详细设计 第六章 详细设计 第六章 详细设计 第六章 详细设计 第六章 详细设计 6.2.4 判定表 算法中包含有多重嵌套的条件选择时,用程序流程图、盒图、PAD图及过程设计语言(PDL)都不易清楚的描述,此时用判定表则比较容易。 判定表能简洁而又无歧义的描述处理规则。但是判定表并不是与作为一种通用的设计工具,没有一种简单的方法使它能同时清晰的表示顺序和重复等处理特性。 6.2.5 判定树 判定树是判定表的变种,容易掌握与
文档评论(0)