第六章详细设计_第1页
第六章详细设计_第2页
第六章详细设计_第3页
第六章详细设计_第4页
第六章详细设计_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程软件工程1 1软件工程软件工程第六章第六章 详细设计详细设计软件工程软件工程2 2详细设计的任务详细设计的任务 1 1为每个模块确定采用的算法,选择某种适为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细当的工具表达算法的过程,写出模块的详细过程性描述。过程性描述。2 2确定每一模块使用的数据结构,为以后的确定每一模块使用的数据结构,为以后的编写程序做好充分的准备。编写程序做好充分的准备。3 3确定模块接口的细节,包括对系统外部的确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接接口和用户界面,对系统内部其他模块的接口,以及模块输入数据、

2、输出数据及局部数口,以及模块输入数据、输出数据及局部数软件工程软件工程3 3据的全部细节。据的全部细节。4 4要为每一个模块设计出一组测试用例,以要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据、期的重要组成部分,通常应包括输入数据、期望输出等内容。望输出等内容。6.1结构程序设计结构程序设计结构程序设计的概念最早由结构程序设计的概念最早由E.W.DE.W.D ijkstraijkstra提出。提出。(1 1)196519

3、65年他在一次会议上指出:年他在一次会议上指出:“可以可以从高级语言中从高级语言中取消取消GO TOGO TO语句语句”,“程序的质程序的质量与程序中所包含的量与程序中所包含的GO TOGO TO语句的数量成反比语句的数量成反比”。(2 2)19661966年年BohmBohm和和JacopiniJacopini证明了,只用证明了,只用3 3软件工程软件工程4 4种基本的控制结构就能实现任何单入口单出种基本的控制结构就能实现任何单入口单出口的程序。这口的程序。这3 3种基本的控制结构是种基本的控制结构是“顺序顺序”、“选择选择”和和“循环循环”,它们的流程图分别,它们的流程图分别为图为图6.1

4、(a)6.1(a),6.1(b)6.1(b)和和6.1(c)6.1(c)。软件工程软件工程5 5n图图6.1 36.1 3种基本的控制结构种基本的控制结构软件工程软件工程6 6(3 3)19681968年年DijkstraDijkstra再次建议从一切高级语再次建议从一切高级语言中取消言中取消GO TOGO TO语句,只使用语句,只使用3 3种基本控制结种基本控制结构写程序。他的建议引起了激烈争论,经过构写程序。他的建议引起了激烈争论,经过讨论人们认识到,不是简单地去掉讨论人们认识到,不是简单地去掉GO TOGO TO语句语句的问题,而是要创立一种新的程序设计思想的问题,而是要创立一种新的程序

5、设计思想、方法和风格,以显著地提高软件生产率降、方法和风格,以显著地提高软件生产率降低软件维护代价。低软件维护代价。(4 4)19711971年年IBMIBM公司在纽约时报信息库管理公司在纽约时报信息库管理系统的设计中成功地使用了结构程序设计技系统的设计中成功地使用了结构程序设计技软件工程软件工程7 7术,随后在美国宇航局空间实验室飞行模拟术,随后在美国宇航局空间实验室飞行模拟系统的设计中,结构程序设计技术再次获得系统的设计中,结构程序设计技术再次获得圆满成功。圆满成功。(5 5)19721972年年IBMIBM公司的公司的MillsMills进一步提出,程序应该进一步提出,程序应该只有一个入

6、口和一个只有一个入口和一个出口出口,从而补充了结构程序设计的规则。,从而补充了结构程序设计的规则。软件工程软件工程8 8【结构化程序设计结构化程序设计】如果一个程序的代码块仅仅通过顺序、选择如果一个程序的代码块仅仅通过顺序、选择和循环这和循环这3 3种基本控制结构进行连接,并且每种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个代码块只有一个入口和一个出口,则称这个程序是结构化的。(个程序是结构化的。(经典定义经典定义)上述经典定义过于狭隘了,结构程序设计本上述经典定义过于狭隘了,结构程序设计本质上并不是无质上并不是无GO TOGO TO语句的编程方法,而是一语句的编程方法

7、,而是一种使程序代码容易阅读、容易理解的编程方种使程序代码容易阅读、容易理解的编程方法法。软件工程软件工程9 96.2人机界面设计人机界面设计人机界面设计是接口设计的一个重要的组成人机界面设计是接口设计的一个重要的组成部分。部分。对于交互式系统来说,人机界面设计对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样和数据设计、体系结构设计及过程设计一样重要重要。近年来,人机界面在系统中所占的比。近年来,人机界面在系统中所占的比例越来越大,在个别系统中人机界面的设计例越来越大,在个别系统中人机界面的设计工作量甚至占总设计量的一半以上。人机界工作量甚至占总设计量的一半以上。人机界面

8、的设计质量,直接影响用户对软件产品的面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,评价,从而影响软件产品的竞争力和寿命,软件工程软件工程1010在设计人机界面的过程中,几乎总会遇到下在设计人机界面的过程中,几乎总会遇到下述述4 4个问题:个问题:系统响应时间系统响应时间、用户帮助设施用户帮助设施、出错信息处理出错信息处理和和命令交互命令交互。1.1. 系统响应时间系统响应时间系统响应时间是许多交互式系统用户经常抱系统响应时间是许多交互式系统用户经常抱怨的问题。一般说来,怨的问题。一般说来,系统响应时间指从用系统响应时间指从用户完成某个控制动作户完成某个控制动作(

9、(例如,按回车键或点例如,按回车键或点击鼠标击鼠标) ),到软件给出预期的响应,到软件给出预期的响应( (输出信息输出信息或做动作或做动作) )之间的这段时间之间的这段时间。软件工程软件工程11 11系统响应时间的特点:系统响应时间的特点:分别是分别是长度和易变性长度和易变性。(1 1)如果系统响应时间过长,用户就会感)如果系统响应时间过长,用户就会感到紧张和沮丧。但是,当用户工作速度是由人到紧张和沮丧。但是,当用户工作速度是由人机界面决定的时候,系统响应时间过短也不好机界面决定的时候,系统响应时间过短也不好,这会迫使用户加快操作节奏,从而可能会犯,这会迫使用户加快操作节奏,从而可能会犯错误。

10、错误。(2 2)易变性指系统响应时间相对于平均响应)易变性指系统响应时间相对于平均响应时间的偏差。时间的偏差。软件工程软件工程1212n在许多情况下,这是系统响应时间的更在许多情况下,这是系统响应时间的更重要的属性。即使系统响应时间较长,响应重要的属性。即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工时间易变性低也有助于用户建立起稳定的工作节奏。作节奏。2.2. 2.2.用户帮助设施用户帮助设施 几乎交互式系统的每个用户都需要帮助,几乎交互式系统的每个用户都需要帮助,当遇到复杂问题时甚至需要查看用户手册以当遇到复杂问题时甚至需要查看用户手册以寻找答案。大多数现代软件都提供联机帮

11、助寻找答案。大多数现代软件都提供联机帮助设施,这使得用户无须离开用户界面就能解设施,这使得用户无须离开用户界面就能解决自己的问题。决自己的问题。n软件工程软件工程1313常见的帮助设施可分为常见的帮助设施可分为集成的和附加集成的和附加的两类的两类。(1 1)集成的帮助设施从一开始就设计在软件)集成的帮助设施从一开始就设计在软件里面,通常,它对用户工作内容是敏感的,里面,通常,它对用户工作内容是敏感的,因此用户可以从与刚刚完成的操作有关的主因此用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。题中选择一个请求帮助。【特点特点】可以缩短用户获得帮助的时间,增可以缩短用户获得帮助的时间,增加界

12、面的友好性。加界面的友好性。软件工程软件工程1414(2 2)附加的帮助设施是在系统建成后再添)附加的帮助设施是在系统建成后再添加到软件中的,在多数情况下它实际上是一加到软件中的,在多数情况下它实际上是一种查询能力有限的联机用户手册,人们普种查询能力有限的联机用户手册,人们普遍认为,集成的帮助设施优于附加的帮助设遍认为,集成的帮助设施优于附加的帮助设施。施。软件工程软件工程15153.3.出错信息处理出错信息处理出错信息和警告信息,是出现问题时交互式出错信息和警告信息,是出现问题时交互式系统给出的系统给出的“坏消息坏消息”。(1 1)出错信息设计得不好,将向用户提供无)出错信息设计得不好,将向

13、用户提供无用的甚至误导的信息,反而会加重用户的挫用的甚至误导的信息,反而会加重用户的挫折感。折感。4.4.命令交互命令交互命令行曾经是用户和系统软件交互的最常用命令行曾经是用户和系统软件交互的最常用的方式并且也曾经广泛应用于各种应用软件的方式并且也曾经广泛应用于各种应用软件软件工程软件工程1616中。中。(1 1)现在,面向窗口的、点击和拾取方式的)现在,面向窗口的、点击和拾取方式的界面已经减少了用户对命令行的依赖,但是界面已经减少了用户对命令行的依赖,但是,许多高级用户仍然偏爱面向命令行的交互,许多高级用户仍然偏爱面向命令行的交互方式。在多数情况下,用户既可以从菜单中方式。在多数情况下,用户

14、既可以从菜单中选择软件功能,也可以通过键盘命令序列调选择软件功能,也可以通过键盘命令序列调用软件功能。用软件功能。软件工程软件工程1717软件工程软件工程1818(1 1)用户界面设计是一个)用户界面设计是一个迭代的过程迭代的过程,也就是说,也就是说,通常先创建设计模型,再用原型实现这个设计,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见模型,并由用户试用和评估,然后根据用户意见进行修改。进行修改。(2 2)为了支持上述迭代过程,出现了各种用于界)为了支持上述迭代过程,出现了各种用于界面设计和原型开发的软件工具。这些工具被称为面设计和原型开发的软件工具。这些

15、工具被称为用户界面工具箱或用户界面开发系统,它们为简用户界面工具箱或用户界面开发系统,它们为简化窗口、菜单、设备交互、出错信息、命令及交化窗口、菜单、设备交互、出错信息、命令及交互环境的许多其他元素的创建,提供了各种例程互环境的许多其他元素的创建,提供了各种例程6.2.26.2.2设计过程设计过程软件工程软件工程1919或对象。这些工具所提供的功能,既可以用基于或对象。这些工具所提供的功能,既可以用基于语言的方式也可以用基于图形的方式来实现。语言的方式也可以用基于图形的方式来实现。(3 3)一旦建立起用户界面的原型,就必须对它进)一旦建立起用户界面的原型,就必须对它进行评估,以确定其是否满足用

16、户的需求。评估可行评估,以确定其是否满足用户的需求。评估可以是非正式的,例如,用户即兴发表一些反馈意以是非正式的,例如,用户即兴发表一些反馈意见;评估也可以十分正式,例如,运用统计学方见;评估也可以十分正式,例如,运用统计学方法评价全体终端用户填写的调查表。法评价全体终端用户填写的调查表。(4 4)用户界面的评估周期如下所述:完成初步设)用户界面的评估周期如下所述:完成初步设计之后就创建第一级原型;用户试用并评估该原计之后就创建第一级原型;用户试用并评估该原型,直接向设计者表述对界面的评价;型,直接向设计者表述对界面的评价;软件工程软件工程2020设计者根据用户意见修改设计并实现下一级设计者根

17、据用户意见修改设计并实现下一级原型。上述评估过程持续进行下去,直到用原型。上述评估过程持续进行下去,直到用户感到满意,不需要再修改界面设计时为。户感到满意,不需要再修改界面设计时为。6.2.3人机界面设计指南人机界面设计指南下面介绍下面介绍3 3类人机界面设计指南。类人机界面设计指南。 1.1.一般交互指南一般交互指南一般交互指南涉及一般交互指南涉及信息显示、数据输入和系信息显示、数据输入和系统整体控制统整体控制,因此,这类指南是全局性的,因此,这类指南是全局性的,忽略它们将承担较大风险。忽略它们将承担较大风险。(1)(1)保持一致性保持一致性。应该为人机界面中的菜单选。应该为人机界面中的菜单

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

19、否确实要您是否确实要”的信息,以请求用的信息,以请求用户确认他的命令。户确认他的命令。软件工程软件工程2323(4)(4)允许取消绝大多数操作允许取消绝大多数操作。UNDOUNDO或或REVERSEREVERSE功能曾经使众多终端用户避免功能曾经使众多终端用户避免了大量时间浪费。每个交互式系统都应该能了大量时间浪费。每个交互式系统都应该能方便地取消已完成的操作。方便地取消已完成的操作。(5)减少在两次操作之间必须记忆的信息量。不应该期望用户能记住在下一步操作中需使用的一大串数字或标识符。应该尽量减少记忆量。软件工程软件工程2424(6)提高对话、移动和思考的效率。应该尽量减少用户击键的次数,设

20、计屏幕布局时应该考虑尽量减少鼠标移动的距离,应该尽量避免出现用户问“这是什么意思?”的情况。(7)允许犯错误。系统应该能保护自己不受严重错误的破坏。(8)按功能对动作分类,并据此设计屏幕布局。下拉菜单的一个主要优点就是能按动作类型组织命令。实际上,设计者应该尽力提高命令和动作组织的“内聚性”软件工程软件工程2525(9)(9)提供对用户工作内容敏感的帮助设施提供对用户工作内容敏感的帮助设施(10)(10)用简单动词或动词短语作为命令名。用简单动词或动词短语作为命令名。过长的过长的命令名难于识别和记忆,也会占用过多的菜单空命令名难于识别和记忆,也会占用过多的菜单空间。间。2.2.信息显示指南信息

21、显示指南(1)(1)只显示与当前工作内容有关的信息只显示与当前工作内容有关的信息。用户在获。用户在获得有关系统的特定功能的信息时,不必看到与之得有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。无关的数据、菜单和图形。(2)(2)不要用数据淹没用户,应该用便于用户迅速吸不要用数据淹没用户,应该用便于用户迅速吸取信息的方式来表示数据。取信息的方式来表示数据。例如,可以用图形或例如,可以用图形或图表来取代庞大的表格。图表来取代庞大的表格。软件工程软件工程2626(3)(3)使用一致的标记、标准的缩写和可预知的颜色使用一致的标记、标准的缩写和可预知的颜色。显示的含义应该非常明确,用户无

22、须参照其他。显示的含义应该非常明确,用户无须参照其他信息源就能理解。信息源就能理解。(4)(4)允许用户保持可视化的语境允许用户保持可视化的语境。如果对所显示的。如果对所显示的图形进行缩放,原始的图像应该一直显示着图形进行缩放,原始的图像应该一直显示着( (以缩以缩小的形式放在显示屏的一角小的形式放在显示屏的一角) ),以使用户知道当前,以使用户知道当前看到的图像部分在原图中所处的相对位置。看到的图像部分在原图中所处的相对位置。(5)(5)产生有意义的出错信息产生有意义的出错信息(6)(6)使用大小写、缩进和文本分组以帮助理解使用大小写、缩进和文本分组以帮助理解。人。人机界面显示的信息大部分是

23、文字。机界面显示的信息大部分是文字。软件工程软件工程2727(7)(7)使用窗口分隔不同类型的信息使用窗口分隔不同类型的信息。利用窗。利用窗口用户能够方便地口用户能够方便地“保存保存”多种不同类型的多种不同类型的信息。信息。(8)(8)使用使用“模拟模拟”显示方式表示信息,以使显示方式表示信息,以使信息更容易被用户提取信息更容易被用户提取。(9)(9)高效率地使用显示屏高效率地使用显示屏。当使用多窗口时。当使用多窗口时,应该有足够的空间使得每个窗口至少都能,应该有足够的空间使得每个窗口至少都能显示出一部分。显示出一部分。软件工程软件工程28283 3数据输入指南数据输入指南(1 1)尽量减少用

24、户的输入动作。)尽量减少用户的输入动作。(2 2)保持信息显示和数据输入之间的一致)保持信息显示和数据输入之间的一致性。性。(3 3)允许用户自定义输入。)允许用户自定义输入。(4 4)交互应该是灵活的,并且可调整成用)交互应该是灵活的,并且可调整成用户喜欢的输入方式。户喜欢的输入方式。(5 5)使在当前动作语境中不适用的命令不)使在当前动作语境中不适用的命令不起作用。起作用。软件工程软件工程2929(6 6)让用户控制交互流。)让用户控制交互流。(7 7)对所有输入动作都提供帮助。)对所有输入动作都提供帮助。(8 8)消除冗余的输入。)消除冗余的输入。软件工程软件工程3030【过程设计工具】

25、描述程序处理过程的工具描述程序处理过程的工具称为过程设计的工具,它们可以分为称为过程设计的工具,它们可以分为图形图形、表格表格和和语言语言3 3类。类。【注注】它们的基本要求都是能提供对设计它们的基本要求都是能提供对设计的无歧义的描述,也就是应该能指明控制的无歧义的描述,也就是应该能指明控制流程、处理功能、数据组织以及其他方面流程、处理功能、数据组织以及其他方面的实现细节,从而在编码阶段能把对设计的实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。的描述直接翻译成程序代码。6.36.3过程设计的过程设计的 工具工具软件工程软件工程31316.3.1程序流程图程序流程图程序流程图又称为

26、程序框图,它是历史最悠程序流程图又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。而它也是用得最混乱的一种方法。程序流程图中使用的符号见教材程序流程图中使用的符号见教材125125页图页图6.36.3【缺点缺点】(1)(1)程序流程图本质上不是逐步求精的好工程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流具,它诱使程序员过早地考虑程序的控制流软件工程软件工程3232程,而不去考虑程序的全局结构。程,而不去考虑程序的全局结构。 (2)(2)程序流程图中用箭头代表控制流,因此程序流程图中用箭

27、头代表控制流,因此程序员不受任何约束,可以完全不顾结构程程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。序设计的精神,随意转移控制。(3)(3)程序流程图不易表示数据结构。程序流程图不易表示数据结构。软件工程软件工程3333出于要有一种不允许违背结构程序设计精神出于要有一种不允许违背结构程序设计精神的图形工具的考虑,的图形工具的考虑,NassiNassi和和ShneidermanShneiderman提出了盒图,又称为提出了盒图,又称为N-SN-S图。图。特点:特点:(1)(1)功能域功能域( (一个特定控制结构的作用域一个特定控制结构的作用域) )明确,可以从盒图上一眼就看

28、出来。明确,可以从盒图上一眼就看出来。(2)(2)不可能任意转移控制。不可能任意转移控制。(3)(3)很容易确定局部和全程数据的作用域。很容易确定局部和全程数据的作用域。6.3.26.3.2盒图(盒图(N-SN-S图)图)软件工程软件工程3434(4)(4)很容易表现嵌套关系,也可以表示模块很容易表现嵌套关系,也可以表示模块的层次结构。的层次结构。软件工程软件工程3535图图6.4盒图的基本符号盒图的基本符号软件工程软件工程3636PADPAD是问题分析图是问题分析图(problem analysis diagram)(problem analysis diagram)的英文缩写的英文缩写,自

29、,自19731973年由日本日立公司发明以后,已年由日本日立公司发明以后,已得到一定程度的推广。它用二维树形结构得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译的图来表示程序的控制流,将这种图翻译成程序代码比较容易。图成程序代码比较容易。图6.56.5给出给出PADPAD图的图的基本符号。基本符号。PADPAD图图软件工程软件工程3737图图6.5PAD图的基本符号图的基本符号PAD图的优点图的优点(1)(1)使用表示结构化控制结构的使用表示结构化控制结构的PADPAD符号所设符号所设计出来的程序必然是结构化程序。计出来的程序必然是结构化程序。(2)PAD(2)PAD图

30、所描绘的程序结构十分清晰。图所描绘的程序结构十分清晰。(3)(3)用用PADPAD图表现程序逻辑,易读、易懂、易图表现程序逻辑,易读、易懂、易记。记。(4)(4)容易将容易将PADPAD图转换成高级语言源程序,图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性去人工编码的工作,有利于提高软件可靠性和软件生产率。和软件生产率。软件工程软件工程3838(5)(5)即可用于表示程序逻辑,也可用于描绘数即可用于表示程序逻辑,也可用于描绘数据结构。据结构。(6)PAD(6)PAD图的符号支持图的符号支持. .自顶向下

31、、逐步求精方自顶向下、逐步求精方法的使用。法的使用。软件工程软件工程39396.3.46.3.4判定表判定表当算法中包含当算法中包含多重嵌套的条件选择多重嵌套的条件选择时,用程时,用程序流程图、盒图、序流程图、盒图、PADPAD图或后面即将介绍的过图或后面即将介绍的过程设计语言程设计语言(PDL)(PDL)都不易清楚地描述。都不易清楚地描述。然而然而判定表却能够清晰地表示复杂的条件组判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系合与应做的动作之间的对应关系。软件工程软件工程4040【判定表的组成判定表的组成】一张判定表由一张判定表由4 4部分部分组成,组成,左上部左上部列出列出

32、所有所有条件条件,左下部左下部是所有可能做的是所有可能做的动作动作,右右上部上部是表示各种是表示各种条件组合的一个矩阵条件组合的一个矩阵,右下右下部部是和每种条件是和每种条件组合相对应的动作组合相对应的动作。判定表。判定表右半部的每一列实质上是一条规则,规定了右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。与特定的条件组合相对应的动作。n软件工程软件工程4141【例子例子】假设某航空公司规定,乘客可以免费托运重量不过假设某航空公司规定,乘客可以免费托运重量不过30kg30kg的行李。当行李重量超过的行李。当行李重量超过30kg30kg时,对头等舱的时,对头等舱的国内乘客超重

33、部分每公斤收费国内乘客超重部分每公斤收费4 4元,对其他舱的国内元,对其他舱的国内乘客超重部分每公斤收费乘客超重部分每公斤收费6 6元,对外国乘客超重部分元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表可以清分每公斤收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费楚地表示与上述每种条件组合相对应的计算行李费的算法,如表的算法,如表6.16.1所示。所示。软件工程软件工程4242软件工程软件工程43436.56.53 3判定树判定树【判定表的缺点判定表的缺点】(1

34、1)判定表虽然能清晰地表示复杂的条件组)判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工却不是一眼就能看出来的,初次接触这种工具的人理解它需要有一个简短的学习过程。具的人理解它需要有一个简短的学习过程。(2 2)此外,当数据元素的值多于两个时)此外,当数据元素的值多于两个时( (例如,例如,6.3.46.3.4例子中假设对机票需细分为等例子中假设对机票需细分为等舱、二等舱和经济舱等多种级别时舱、二等舱和经济舱等多种级别时) ),判定表,判定表软件工程软件工程4444的简洁程度会下降。的简洁程度会

35、下降。【判定树判定树】判定树是判定表的变种,也能清晰地表示复判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系杂的条件组合与应做的动作之间的对应关系【判定树的优点判定树的优点】(1 1)它的形式简单到不需任何说明,一眼就)它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。可以看出其含义,因此易于掌握和使用。(2 2)多年来判定树一直受到人们的重视,是)多年来判定树一直受到人们的重视,是一种比较常用的系统分析和设计的工具。一种比较常用的系统分析和设计的工具。软件工程软件工程4545软件工程软件工程4646用判定树表示计算行李费的算法用判定树表示计算行

36、李费的算法6.3.6过程设计语言过程设计语言过程设计语言过程设计语言(PDL)(PDL)也称为也称为伪码伪码,它是用正文,它是用正文形式表示数据和处理过程的设计工具。形式表示数据和处理过程的设计工具。PDLPDL具有严格的关具有严格的关键字外部语法键字外部语法,用于定义控,用于定义控制结构和数据结构;另一方面,制结构和数据结构;另一方面,PDL表示实表示实际操作和条件的内部语法通常又是灵活自由际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需要。因此,的,可以适应各种工程项目的需要。因此,一般说来,一般说来,PDLPDL是一种是一种“混杂混杂”语言。语言。软件工程软件工程474

37、7软件工程软件工程4848【例例4 4】某物流公司运费计算标准如下:若省某物流公司运费计算标准如下:若省内运输,快递服务每千克内运输,快递服务每千克5 5元,平邮普通包裹元,平邮普通包裹资费每千克资费每千克3 3元;若省外运输,重量不超过元;若省外运输,重量不超过5 5千千克的快递服务每千克克的快递服务每千克1212元,超重部分按每千克元,超重部分按每千克5 5元计算,重量不超过元计算,重量不超过5 5千克的平邮普通包裹资千克的平邮普通包裹资费每千克费每千克8 8元,超重部分按每千克元,超重部分按每千克3 3元计算。请元计算。请用结构化语言(用结构化语言(PDLPDL)表示)表示软件工程软件工

38、程4949法描述此物流公司运费计算标准。法描述此物流公司运费计算标准。分析:例分析:例4 4中的运费根据省内省外运输分为来中的运费根据省内省外运输分为来那个钟情况,每种情况又按照服务的速度有不那个钟情况,每种情况又按照服务的速度有不同的计费标准,因此采用选择结构的嵌套形式同的计费标准,因此采用选择结构的嵌套形式描述比较简单。描述比较简单。结构化语言如下:结构化语言如下: if if 省内运输省内运输 if if 快件快件 运费运费=W=W* *5 5元元/ /千克千克 elseelse 运费运费=W=W* *3 3千元千元/ /千克千克 endifendifElseElse if if 快递快

39、递 if w=5kgif w=5kg 运费运费=w=w* *1212元元/ /千克千克 elseelse 运费运费=5=5* *1212元元/ /千克千克+ +(w-5)w-5)* *5 5元元/ /千克千克 endifendifElseElse if w=5kg if w=5kg 运费运费=w=w* *8 8元元/ /千克千克ElseElse运费运费=5=5* *8 8元元/ /千克千克+ +(w-5)w-5)* *3 3元元/ /千克千克EndifEndifEndifEndif软件工程软件工程50506.4面向数据结构的设计方法面向数据结构的设计方法计算机软件本质上是计算机软件本质上是信息

40、处理系统信息处理系统,因此,因此,可以根据软件所处理的信息的特征来设计软可以根据软件所处理的信息的特征来设计软件。件。在许多应用领域中信息都有清楚的层次结构在许多应用领域中信息都有清楚的层次结构,输入数据、内部存储的信息,输入数据、内部存储的信息( (数据库或文件数据库或文件) )以及输出数据都可能有独特的结构。以及输出数据都可能有独特的结构。数据结构数据结构既影响程序的结构又影响程序的处理过程既影响程序的结构又影响程序的处理过程,重,重复出现的数据通常由具有循环控制结构的程序复出现的数据通常由具有循环控制结构的程序软件工程软件工程5151来处理,选择数据来处理,选择数据( (即,可能出现也可

41、能不出即,可能出现也可能不出现的信息现的信息) )要用带有分支控制结构的程序来处要用带有分支控制结构的程序来处理理。面向数据结构的设计方法的最终目标是得出面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。对程序处理过程的描述。n这种方法最适合于在详细设计阶段使用,这种方法最适合于在详细设计阶段使用,也就是说,在完成了软件结构设计之后,可也就是说,在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块以使用面向数据结构的方法来设计每个模块的处理过程。的处理过程。软件工程软件工程52526.4.16.4.1Jackson图图1.1.顺序结构顺序结构顺序结构的数据由一个或多个数

42、据元素组成顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。图,每个元素按确定次序出现一次。图6.86.8是表是表示顺序结构的示顺序结构的JacksonJackson图的一个例子。图的一个例子。2.2.选择结构选择结构选择结构的数据包含两个或多个数据元素,选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据每次使用这个数据时按一定条件从这些数据元素中选择一个。图元素中选择一个。图6.96.9是表示是表示3 3个中选个中选1 1个结个结构的构的JacksonJackson图。图。软件工程软件工程5353图图6.8A由由B、C、D 3个元个元素顺序组成素顺

43、序组成软件工程软件工程5454图图6.9根据条件根据条件A是是B或或C或或D中的某一个中的某一个3.3.重复结构重复结构重复结构的数据,根据使用时的条件由一个重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成是表示重复结数据元素出现零次或多次构成是表示重复结构的构的JacksonJackson图。图。软件工程软件工程5555图图6.10A由由B出现出现N次次(N0)组成组成JacksonJackson图有下述优点:图有下述优点:(1)(1)便于表示层次结构,而且是对结构进行自便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;顶向下分解的有力工具;(2)(2)形象直观可读性

44、好;形象直观可读性好;(3)(3)既能表示数据结构也能表示程序结构。既能表示数据结构也能表示程序结构。软件工程软件工程5656软件工程软件工程57576.4.26.4.2改进的改进的JacksonJackson图图图6.11改进的Jackson图软件工程软件工程5858 6.4.3Jackson方法方法JacksonJackson结构程序设计方法基本上由下述结构程序设计方法基本上由下述5 5个步骤组成:个步骤组成:(1)(1)分析并确定分析并确定输入数据和输出数据输入数据和输出数据的逻的逻辑结构,并用辑结构,并用JacksonJackson图描绘这些数据结图描绘这些数据结构。构。(2)(2)找

45、出输入数据结构和输出数据结构中找出输入数据结构和输出数据结构中有有对应关系的数据单元对应关系的数据单元。(3)(3)用下述用下述3 3条规则从描绘数据结构的条规则从描绘数据结构的软件工程软件工程5959JacksonJackson图导出描绘程序结构图导出描绘程序结构JacksonJackson图。图。第一,为每对有对应关系的数据单元,按第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序构图照它们在数据结构图中的层次在程序构图的相应层次画一个处理框的相应层次画一个处理框( (注意,如果这对注意,如果这对数据单元在输入数据结构和输出据结构中数据单元在输入数据结构和输出据结构中所处

46、的层次不同,则和它们对应的处理框所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应数据结构图中层次低的那个对应) );软件工程软件工程6060第二,根据输入数据结构中剩余的每个数第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的应层据单元所处的层次,在程序结构图的应层次分别为它们画上对应的处理框;次分别为它们画上对应的处理框;第三,根据输出数据结构中剩余的每个数第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的据单元所处的层次,在程序结构图的应层次分别为它们画上对应的处理框

47、。应层次分别为它们画上对应的处理框。(4)(4)列出所有操作和条件列出所有操作和条件( (包括分支条件和包括分支条件和循环结束条件循环结束条件) ),并且把它们分配程序结,并且把它们分配程序结构图的适当位置。构图的适当位置。软件工程软件工程6161变换分析变换分析 (5)(5)用伪码表示程序。用伪码表示程序。【例子例子】一个正文文件由若干个记录组成一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,字符的总个数。要求的输出数据格式是,每复制

48、一行输入字符串之后,另起一行印每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件出这个字符串中的空格数,最后印出文件中空格的总个数。中空格的总个数。软件工程软件工程6262图图6.12表示输入输出数据结构的表示输入输出数据结构的Jackson图图软件工程软件工程6363确定了输入输出数据结构之后,第二步是确定了输入输出数据结构之后,第二步是分析确定在输入数据结构和输出数据结构分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。中有对应关系的数据单元。【分析】(1 1)输出数据总是通过对输入数据的处理)输出数据总是通过对输入数据的处理而得到的,因此在输入输出数据结构

49、最高而得到的,因此在输入输出数据结构最高层次的两个单元层次的两个单元( (在这个例子中是在这个例子中是“正文文正文文件件”和和“输出表格输出表格”) )总是有对应关系的。总是有对应关系的。这一对单元将和程序结构图中最顶层的方这一对单元将和程序结构图中最顶层的方软件工程软件工程6464框框( (代表程序代表程序) )相对应,也就是说经过程序的相对应,也就是说经过程序的处理由正文文件得到输出表格。处理由正文文件得到输出表格。(2 2)每处理输入数据中一个)每处理输入数据中一个“字符串字符串”之之后,就可以得到输出数据中一个后,就可以得到输出数据中一个“串信息串信息”,它们都是重复出现的数据单元,而且出现,它们都是重复

温馨提示

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

评论

0/150

提交评论