软件工程导论课件之第6章-详细设计(第六版)(张海潘编著)_第1页
软件工程导论课件之第6章-详细设计(第六版)(张海潘编著)_第2页
软件工程导论课件之第6章-详细设计(第六版)(张海潘编著)_第3页
软件工程导论课件之第6章-详细设计(第六版)(张海潘编著)_第4页
软件工程导论课件之第6章-详细设计(第六版)(张海潘编著)_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

1、软件生命周期软件生命周期:确定应该确定应该。经过这个阶段的设计工经过这个阶段的设计工作,应该得出对作,应该得出对,从而在,从而在编码阶段可以把这个描述直接编码阶段可以把这个描述直接是实现上述目标的关键技术,是实现上述目标的关键技术,因此是因此是。 第第6章章 详细设计详细设计 6.1 结构程序设计结构程序设计6.2 人机界面设计人机界面设计6.3 过程设计的工具过程设计的工具6.4 面向数据结构的设计方法面向数据结构的设计方法6.5 程序复杂程度的定量度量程序复杂程度的定量度量6.1 结构程序设计结构程序设计n结构程序设计的概念最早由结构程序设计的概念最早由E.W.Dijkstra提出。提出。

2、n1965年,他在一次会议上指出年,他在一次会议上指出”,“”。n1966年年Bohm和和Jacopini证明了,只用三种基本的证明了,只用三种基本的控制结构就能实现任何控制结构就能实现任何的程序。这三的程序。这三种基本的控制结构是种基本的控制结构是n1972年年IBM公司的公司的Mills进一步提出,程序应该只有进一步提出,程序应该只有和和,从而补充了结构程序设计的,从而补充了结构程序设计的规则。规则。 6.1 结构程序设计结构程序设计n1、经典定义:、经典定义:如果一个程序的代码块仅仅通如果一个程序的代码块仅仅通过过顺序、选择和循环顺序、选择和循环这这3种基本控制结构进行种基本控制结构进行

3、连接,并且每个代码块只有连接,并且每个代码块只有一个入口一个入口和和一个出一个出口口,则称这个程序是结构化的。,则称这个程序是结构化的。n2、更全面定义:、更全面定义:结构程序设计是尽可能少用结构程序设计是尽可能少用GOTO语句的程序设计方法。最好仅在检测出语句的程序设计方法。最好仅在检测出错误时才使用错误时才使用GOTO语句,而且应该总是使用语句,而且应该总是使用前向前向GOTO语句。语句。n3、为了实际使用方便起见,常常还允许使用、为了实际使用方便起见,常常还允许使用DO-UNTIL和和DO-CASE两种控制结构。两种控制结构。n4、有时需要、有时需要立立即从循环即从循环(甚至嵌套的循环甚

4、至嵌套的循环)中中转移出来转移出来,允许使用,允许使用LEAVE(或或BREAK)结构。结构。LEAVE或或BREAK结构实质上是受限制的结构实质上是受限制的GOTO语句,用于转移到循环结构后面。语句,用于转移到循环结构后面。 3种基本的控制结构种基本的控制结构1)顺序结构顺序结构:相当于:相当于“A、B” 三种基本控制结构三种基本控制结构AB(a)顺序结构顺序结构2)选择结构选择结构相当于相当于“If exp then A else B endif ” ABexp(b)选择结构选择结构3)循环结构循环结构:相当于:相当于“While exp do A” A(c)循环结构循环结构exp1)多分

5、支结构多分支结构 相当于相当于“Case I of I=1:C1; I=2:C2; I=3:C3; ; I=n:Cn” CnC3C1C2( (d)d)多分支结构多分支结构I=?扩充两种控制结构扩充两种控制结构 2)UNTIL循环结构循环结构相当于相当于“Repeat A Until exp” A(e)UNTIL循环循环expn经典的结构程序设计:经典的结构程序设计:只允许使用只允许使用顺序顺序、IF-THEN-ELSE型分支和型分支和DO-WHILE型循环这型循环这3种基本控制结构;种基本控制结构;n扩展的结构程序设计:扩展的结构程序设计:如果除了上述如果除了上述3种基本种基本控制结构之外,还

6、允许使用控制结构之外,还允许使用DO-CASE型多分型多分支结构和支结构和DO-UNTIL型循环结构;型循环结构;n修正的结构程序设计:修正的结构程序设计:再加上允许使用再加上允许使用LEAVE(或或BREAK)结构。结构。 结论:结论:6.2 人机界面设计人机界面设计n人机界面设计人机界面设计是是接口设计接口设计的重要组成部分。对的重要组成部分。对于交互式系统来说,于交互式系统来说,人机界面设计人机界面设计和和数据设计数据设计、体系结构设计体系结构设计及及过程设计过程设计一样重要。一样重要。n人机界面的设计质量,直接影响人机界面的设计质量,直接影响用户对软件产用户对软件产品的评价品的评价,从

7、而影响软件产品的竞争力和寿命,从而影响软件产品的竞争力和寿命,必须对人机界面设计给予足够重视。必须对人机界面设计给予足够重视。 n置用户于控制之下置用户于控制之下 以以不强迫用户不强迫用户进入不必要的或不希望的动作的方式来定进入不必要的或不希望的动作的方式来定义交互方式;允许用户交互可以义交互方式;允许用户交互可以被中断和撤消被中断和撤消;设计应允许;设计应允许用户和出现在屏幕上的对象直接交互。用户和出现在屏幕上的对象直接交互。n减少用户记忆负担减少用户记忆负担 减少用户减少用户对短期记忆的要求对短期记忆的要求,建立有意义的缺省,定义,建立有意义的缺省,定义直觉性的捷径,快捷方式,直觉性的捷径

8、,快捷方式,界面的视觉布局应该基于真实世界面的视觉布局应该基于真实世界的需要。界的需要。n保持界面一致保持界面一致 用户应以用户应以一致的方式一致的方式展示和获取信息,所有可视信息的展示和获取信息,所有可视信息的组织均按照组织均按照贯穿一直的设计标准贯穿一直的设计标准,各应用系列内保持一致性,各应用系列内保持一致性,如过去的交互模型已建立起了用户期望如过去的交互模型已建立起了用户期望,除非有迫不得已的理除非有迫不得已的理由由,不要改变它。不要改变它。 6.2.1 设计问题设计问题设计人机界面过程中会遇到的设计人机界面过程中会遇到的4个问题:个问题:n系统响应时间系统响应时间n用户帮助设施用户帮

9、助设施n出错信息处理出错信息处理n命令交互命令交互 1. 系统响应时间系统响应时间 系统响应时间指从系统响应时间指从用户完成某个控制动作用户完成某个控制动作,到软件到软件给出预期的响应之间的这段时间给出预期的响应之间的这段时间。系统。系统响应时间有两个重要属性:响应时间有两个重要属性:和和。n长度长度:如果系统响应如果系统响应时间过长时间过长,用户就会感到,用户就会感到紧张和沮丧;系统响应紧张和沮丧;系统响应时间过短时间过短会迫使用户会迫使用户加加快操作节奏快操作节奏,从而可能会犯错误。,从而可能会犯错误。n易变性:易变性:指系统响应时间相对于指系统响应时间相对于平均响应时间平均响应时间的偏差

10、的偏差,即使系统响应时间较长,响应时间,即使系统响应时间较长,响应时间易易变性低变性低也有助于用户建立起稳定的工作节奏。也有助于用户建立起稳定的工作节奏。2. 用户帮助设施用户帮助设施n大多数现代软件都提供大多数现代软件都提供联机帮助设施联机帮助设施,用户无,用户无须离开用户界面就能解决自己的问题。常见的须离开用户界面就能解决自己的问题。常见的帮助设施可分为帮助设施可分为集成的集成的和和附加附加的的两类。两类。n集成的帮助设施集成的帮助设施设计在软件里面,它对用户工设计在软件里面,它对用户工作内容是敏感的,用户可以从与作内容是敏感的,用户可以从与刚刚完成的操刚刚完成的操作作有关的主题中有关的主

11、题中选择一个请求帮助选择一个请求帮助。n附加的帮助设施附加的帮助设施是在系统建成后是在系统建成后再添加到软件再添加到软件中的中的,它实际上是一种查询能力有限的联机用,它实际上是一种查询能力有限的联机用户手册。户手册。n集成集成的帮助设施的帮助设施优于优于附加附加的帮助设施。的帮助设施。n具体具体设计帮助设计帮助设施时,须设施时,须解决下述解决下述一系列问题一系列问题,是否在,是否在任何时候任何时候都能获都能获得关于系统得关于系统任何功能任何功能的帮助信息的帮助信息? 有两种选择;有两种选择;p 提供提供部分功能部分功能的帮助信息;的帮助信息;p 提供提供全部功能全部功能的帮助信息。的帮助信息。

12、 有有3种选择:种选择:p 帮助菜单;帮助菜单;p 特殊功能键;特殊功能键;p HELP命令命令。 有有3种选择:种选择:p 在独立的窗口中;在独立的窗口中;p 指出参考某个文档指出参考某个文档(不理想不理想);p 在屏幕固定位置显示简短提示。在屏幕固定位置显示简短提示。 有两种选择:有两种选择:p 屏幕上的返回按钮;屏幕上的返回按钮;p 功功能键。能键。 有有3种选择:种选择:p 平面结构平面结构(所有信息都通过所有信息都通过关键字关键字访问访问);p 信息的层次结构信息的层次结构(在该结构中查到更详细的信息在该结构中查到更详细的信息)p 超文本结构。超文本结构。 ,是出现问题时交互式系,是

13、出现问题时交互式系统给出统给出的的“坏消息坏消息”。出错信息设计得不好,。出错信息设计得不好,将将向用户提供无用的甚至误导的信息向用户提供无用的甚至误导的信息,反而会,反而会加重用户的挫折感。加重用户的挫折感。 n应该具有下述属性应该具有下述属性 (1)信息应该用用户信息应该用用户可以理解可以理解的术语描述问题。的术语描述问题。(2)信息应该提供信息应该提供有助于从错误中恢复有助于从错误中恢复的建设性的建设性意见。意见。 (3)信息应该指出错误可能信息应该指出错误可能(如破如破坏数据文件坏数据文件),以便用户检查是否出现了这些问,以便用户检查是否出现了这些问题,并在确实出现问题时及时解决。题,

14、并在确实出现问题时及时解决。(4)信息应该伴随着信息应该伴随着,例如,例如,在显示信息时同时发出在显示信息时同时发出警告铃声警告铃声,或者信息用,或者信息用闪烁方式显示闪烁方式显示,或者信息用明显表示,或者信息用明显表示出错的颜出错的颜色色显示。显示。(5)信息信息,也就是说,不能责怪,也就是说,不能责怪用户。用户。 n命令行命令行曾经是用户和系统软件交互的最常用的曾经是用户和系统软件交互的最常用的方式,并且也曾经广泛地用于各种应用软件中。方式,并且也曾经广泛地用于各种应用软件中。n现在,面向窗口的现在,面向窗口的点击点击的方式的界面已经减少的方式的界面已经减少了用户对命令行的依赖,但是,许多

15、高级用户了用户对命令行的依赖,但是,许多高级用户仍然偏爱面向仍然偏爱面向命令行的交互方式命令行的交互方式。n在多数情况下,用户既可以从在多数情况下,用户既可以从菜单中选择软件菜单中选择软件功能功能,也可以通过,也可以通过键盘命令序列键盘命令序列调用软件功能。调用软件功能。 n必须考虑必须考虑下列设计问题下列设计问题 (1)是否每个是否每个菜单选项菜单选项都有对应的命令都有对应的命令?(2)采用采用何种命令形式何种命令形式?有有3种选择:种选择:控制序列控制序列(例如,例如,Ctrl十十P),功能键功能键和和键入命令键入命令。(3)学习和记忆命令的难度有多大学习和记忆命令的难度有多大?忘记了命令

16、怎么忘记了命令怎么办办?(4)用户是否可以用户是否可以定制定制或或缩写命令缩写命令? n在越来越多的应用软件中,人机界面设计者都在越来越多的应用软件中,人机界面设计者都提供了提供了“命令宏机制命令宏机制” n在理想的情况下,所有应用软件都在理想的情况下,所有应用软件都有一致的命有一致的命令使用方法。令使用方法。 6.2.2 设计过程设计过程n用用户界面设计户界面设计是一个是一个迭代迭代的过程,也就是说,的过程,也就是说,通常先创建通常先创建设计模型设计模型,再用,再用原型原型实现这个设计实现这个设计模型,并模型,并由用户试用和评估由用户试用和评估,然后根据用户意,然后根据用户意见进行修改。见进

17、行修改。n为了支持上述为了支持上述迭代过程迭代过程,各种用于界面设计和,各种用于界面设计和原型开发的软件工具应运而生。这些工具被称原型开发的软件工具应运而生。这些工具被称为为用户界面工具用户界面工具箱或箱或用户界面开发系统用户界面开发系统。评估标准评估标准n(1) 系统及其界面的系统及其界面的规格说明书规格说明书的的长度长度和和复杂程度复杂程度,预示了用户学习使用该系统预示了用户学习使用该系统所需要的工作量所需要的工作量。n(2) 命令或动作的数量、命令的平均参数个数或动作命令或动作的数量、命令的平均参数个数或动作中单个操作的个数,预示了系统的中单个操作的个数,预示了系统的交互时间和总体效交互

18、时间和总体效率。率。n(3) 设计模型设计模型中包含的中包含的动作动作、命令命令和和系统状态的数量系统状态的数量,预示了用户学习使用该系统时预示了用户学习使用该系统时需要记忆的内容的多少。需要记忆的内容的多少。n(4) 界面界面风格风格、帮助设施帮助设施和和出错处理协议出错处理协议,预示了,预示了界界面的复杂程度面的复杂程度及用户及用户接受该界面的程度接受该界面的程度。6.2.3 人机界面设计指南人机界面设计指南n一般一般交互指南交互指南n信息显示信息显示指南指南n数据输入数据输入指南指南1一般交互指南一般交互指南n一般交互一般交互指南涉及指南涉及信息显示信息显示、数据输入数据输入和和系系统整

19、体统整体控制控制 (1)保持一致性保持一致性。应该为人机界面中的菜单选择、命令。应该为人机界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用输入、数据显示以及众多的其他功能,使用一致的一致的格式。格式。(2)提供有意义的反馈提供有意义的反馈。应向用户提供。应向用户提供视觉的视觉的和和听觉的听觉的反馈,以保证在用户和系统之间建立双向通信。反馈,以保证在用户和系统之间建立双向通信。(3)在执行有较大破坏性的动作之前要求用户确认在执行有较大破坏性的动作之前要求用户确认。如。如果用户要删除一个文件,或覆盖一些重要信息,或果用户要删除一个文件,或覆盖一些重要信息,或终止一个程序的运行,应该给出

20、终止一个程序的运行,应该给出“您是否确实您是否确实要要”的信息,以请求用户确认他的命令。的信息,以请求用户确认他的命令。(4)允许取消绝大多数操作允许取消绝大多数操作。UNDO或或REVERSE功能功能曾经使众多终端用户避免了大量时间浪费。每个交曾经使众多终端用户避免了大量时间浪费。每个交互式系统都应该互式系统都应该能方便地取消已完成的操作能方便地取消已完成的操作。(5)减少在两次操作之间必须记忆的信息量减少在两次操作之间必须记忆的信息量。不应该期。不应该期望用户能记住在望用户能记住在下一步操作中下一步操作中需使用的一大串数字需使用的一大串数字或标识符。应该或标识符。应该尽量减少记忆量尽量减少

21、记忆量。(6)提高对话、移动和思考的效率提高对话、移动和思考的效率。应该尽量。应该尽量减少用户减少用户击键的次数击键的次数,设计屏幕布局时应该考虑尽量,设计屏幕布局时应该考虑尽量减少鼠减少鼠标移动的距离标移动的距离,应该尽量避免出现用户问,应该尽量避免出现用户问“这是什这是什么意思么意思?”的情况。的情况。(7)允许犯错误允许犯错误。系统应该能保护自己不受严重错误的。系统应该能保护自己不受严重错误的破坏。破坏。 (8)按功能对动作分类按功能对动作分类,并据此设计屏幕布局并据此设计屏幕布局。下拉菜单下拉菜单的一个主要优点就是能的一个主要优点就是能按动作类型组织命令按动作类型组织命令。实际上,。实

22、际上,设计者应该尽力提高命令和动作组设计者应该尽力提高命令和动作组织的织的“内聚性内聚性”。(提供对用户工作内容敏感的帮助设施提供对用户工作内容敏感的帮助设施。(10)用简单动词或动词短语作为命令名用简单动词或动词短语作为命令名。过长的命令名。过长的命令名难于识别和记忆,也会占用过多的菜单空间。难于识别和记忆,也会占用过多的菜单空间。 颜色使用指南:颜色使用指南: n一个窗口中不应该出现一个窗口中不应该出现5种以上不同色系的颜色种以上不同色系的颜色。一般的,。一般的,尽量少用不同的颜色总是好的。尽量少用不同的颜色总是好的。n如果一个图表中仅包含几种颜色,背景应该选用其中一种颜如果一个图表中仅包

23、含几种颜色,背景应该选用其中一种颜色的补色:如果一幅图中包含许多颜色,背景应该选用一种色的补色:如果一幅图中包含许多颜色,背景应该选用一种中性的颜色,如灰色。中性的颜色,如灰色。n如果两个相邻的颜色不是特别和谐,可以用细的黑色边框将如果两个相邻的颜色不是特别和谐,可以用细的黑色边框将它们分开。它们分开。n背景和字体颜色应选用对比度强的颜色。背景和字体颜色应选用对比度强的颜色。n颜色的应用要适度,颜色的应用要适度,装饰性的使用服从功能性装饰性的使用服从功能性的使用。的使用。n区域的颜色实际上能够影响他的观察尺寸。区域的颜色实际上能够影响他的观察尺寸。n使用高饱和度使用高饱和度(亮亮)颜色的大区域

24、是不明智的。颜色的大区域是不明智的。n红色和蓝色具有最强的深度不一致的效果,红色看起来近,红色和蓝色具有最强的深度不一致的效果,红色看起来近,蓝色看起来远。蓝色看起来远。黄月亮黄月亮和和蓝月亮蓝月亮日本立命馆大学心理学家北冈秋吉设计日本立命馆大学心理学家北冈秋吉设计 两个月亮的颜色完全相同,唯一不同的便是周围的颜色两个月亮的颜色完全相同,唯一不同的便是周围的颜色 怀特效应怀特效应左右两边的左右两边的灰条实际灰条实际是一样的颜色,但是给人的感觉是右边颜色比较是一样的颜色,但是给人的感觉是右边颜色比较深深蓝宝石之光蓝宝石之光 斯特鲁普效应斯特鲁普效应 2信息显示指南信息显示指南n如果人机界面显示的

25、信息是如果人机界面显示的信息是不完整的不完整的、含糊的含糊的或或难于难于理解理解的,则不能满足用户需求。可以用多种不同方式的,则不能满足用户需求。可以用多种不同方式“显示显示”信息:信息:用文字用文字、图形图形和和声音声音;按;按位置位置、移动移动和和大小大小;使用;使用颜色颜色、分辨率分辨率和和省略省略。 n关于关于信息显示信息显示的设计的设计指南指南 如下:如下:(1)只显示与只显示与当前工作内容有关当前工作内容有关的信息。的信息。(2)不要用不要用数据淹没用户数据淹没用户,应该用便于用户迅速吸取信息,应该用便于用户迅速吸取信息的方式来表示数据。的方式来表示数据。 (3)使用使用一致的标记

26、一致的标记、标准的缩写标准的缩写和和可预知的颜色可预知的颜色。显示。显示的的含义应该非常明确含义应该非常明确,用户无须参照其他信息源就能,用户无须参照其他信息源就能理解。理解。(4)允许用户保持可视化的语境。如果对允许用户保持可视化的语境。如果对显示的图形进行显示的图形进行缩放缩放,原始的图像应该一直显示着原始的图像应该一直显示着。(5)产生有意义的出错信息产生有意义的出错信息(参见参见621节节)。(6)使用使用大小写大小写、缩进缩进和和文本分组文本分组以帮助理解。以帮助理解。(7)使用窗口使用窗口分隔不同类型分隔不同类型的信息。的信息。 (7)使用窗口使用窗口分隔不同类型分隔不同类型的信息

27、。的信息。 ( (8)8)使用使用“模拟模拟”显示方式显示方式表示信息,以使信息更容易表示信息,以使信息更容易被用户提取。被用户提取。 例如,显示例如,显示炼油厂储油罐炼油厂储油罐的的压力压力时,如果简单地用时,如果简单地用数字表示压力,则不易引起用户注意。但是,如果用数字表示压力,则不易引起用户注意。但是,如果用类似类似温度计的形式来表示压力温度计的形式来表示压力,用,用垂直移动和颜色变垂直移动和颜色变化来指示危险的压力状况化来指示危险的压力状况,就容易引起用户的警觉。,就容易引起用户的警觉。(9)(9)高效率地高效率地使用显示屏。使用显示屏。 当使用多窗口时,应该有足够的空间使得当使用多窗

28、口时,应该有足够的空间使得每个窗口每个窗口至少都能显示出一部分至少都能显示出一部分。此外,。此外,屏幕大小屏幕大小应该选得和应该选得和应用系统的类型相配套。应用系统的类型相配套。 3数据输入指南数据输入指南用户的大部分时间用在用户的大部分时间用在选择命令选择命令、输入数据输入数据和向系统和向系统提提供输入供输入。数据输入指南设计如下:。数据输入指南设计如下:(1)(1)尽量尽量减少用减少用户的户的输入动作输入动作。重要的是减少击键次数。重要的是减少击键次数。 (2)(2)保持保持信息显示信息显示和和数据输入数据输入之间的之间的一致性一致性。(3)(3)允许用户允许用户自定义输入自定义输入。(4

29、)(4)交互应该是灵活的,并且可调整成用户最交互应该是灵活的,并且可调整成用户最喜欢的输喜欢的输入入方式。方式。(5)(5)使在使在当前动作语境当前动作语境中中不适用的命令不适用的命令不起作用不起作用。(6)(6)让用户控制交互流。让用户控制交互流。 (7)(7)对所有对所有输入动作输入动作都提供帮助都提供帮助 (8)(8)消除冗余消除冗余的输入。的输入。 6.3 过程设计的工具过程设计的工具 描述描述程序处理过程程序处理过程的工具叫的工具叫程序设计工具程序设计工具,分,分为为图形、表格、和语言图形、表格、和语言3 3类,必须提供对设计的类,必须提供对设计的无歧无歧义义的描述,以便的描述,以便

30、控制流程控制流程、处理数据处理数据、数据组织数据组织、等方面的实现细节。等方面的实现细节。6.3.1 程序流程图程序流程图n程序流程图程序流程图又称为又称为程序框图程序框图,它是历史最悠久、使用最,它是历史最悠久、使用最广泛广泛描述过程设计描述过程设计的方法。的方法。n它的主要它的主要优点优点是对是对控制流程控制流程的描绘的描绘很直观很直观,便于初学者,便于初学者掌握。掌握。n程序流程图历史悠久,至今仍在广泛使用着。程序流程图历史悠久,至今仍在广泛使用着。程序流程图中使用的符号程序流程图中使用的符号( (a) a) 选择选择( (分支分支) ); (b) (b) 注释;注释; (c) (c)

31、预先定义的处理;预先定义的处理; (d) (d) 多分支多分支; (e) (e) 开始或停止开始或停止; (f) (f) 准备;准备;(g) (g) 循环上界限循环上界限; (h) (h) 循环下界循环下界; (i) (i) 虚线;虚线; (j) (j) 省略符;省略符; (k) (k) 并行方式;并行方式; (l) (l) ;(m) (m) 输入输出输入输出; (n) (n) 连接;连接; (o) (o) 换页连接;换页连接;(p) (p) 控制流控制流程序流程图的主要缺点:程序流程图的主要缺点:n程序流程图本质上程序流程图本质上不是逐步求精的好工具不是逐步求精的好工具,它诱,它诱使程序员使

32、程序员过早地考虑程序的控制流程过早地考虑程序的控制流程,而不去考,而不去考虑程序的虑程序的全局结构全局结构。n程序流程图中程序流程图中用箭头代表控制流用箭头代表控制流,因此程序员不,因此程序员不受任何约束,可以完全受任何约束,可以完全不顾结构程序设计的精神不顾结构程序设计的精神,随意随意转移控制转移控制。n程序流程图程序流程图不易表示数据结构不易表示数据结构。 习题习题6-3画出下列伪码程序的程序流程图程序流程图STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n END BLOCKEND IFSTOP6.3.2 盒图盒图(N-S图图) 出于要有一种

33、出于要有一种不允许违背不允许违背结构程序设计结构程序设计精精神神的图形工具的考虑,的图形工具的考虑,Nassi和和Shneiderman提出提出了盒图,又称为了盒图,又称为N-S图。图。描述符号如下:描述符号如下:基本符号:基本符号:(a) (a) 顺序;顺序; (b) (b) IF_THEN_ELSEIF_THEN_ELSE型分支型分支; (c) CASE(c) CASE型多分支型多分支; (d) (d) 循环;循环; (e) (e) 调用子程序调用子程序A A画出下列画出下列最简单的盒图最简单的盒图: I=20 if I0 then 执行订单数据输入模块执行订单数据输入模块 else 报告

34、出错信息报告出错信息 end if N 一一 S 图的嵌套定义形式图的嵌套定义形式FTBCDACase1E2F3G4HA:盒图例盒图例1盒图例盒图例2盒图具有下述特点:盒图具有下述特点:n功能域明确。功能域明确。n不可能任意转移控制。不可能任意转移控制。n很容易确定很容易确定局部局部和和全程数据全程数据的的作用域作用域。n很容易表现嵌套关系,也可以表示模块的层次很容易表现嵌套关系,也可以表示模块的层次结构。结构。画出下列伪码程序的盒图盒图STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n END BLOCKEND IFSTOP习题习题6-36.3.

35、3 PAD图图nPAD是问题分析图是问题分析图(problem analysis diagram)的英文缩写,自的英文缩写,自1973年由日本日立公司发明以年由日本日立公司发明以后,已得到一定程度的推广。后,已得到一定程度的推广。n它用它用二维树形结构二维树形结构的图来表示程序的控制流,的图来表示程序的控制流,将将这种图翻译成程序代码比较容易这种图翻译成程序代码比较容易。 PAD图的基本符号图的基本符号PAD图的基本符号如下:图的基本符号如下:(a)顺序)顺序(先执行先执行P1后执行后执行P2);(b)选择)选择(IF C THEN P1 ELSE P2); (c)CASE型多分支;型多分支;

36、(d)WHILE型循环型循环( WHILE C DO P );(e)UNTIL型循环型循环(REPEAT P UNTIL C); (f)语句标号;)语句标号; (g)定义)定义画出下列画出下列最简单的最简单的PAD图图: I=20 if I0 then 执行订单数据输入模块执行订单数据输入模块 else 报告出错信息报告出错信息 end if P1P2UNTIL C2P7P4P3Cdefa.初始的初始的PAD图图b.使用使用def符号细化处理框符号细化处理框P2P5P2P8C1UNTIL C2P9P10P6PAD 描述的示例描述的示例1PAD 描述的示例描述的示例2PAD图的主要优点如下:图的

37、主要优点如下:n使用表示使用表示结构化控制结构结构化控制结构的的PAD符号设计出来的符号设计出来的程序必程序必然是结构化程序然是结构化程序。nPAD图所描绘的程序结构十分清晰。图所描绘的程序结构十分清晰。nPAD图表现程序逻辑易读、易懂、易记。图表现程序逻辑易读、易懂、易记。n容易将容易将PAD图转换成高级语言源程序,这种转换图转换成高级语言源程序,这种转换可用可用软件工具自动完成软件工具自动完成。n即可表示即可表示程序逻辑程序逻辑,也可描绘,也可描绘数据结构数据结构。nPAD图的符号图的符号支持自顶向下支持自顶向下、逐步求精逐步求精方法的使方法的使用。用。n例题:例题:某某程序程序流程图流程

38、图如右图如右图所示,请分别所示,请分别用用N-S图图和和PAD图图表示。表示。 a UNTIL x8jbice WHILE x5dx1x2x3x4fgh UNTIL x7x6xi=PAD图:图:x8ajx1bTFfx6TFx7ighCASE xix2x4x3x5cdeN-S图:图:6.3.4 判定表判定表n当算法中包含当算法中包含多重嵌套的条件选择多重嵌套的条件选择时,用时,用程序程序流程图流程图、盒图盒图、PAD图图或后面即将介绍的过程或后面即将介绍的过程设计语言设计语言(PDL)都不易清楚地描述。都不易清楚地描述。n判定表却能够清晰地表示判定表却能够清晰地表示复杂的条件组合复杂的条件组合与

39、与应应做的动作之间做的动作之间的对应关系。的对应关系。 一张判定表由一张判定表由4部分组成:部分组成:n左上部列出左上部列出所有条件所有条件;n左下部是左下部是所有可能做的动作所有可能做的动作;n右上部是表示各种条件右上部是表示各种条件组合的一个矩阵组合的一个矩阵;n右下部是和每种右下部是和每种条件组合相对应的动作条件组合相对应的动作。 所有条件所有条件条件组合矩阵条件组合矩阵所有动作所有动作条件组合条件组合对应的动作对应的动作例题:例题:用用判定表判定表表示表示“检查订货单检查订货单”程程序序IF 客户订货金额超过客户订货金额超过500元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未

40、还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFELSE (客户订货金额未超过客户订货金额未超过500元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIF例题:例题:n假设某航空公司规定,乘客可以免费托运重量假设某航空公司规定,乘客可以免费托

41、运重量不超过不超过30kg的行李。的行李。n当行李重量超过当行李重量超过30kg时,对头等舱的国内乘客时,对头等舱的国内乘客超重部分每公斤收费超重部分每公斤收费4元,对其他舱的国内乘元,对其他舱的国内乘客超重部分每公斤收费客超重部分每公斤收费6元。元。n对外国乘客超重部分每公斤收费比国内乘客多对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。乘客少一半。表表6.1 用判定表表示计算行李费的算法用判定表表示计算行李费的算法123456789国内乘客国内乘客TTTTFFFF头等舱头等舱TFTFTFTF残疾乘客残疾乘客

42、FFTTFFTT行李重量行李重量 W 30TFFFFFFFF免费免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12例题:例题:n某校制定了教师的讲课课时津贴标准。对于各某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时种性质的讲座,无论教师是什么职称,每课时津贴费一律是津贴费一律是50元;元;n对于一般的授课,则根据教师的职称来决定每对于一般的授课,则根据教师的职称来决定每课时津贴费:教授课时津贴费:教授30元,副教授元,副教授25元,讲师元,讲师20元,助教元,助教15元。元。n请分别用判定表表示津贴标准。请分别用判定表表

43、示津贴标准。 1520253050FFFFT讲座讲座TFFF助教助教FTFF讲师讲师FFTF副教授副教授FFFT教授教授54321判定表:判定表:判定表的优点:判定表的优点:n能清晰地表示复杂的条件组合与应做的动作之能清晰地表示复杂的条件组合与应做的动作之间的对应关系。间的对应关系。判定表的缺点:判定表的缺点: n判定表的含义不是一眼就能看出来的,初次接判定表的含义不是一眼就能看出来的,初次接触这种工具的人理解它需要有一个简短的学习触这种工具的人理解它需要有一个简短的学习过程。过程。n当数据元素的值多于两个时,判定表的简洁程当数据元素的值多于两个时,判定表的简洁程度也将下降。度也将下降。n判定

44、树是判定表的变种,也能清晰地表示复杂判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。的条件组合与应做的动作之间的对应关系。n多年来判定树一直受到人们的重视,是一种比多年来判定树一直受到人们的重视,是一种比较常用的系统分析和设计的工具。较常用的系统分析和设计的工具。6.3.5 判定树判定树用判定树表示计算行李费的算法用判定树表示计算行李费的算法判定树的优点:判定树的优点:n它的形式简单,一眼就可以看出其含义,因此它的形式简单,一眼就可以看出其含义,因此易于掌握和使用。易于掌握和使用。判定树的缺点:判定树的缺点:n简洁性不如判定表,数据元素的同一个值往往简洁性不如判定

45、表,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复次数要重复写多遍,而且越接近树的叶端重复次数越多。越多。n画判定树时分枝的次序可能对最终画出的判定画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响。(树的简洁程度有较大影响。(注若不是以重量作注若不是以重量作为第一个分支,将有为第一个分支,将有16片树叶片树叶) 例题:例题:用用判定树判定树表示表示“检查订货单检查订货单”程序程序IF 客户订货金额超过客户订货金额超过500元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延

46、未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFELSE (客户订货金额未超过客户订货金额未超过500元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIF例题:例题:n某校制定了教师的讲课课时津贴标准。对于各某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时种性质的讲座,无论教师是什么职称,每课时津贴费

47、一律是津贴费一律是50元;元;n对于一般的授课,则根据教师的职称来决定每对于一般的授课,则根据教师的职称来决定每课时津贴费:教授课时津贴费:教授30元,副教授元,副教授25元,讲师元,讲师20元,助教元,助教15元。元。n请分别用判定树表示津贴标准。请分别用判定树表示津贴标准。 课时津贴课时津贴一般授课一般授课讲座讲座教授教授副教授副教授讲师讲师助教助教3025201550判定树:判定树:6.3.6 过程设计语言过程设计语言n过程设计语言过程设计语言(PDL)也称为伪码,它是用正文也称为伪码,它是用正文形式表示数据和处理过程的设计工具。形式表示数据和处理过程的设计工具。nPDL具有严格的具有严

48、格的关键字外部语法关键字外部语法,用于定义,用于定义控控制结构制结构和和数据结构数据结构;另一方面,;另一方面,PDL表示表示实际实际操作操作和条件的和条件的内部语法通常内部语法通常又是灵活自由的,又是灵活自由的,可以适应各种工程项目的需要。可以适应各种工程项目的需要。nPDL是一种是一种“混杂混杂”语言,它使用一种语言的语言,它使用一种语言的词汇,同时却使用另一种语言的语法。词汇,同时却使用另一种语言的语法。 伪代码的基本控制结构:伪代码的基本控制结构:n简单陈述句结构:避免复合语句。简单陈述句结构:避免复合语句。n判定结构:判定结构:IF_THEN_ELSE或或CASE_OF结构。结构。n

49、循环结构:循环结构:WHILE_DO或或REPEAT_UNTIL结结构。构。例例1:最简单的判断的最简单的判断的PDL 语言语言 I=20 if I0 then 执行订单数据输入模块执行订单数据输入模块 else 报告出错信息报告出错信息 end if 例例2:检查订货单:检查订货单IF 客户订货金额超过客户订货金额超过5000元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFELSE (客户订货金额未

50、超过客户订货金额未超过5000元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIFPDL的特点:的特点:n关键字的固定语法,它提供了关键字的固定语法,它提供了结构化控制结构结构化控制结构、数据说明和模块化的特点。数据说明和模块化的特点。n自然语言的自由语法,它描述处理特点。自然语言的自由语法,它描述处理特点。n数据说明的手段。应该既包括简单的数据结构,数据说明的手段。应该既包括简

51、单的数据结构,又包括复杂的数据结构。又包括复杂的数据结构。n模块定义模块定义和和调用的技术调用的技术,应该提供各种接口描述,应该提供各种接口描述模式。模式。 PDL的优点:的优点:n可以作为注释直接插在源程序中间。有助于保持可以作为注释直接插在源程序中间。有助于保持文档和程序的一致性,提高了文档的质量。文档和程序的一致性,提高了文档的质量。n可以使用普通的正文编辑程序或文字处理系统,可以使用普通的正文编辑程序或文字处理系统,很方便地完成很方便地完成PDL的书写和编辑工作。的书写和编辑工作。n已经有自动处理程序存在,而且可以自动由已经有自动处理程序存在,而且可以自动由PDL生成程序代码。生成程序

52、代码。PDL的缺点:的缺点:n不如图形工具形象直观,描述复杂的条件组合与不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单动作间的对应关系时,不如判定表清晰简单。 6.4 面向数据结构的设计方法面向数据结构的设计方法n数据结构既影响数据结构既影响程序的结构程序的结构又影响又影响程序的处理程序的处理过程过程q重复出现重复出现的数据通常由具有的数据通常由具有循环控制结构循环控制结构的程序来的程序来处理处理q选择数据选择数据要用带有要用带有分支控制结构分支控制结构的程序来处理的程序来处理q层次的数据组织层次的数据组织通常和使用这些数据的通常和使用这些数据的程序的层次程序

53、的层次结构结构十分相似。十分相似。n面向数据结构的设计方法的根据面向数据结构的设计方法的根据数据结构数据结构最终得出最终得出对程序处理过程对程序处理过程的描述。最适合在的描述。最适合在详细阶段详细阶段使用使用6.4.1 Jackson图图数据结构中数据结构中数据元素数据元素彼此间的逻辑关系通常有顺序、彼此间的逻辑关系通常有顺序、选择、和重复选择、和重复3类:类:n顺序结构顺序结构,顺序结构的数据由一个或多个数据,顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。元素组成,每个元素按确定次序出现一次。 A由由B、C、D 3个元个元素顺序组成素顺序组成(每个元素每个元素只出现一次

54、,出现的只出现一次,出现的次序依次是次序依次是B、C和和D)n选择结构选择结构,选择结构的数据包含,选择结构的数据包含两个或多个两个或多个数据元素数据元素,每次使用这个数据时按一定条件,每次使用这个数据时按一定条件从这些数据元素中选择一个。从这些数据元素中选择一个。 根据条件A是B或C或D中的某一个(注意,在B、C和D的右上角有小圆圈做标记)n重复结构重复结构,重复结构的数据,根据使用时,重复结构的数据,根据使用时的条件由一个数据元素的条件由一个数据元素出现零次或多次出现零次或多次构构成成A由B出现N次(N0)组成(注意,在B的右上角有星号标记星号标记)Jackson图的优点:图的优点:n便于

55、表示层次结构,而且是对结构进行自顶向下便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;分解的有力工具;n形象直观可读性好;形象直观可读性好;n既能表示既能表示数据结构数据结构也能表示也能表示程序结构程序结构。Jackson图的缺点:图的缺点:n表示表示选择选择或或重复重复结构时,选择条件或循环结束条结构时,选择条件或循环结束条件不能件不能直接在图上表示出来直接在图上表示出来,影响了图的表达能,影响了图的表达能力,也不易直接把图翻译成程序;力,也不易直接把图翻译成程序;n框间连线为斜线,不易在框间连线为斜线,不易在行式打印机上输出行式打印机上输出。 6.4.2 改进的改进的Jackso

56、n图图 1 1、顺序结构、顺序结构,B B、C C、D D中任一个都中任一个都不能是选择出现不能是选择出现或重复出现的数或重复出现的数据元素据元素( (即不能是即不能是右上角有小圆圈右上角有小圆圈或星号标记的元或星号标记的元素素) );6.4.2 改进的改进的Jackson图图 2 2、选择结构、选择结构,S S右右面括号中的数字面括号中的数字i i是分支条件的编号;是分支条件的编号;3 3、可选结构、可选结构,A A或或者是元素者是元素B B或者不或者不出现;出现;6.4.2 改进的改进的Jackson图图 4 4、重复结、重复结构构,循环,循环结束条件结束条件的编号为的编号为i i。Jac

57、kson图和层次图的区别:图和层次图的区别:Jackson图图层次图层次图作用作用描绘数据结构描绘数据结构描绘程序结构描绘程序结构描绘描绘软件结构软件结构矩形框矩形框数据元素数据元素几个语句几个语句模块模块连线连线组成关系组成关系调用关系调用关系上节知识回顾上节知识回顾1、程序流程图 程序流程图程序流程图又称为又称为程序框图程序框图,主要,主要优点优点是对是对控制流程控制流程的的描绘描绘很直观很直观,便于初学者掌握。,便于初学者掌握。上节知识回顾上节知识回顾2、盒图(N-S图) 出于一种不允许违背出于一种不允许违背结构程序设计结构程序设计精神的图形工具。精神的图形工具。上节知识回顾上节知识回顾

58、3、PAD图图 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)定义)定义上节知识回顾上节知识回顾4、判定表、判定表清晰地表示清晰地表示复杂的条件组合复杂的条件组合与与应做的动作之间应做的动作之间的的对应关系对应关系

59、。所有条所有条件件条件组合条件组合矩阵矩阵所有动所有动作作条件组合条件组合对应的动对应的动作作上节知识回顾上节知识回顾5、判定树、判定树是是判定表的变种判定表的变种,也能清晰地表示,也能清晰地表示复杂的条件组合与应做的动复杂的条件组合与应做的动作之间的对应关系作之间的对应关系。上节知识回顾上节知识回顾6、过程设计语言、过程设计语言 也称伪码也称伪码,是一种介于是一种介于自然语言自然语言和和形式化语言形式化语言之间的语言,用于描述之间的语言,用于描述功功能模块能模块的的算法设计算法设计和和处理细节处理细节的语言。的语言。例:检查订货单例:检查订货单程序的程序的PDLIF 客户订货金额超过客户订货

60、金额超过5000元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFELSE (客户订货金额未超过客户订货金额未超过5000元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIF上节知识回顾上

温馨提示

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

评论

0/150

提交评论