软件工程基础(胡思康)第4章课件.pptx
SEY结构化设计方法结构化设计方法SEY结构化设计方法概述结构化设计方法概述1面向数据流的设计方法面向数据流的设计方法2面向数据的设计方法面向数据的设计方法3结构化详细设计的工具结构化详细设计的工具4结构化设计(结构化设计(SDSD)的基础是)的基础是模块模块,结构化设计的,结构化设计的基本思想是:基于模块独立性和信息隐藏性原则,基本思想是:基于模块独立性和信息隐藏性原则,自顶向下,逐步求精,分解与抽象相结合,并应用自顶向下,逐步求精,分解与抽象相结合,并应用结构化程序设计技术而进行的软件设计。结构化程序设计技术而进行的软件设计。结构化设计结构化设计分为面向分为面向数据流的设计方法数据流的设计方法和和面向数据的设计面向数据的设计方方法。法。面向数据流的设计面向数据流的设计方法根据方法根据对数据流图理解的不同,对数据对数据流图理解的不同,对数据流图自动化边界划分的不同,分为流图自动化边界划分的不同,分为变换分析法变换分析法、事务分析法事务分析法和和混合分析法混合分析法。面向面向数据的设计方法在基于数据的设计方法在基于系统数据结构系统数据结构的基础上,分析系的基础上,分析系统统输入输入、输出输出的数据间的的数据间的映射关系映射关系,进而得到系统结构的设,进而得到系统结构的设计方法。计方法。SEY结构化设计方法概述结构化设计方法概述1面向数据流的设计方法面向数据流的设计方法2面向数据的设计方法面向数据的设计方法3结构化详细设计的工具结构化详细设计的工具4面向数据流的设计(面向数据流的设计(DOFDDOFD)是基于数据流图自顶)是基于数据流图自顶向下,逐层分解的过程。它将各级数据流图映射为向下,逐层分解的过程。它将各级数据流图映射为软件结构图中对应的各层次模块,体现了结构化设软件结构图中对应的各层次模块,体现了结构化设计与结构化分析的相互衔接,也体现了自顶向下的计与结构化分析的相互衔接,也体现了自顶向下的模块化设计思想。模块化设计思想。表示软件系统结构设计的图形工具:表示软件系统结构设计的图形工具:层次图层次图和和结构图结构图。层次图(层次图(Hierarchy DiagramHierarchy Diagram,HDHD)用于描绘软件系统的层)用于描绘软件系统的层次结构。次结构。层次图中的编号,清楚的反映了上下层间的调用隶属关系,层次图中的编号,清楚的反映了上下层间的调用隶属关系,这与数据流图的分层编号一致。这与数据流图的分层编号一致。层次图只反映上下层间的调用关系,不反映系统的组成关系,层次图只反映上下层间的调用关系,不反映系统的组成关系,也不反映系统执行过程也不反映系统执行过程。论文格式论文格式论文格式论文格式1.01.0打开论文文件打开论文文件打开论文文件打开论文文件2.02.0关闭论文文件关闭论文文件关闭论文文件关闭论文文件3.03.0编辑编辑编辑编辑3.13.1章节标题章节标题章节标题章节标题3.23.2段落段落段落段落3.33.3文字文字文字文字3.43.4节节节节4.04.0目录目录目录目录5.05.0检索检索检索检索另另一个表示软件系统结构的图形工具:一个表示软件系统结构的图形工具:结构图结构图。结构图与结构图与层次图类似,也是以方框表示模块,方层次图类似,也是以方框表示模块,方框间的连线表示调用关系。框间的连线表示调用关系。与层次结构图不同的与层次结构图不同的是,它是,它增加了对连线的数据流描述增加了对连线的数据流描述。不加区分的数据不加区分的数据数据信息数据信息控制信息控制信息编辑编辑学生学生学生学生记录记录读学生记录读学生记录读学生记录读学生记录学生数据学生数据无此学生无此学生学号学号系系统控制控制MNA A A AB B B BC C C Ca,bcca,b,c为模块间传递的数据或控制信号为模块间传递的数据或控制信号系统控制模块可以细分为系统控制模块可以细分为传入模块传入模块、传出模块传出模块、变换模块变换模块和和协调模块协调模块。传传入模入模入模入模块块AA传传出模出模出模出模块块BB变换变换模模模模块块BA协调协调模模模模块块BAAB变换分析法是以变换分析法是以数据流图数据流图为基为基础,并根据数据流的特征进行软础,并根据数据流的特征进行软件系统结构设计的方法。无论是件系统结构设计的方法。无论是变换分析法还是事务分析法,它变换分析法还是事务分析法,它们的设计过程都如下图所示:们的设计过程都如下图所示:复审的目的是再次强调数据流图的各注意事项复审的目的是再次强调数据流图的各注意事项(1)命名时尽量使用有明确含义的词、短语、)命名时尽量使用有明确含义的词、短语、术语和领域词汇,减少数据流图的歧义。术语和领域词汇,减少数据流图的歧义。(2)上下层图(父子图)输入、输出,以及访)上下层图(父子图)输入、输出,以及访问数据流的平衡。问数据流的平衡。(3)上)上下层图(父子图下层图(父子图)的层次编号要一致,)的层次编号要一致,正确反应数据流图的分解过程。正确反应数据流图的分解过程。(4)对于每层数据流的分解,可以用逻辑运算)对于每层数据流的分解,可以用逻辑运算符符*(与)、(与)、+(或)和(或)和(异或)怎加数据流(异或)怎加数据流图中个变换部分间的语义。图中个变换部分间的语义。(5)精化数据流图,使其能正确、完整地描述)精化数据流图,使其能正确、完整地描述用户需求,因为这将决定系统结构图的逻辑框用户需求,因为这将决定系统结构图的逻辑框架正确与否。架正确与否。划分自动化边界,确定数据流特征,判划分自动化边界,确定数据流特征,判断数据流是断数据流是变换流变换流还是还是事物流事物流。变换流的特征是有明显输入、处理和输变换流的特征是有明显输入、处理和输出过程,在处理部分出过程,在处理部分没有过多的控制和判没有过多的控制和判断断。这里的输入和输出是指对应子系统或。这里的输入和输出是指对应子系统或模块数据模块数据的输入的输入、输出部分,并非一定对、输出部分,并非一定对应系统外部的直接输入和输出。应系统外部的直接输入和输出。事事物流的特征是在数据的输入、处理和物流的特征是在数据的输入、处理和输出过程中,处理部分输出过程中,处理部分有明显的控制或判有明显的控制或判断中心断中心,后续的数据流有较多活动路径,后续的数据流有较多活动路径数据输入输出边界的划分与系数据输入输出边界的划分与系统结构的处理无关,仅表示系统统结构的处理无关,仅表示系统与外部数据的交换。与外部数据的交换。执行一级分解,导出系统逻辑结构的最上两执行一级分解,导出系统逻辑结构的最上两层关系。顶层为关系主控模块,第二层根据边层关系。顶层为关系主控模块,第二层根据边界的划分,分为三个模块(子系统)界的划分,分为三个模块(子系统)输入模块:包括所有输入部分,以及经过简输入模块:包括所有输入部分,以及经过简单变换的数据和信息;输出模块:包括所有输单变换的数据和信息;输出模块:包括所有输出部分,以及经过简单变换的数据和信息;控出部分,以及经过简单变换的数据和信息;控制模块:除输入输出部分以外的变换操作制模块:除输入输出部分以外的变换操作二级二级分解把一层分解得到的各子系统模块按分解把一层分解得到的各子系统模块按照各层数据流图逐层细分,得到系统结构图的照各层数据流图逐层细分,得到系统结构图的原型。原型。为了明确说明各模块间的调用关系,形成接为了明确说明各模块间的调用关系,形成接口设计说明书的部分内容,还需要为每个模块口设计说明书的部分内容,还需要为每个模块编写一个简要说明:编写一个简要说明:l模块的输入、输出数据接口定义模块的输入、输出数据接口定义l模块内部结构信息模块内部结构信息l模块功能的主要流程描述,特别是主要的判模块功能的主要流程描述,特别是主要的判断、异常处理断、异常处理l对模块调用时的相关约束关系,以及特别的对模块调用时的相关约束关系,以及特别的说明(如说明(如I/O操作,共享约束等)操作,共享约束等)采用启发式规则,精化所得到的初步软件结采用启发式规则,精化所得到的初步软件结构,以模块独立性为原则,合并、分解、抽取构,以模块独立性为原则,合并、分解、抽取各模块,得到一个高内聚、低耦合、易实现、各模块,得到一个高内聚、低耦合、易实现、易测试、易维护的软件系统结构图易测试、易维护的软件系统结构图ABCDEFGHJKMabdcejkmf示意性数据流图示意性数据流图hMCMIMTMO主控模块:完成对整个主控模块:完成对整个系统的调用、数据传递、系统的调用、数据传递、I/O操作等功能。操作等功能。输入流模块:接受并初输入流模块:接受并初步转换所有输入数据。步转换所有输入数据。输出输出流模块:产生符合流模块:产生符合用户需求的输出数据。用户需求的输出数据。变换流模块:对系统内部形变换流模块:对系统内部形式的数据进行加工、处理。式的数据进行加工、处理。ABCDEabdceMIEc,eDdeAbBaCcJKMjkmMOKMkjJmkjFGHcejkf示意性数据流图示意性数据流图MTGFHc,ej,kefhc,fj,khhMTGFHc,ej,kcfhc,fj,khMC(主控模(主控模块)MIEc,eDdeAbBaCcMOKMkjJmkjMTGFHc,ej,kec,ehfj,khMC(主控模(主控模块)MIEc,eDdeAbBaCcMOKMkjJmkj如果数据例图中具有事物特征,即能如果数据例图中具有事物特征,即能找到事物找到事物中心中心和对应的和对应的多条活动路径多条活动路径,则用事物分析法更,则用事物分析法更能体现以能体现以事物为主事物为主的处理过程。的处理过程。TMC(事物分析)(事物分析)MIT(调度事物中心)(调度事物中心)路径路径1路径路径2路径路径3MIMTMO事物事物层:各事物控制中心:各事物控制中心MCMIH(调度)度)ABCDEFGHJKMabdcejkmf事物中心事物中心hhhMCMIH(调度)度)hhFhCGBEADcbafedJKFckm第一步求精:第一步求精:1 1层层DFDDFD图图部部门用用户部部门用用户F1 原始原始简历库F2 简历库简历文件文件简历查询信息信息登登录信息信息简历1登录登录F3 用用户信息信息库权限限2自动获自动获取简历取简历信息信息权限限3 查询查询查询信息信息简历逐步求精:对各系统进一步精化逐步求精:对各系统进一步精化F1 原始原始简历库F2 简历库简历文件文件2.1电子收电子收集电子集电子简历简历2.2读取电读取电子简历子简历权限限2.3 分析分析关键词关键词简历简历文件文件简历文件文件2.4 自动获自动获取简历取简历信息信息关关键词逐步求精:对各系统进一步精化逐步求精:对各系统进一步精化F2 简历库3.1分析查分析查询信息询信息3.2查询查询查询信息信息3.3 生成查生成查询结果询结果简历关关键词权限限关关键词简历划分数据输入输出边界,分离出处理部分划分数据输入输出边界,分离出处理部分执行一级分解执行一级分解执行执行二二级分解级分解H精化所得到的初步软件结构精化所得到的初步软件结构HH划分数据输入、输出边界,分离出事物中心划分数据输入、输出边界,分离出事物中心一级分解一级分解H二二级级分解分解从组织结构上分析,变换分析法符合一般意义上从组织结构上分析,变换分析法符合一般意义上对软件的理解,即输入、输出和变换。对软件的理解,即输入、输出和变换。事物分析法符合系统用户的操作过程,由用户操事物分析法符合系统用户的操作过程,由用户操作选项(事物中心)决定各活动路径。作选项(事物中心)决定各活动路径。从模块独立性,特别是耦合度上分析,案例中变从模块独立性,特别是耦合度上分析,案例中变换分析法的控制模块将第二部分第三部分的模块都换分析法的控制模块将第二部分第三部分的模块都混合在控制模块中。混合在控制模块中。而事物分析法,不同的活动路径通过事物中心各而事物分析法,不同的活动路径通过事物中心各自独立,没有耦合关系,更符合模块独立性原则。自独立,没有耦合关系,更符合模块独立性原则。从符合用户需求的角度上分析,事物分析法更接从符合用户需求的角度上分析,事物分析法更接近于用户需求的描述。活动路径和需求有较好的对近于用户需求的描述。活动路径和需求有较好的对应关系。应关系。因此建议采用事物分析法所得到的二级分解图作因此建议采用事物分析法所得到的二级分解图作为软件系统结构图。为软件系统结构图。在大规模和复杂系统的数据流图中,常常需要将在大规模和复杂系统的数据流图中,常常需要将变换分析法和事物分析法结合使用,共同构建软件变换分析法和事物分析法结合使用,共同构建软件系统结构图。系统结构图。ABCDEFGHJKMabdcejkmfh输入流输入流变换流变换流事物中心事物中心活动路径活动路径ABCDEFGHJKMabdcejkmfh输入流输入流变换流变换流事物中心事物中心活动路径活动路径如果模块如果模块A A、B B、C C、D D、E E是顶层数据流图是顶层数据流图的外部数据交换部分,则变化分析法的设的外部数据交换部分,则变化分析法的设计方案好计方案好如果模块如果模块A A、B B、C C、D D、E E是系统内部数据的转换部分,是系统内部数据的转换部分,其与模块其与模块F F和和G G耦合度高,则事物分析法设计方案较好。耦合度高,则事物分析法设计方案较好。如果模块如果模块J J、K K、M M仍是系统内部转换模块,而非顶层数仍是系统内部转换模块,而非顶层数据流图的外部接口,则事物分析法和混合分析法较好。据流图的外部接口,则事物分析法和混合分析法较好。SEY结构化设计方法概述结构化设计方法概述1面向数据流的设计方法面向数据流的设计方法2面向数据的设计方法面向数据的设计方法3结构化详细设计的工具结构化详细设计的工具4面向数据的设计方法就是以面向数据的设计方法就是以数据结构数据结构作为软件设作为软件设计的基础,并设计软件结构和软件处理过程的关系。计的基础,并设计软件结构和软件处理过程的关系。这这一方法淡化了数据流图一方法淡化了数据流图向向软件结构映射的过程,软件结构映射的过程,而主要集中于而主要集中于某个子系统或模块数据输入、输出前某个子系统或模块数据输入、输出前后结构的对比后结构的对比,找出数据间映射关系,从而分析出,找出数据间映射关系,从而分析出子系统或模块的操作过程。子系统或模块的操作过程。面面向向数数据据的的经经典典设设计计方方法法是是英英国国人人提提出出的的JacksonJackson系系统统开开发发(Jackson Jackson System System DevelopmentDevelopment,JSDJSD)方法。方法。用用JacksonJackson图图表表示示的的数数据据结结构构能能够够和和结结构构化化程程序序语语言言相相结结合合,因因为为它它也也用用顺顺序序、选选择择和和重重复复等等控控制制结结构表示数据结构或对数据结构的操作顺序构表示数据结构或对数据结构的操作顺序ABC顺顺序序结结构构,表表示示自自上上而而下下,自自左左向向右右的的执执行。行。AB0C0S(i)选选择择结结构构,根根据据S(i)S(i),选选择择执执行行模模块块B B或或C C。AB00S(i)选选择择结结构构,根根据据 S(i)S(i),选选 择择执执行行模模块块B B或或不不执行任何操作执行任何操作AB*I(i)循循环环结结构构,根根 据据 条条 件件I(i)I(i)的的判判断断,循循环环执执行行模模块块B BJSDJSD方法实现步骤方法实现步骤:l确定确定子系统或模块子系统或模块输入输入、输出数据的数据结构输出数据的数据结构。l确定确定子系统或模块输入、输出数据结构间的子系统或模块输入、输出数据结构间的对应关系对应关系。l从从输输入入、输输出出的的数数据据结结构构图图中中导导出出程程序序结结构构图图(过过程程描描述述)。l列出列出程序结构图中程序结构图中所需的全部操作和条件所需的全部操作和条件。l将将所列操作与条件所列操作与条件放置到程序结构图适当的位置放置到程序结构图适当的位置。l用用伪码语言描述伪码语言描述程序处理过程。程序处理过程。对对HTMLHTML格格式式中中的的超超链链接接进进行行提提取取分分析析的的功功能能。要要求求:从从HTMLHTML文文件件中中提提取取超超链链接接,并并从从超超链链接接中中提提取取主主域域名名(即即WWWWWW地地址址),提提取取主主域域名名中中的的网网站站类类型型(如如、.gov.gov、.edu.edu等等),并并保保存存到到文文件件中中。文文件件的的存存储储格格式式以以行行为为单单位位,每每行行包包含含两两类类信信息息:主主域域名名、网网站站类类型型。(AA标标记记是是超超链链接接的的标标签签,它它的的heafheaf属属性性指指明明了了链链接接地地址址,而而主主域域名名就就在在此此地地址中。)址中。)确定确定输入、输出数据结构结对应关系。输入、输出数据结构结对应关系。HTML文件文件以句以句为单位的字符串位的字符串以段以段为单位的字符串位的字符串I(1)I(2)无无A标记有有A标记S(i)输出文件出文件域名与域名与类型型记录*I(1)I(2)主域名主域名域域类型型S(i)类型串型串*0用用JacksonJackson图表示出程序结构图。图表示出程序结构图。获取主域名和域取主域名和域类型型以句以句为单位位处理字符串理字符串*以段以段为单位位处理字符串理字符串*I(1)I(2)分析分析A字符串字符串*I(3)分析超分析超链接接00S(1)域域类型型主域名主域名(1 1)打开输入、输出文件)打开输入、输出文件(2 2)关闭输入、输出文件;)关闭输入、输出文件;(3 3)读入)读入“段段”字符串;字符串;(4 4)读读入入“行行”字字符符串串(5 5)写入)写入“主域名主域名”(6 6)写入)写入“域类型域类型”(7 7)写入行结束符;)写入行结束符;I I(1 1)文件是否结束)文件是否结束I I(2 2):段是否结束):段是否结束I I(3 3):行是否结束):行是否结束S S(1 1):当当前前行行是是否否包包含含AA标签标签将所列操作与条件放置到程序结构图适当的位置。将所列操作与条件放置到程序结构图适当的位置。按按照照JaksonJakson图图的的语语义义,自自定定而而下下、自自左左至至右右写写出出伪代码伪代码SEY结构化设计方法概述结构化设计方法概述1面向数据流的设计方法面向数据流的设计方法2面向数据的设计方法面向数据的设计方法3结构化详细设计的工具结构化详细设计的工具4基于基于数据流数据流和基于和基于数据的结构化数据的结构化设计方法完成设计方法完成概要设计概要设计阶段的主要任务,得到软件系统结构,阶段的主要任务,得到软件系统结构,它从总体上反映了系统功能间彼此的合作关系。它从总体上反映了系统功能间彼此的合作关系。结构化设计的的结构化设计的的详细设计阶段详细设计阶段,主要完成系统,主要完成系统各模块功能的过程描述各模块功能的过程描述。详细设计提供了。详细设计提供了图形图形、表格表格和和语言语言等三类不同工具。等三类不同工具。图形工具图形工具表格表格工具工具语言语言工具工具1.1.程序流程图程序流程图2.2.盒图盒图(N-S(N-S图图)3.3.问题分析图问题分析图(PAD)(PAD)4.4.判定树、判定表判定树、判定表5.5.过程过程设计语言设计语言(PDL)(PDL)(伪码伪码)详细设计中常用的图形工具详细设计中常用的图形工具详细设计中常用的图形工具详细设计中常用的图形工具顺序结构顺序结构选择结构选择结构单选择结构单选择结构WhileWhile循环结构循环结构do-Whiledo-While循环结构循环结构T TF Frepeatrepeat-WhileWhile循循环结构环结构T TF F输入一个班共输入一个班共N N个学生软件工程课程的成绩,求个学生软件工程课程的成绩,求全班这门课程的平均分、最高分和最低分。全班这门课程的平均分、最高分和最低分。程序程序流程图虽然得到大多数人的认可,但它存在一些严流程图虽然得到大多数人的认可,但它存在一些严重不足:重不足:l对程序流程图中的控制流(有向箭头),在设计时无法对程序流程图中的控制流(有向箭头),在设计时无法约束其转向,造成设计的随意性,并可能导致产生非结约束其转向,造成设计的随意性,并可能导致产生非结构化的过程设计。构化的过程设计。l难以表达数据结构,如学生成绩数组难以表达数据结构,如学生成绩数组sisi的定义难以明的定义难以明确说明其类型和结构。确说明其类型和结构。用方框图代替传统的用方框图代替传统的流程图,没有控制流,而流程图,没有控制流,而仅需通过方框和方框的嵌套调用,就能完全体现仅需通过方框和方框的嵌套调用,就能完全体现顺序、分支和循环的控制结构。顺序、分支和循环的控制结构。并且由于盒图没有控制流,控制的跳转就不能并且由于盒图没有控制流,控制的跳转就不能随意转移,且方框的边界清晰,数据作用域很容随意转移,且方框的边界清晰,数据作用域很容易界定。易界定。顺序型顺序型A AB BC C选择选择型(型(If then elseIf then else)If then else If thenIf then else If thenA AB BF F条件条件条件条件T TA AF FT T条件条件条件条件thenthenthenthen部分部分部分部分thenthenthenthen部分部分部分部分elseelseelseelse部分部分部分部分(3)(3)多分支选择型多分支选择型(CASE(CASE型型)A1A1值值值值1 1A2A2AnAn.条件条件条件条件值值值值2 2值值值值n n(4)WHILE(4)WHILE重复型重复型S S(循环体)(循环体)DO-WHILE PDO-WHILE P(先测试循环先测试循环)S S(循环体)(循环体)REPEAT UNTIL PREPEAT UNTIL P(后测试循环后测试循环)(5)UNTIL(5)UNTIL重复型重复型一个判断三角形类型的程序,读入三个正数,一个判断三角形类型的程序,读入三个正数,表示三角形的三条边长。判断并输出其类型是等表示三角形的三条边长。判断并输出其类型是等边三角行、等腰三角形还是普通三角形。边三角行、等腰三角形还是普通三角形。用盒图设计的算法流程一定是结构化设计,它具有以下用盒图设计的算法流程一定是结构化设计,它具有以下特点:特点:l控制域明晰,盒图上能直接分析出分支、循环的控制域控制域明晰,盒图上能直接分析出分支、循环的控制域范围。范围。l无控制流,避免了控制流的随意性。无控制流,避免了控制流的随意性。l盒盒图中方框的相互嵌套,准确地反映了过程设计时模块图中方框的相互嵌套,准确地反映了过程设计时模块间的层次关系。间的层次关系。问问 题题 分分 析析 图图(PAD)(PAD)(Problem(Problem Analysis Analysis DiagramDiagram)体体现现了了自自顶顶向向下下、自自左左至至右右,逐逐步步细细化化,逐逐层层推推进进的的设设计计过过程程,它它同同样样能能体体现现顺顺序序、分分支支和和循循环环的的控控制制结结构构。同同时时PADPAD图图也也没没有有控控制制流流,从而避免了设计过程中控制的随意性。从而避免了设计过程中控制的随意性。A A A AB B B BT T T TF F F F条条条条件件件件(2)(2)选择结构选择结构A A A AB B B BC C C C(1)(1)顺序结构顺序结构(3)(3)多分支选择型多分支选择型(CASE(CASE型型)A1A1A1A1值值值值1 1 1 1值值值值2 2 2 2值值值值n n n n A2A2A2A2AnAnAnAn.条条条条件件件件有有一一个个已已按按递递增增排排序序的的数数组组A(1A(1),A(2A(2),A(n)A(n)。用用折折半半查查找找给给定定关关键键词词KEYKEY。如如果果查查找找成成功功,则则返返回回数数组组A A的的下下标标,否否则则将将关关键键词词KEYKEY按按递递增顺序插入数组增顺序插入数组A A。用用PADPAD图图设设计计的的算算法法流流程程一一定定是是结结构构化化设设计计,它它具具有有以以下下特点:特点:l用用PADPAD图描述的设计过程层次清晰,数据的作用域明晰。图描述的设计过程层次清晰,数据的作用域明晰。l从从最最左左面面竖竖线线表表示示的的程程序序主主流流程程图图开开始始,自自顶顶向向下下、自自左至右的设计易于人们理解设计过程。左至右的设计易于人们理解设计过程。lPADPAD图图不不仅仅不不能能用用于于过过程程设设计计,也也能能用用于于对对复复杂杂数数据据结结构的表示。构的表示。判定树是用于度复杂条件判断的图形工具。判定树是用于度复杂条件判断的图形工具。例例如如:为为了了节节约约能能源源,制制定定如如下下两两套套水水费费收收费费方方案案。如如果果选选择择固固定定费费率率收收费费,每每人人每每月月用用水水量量少少于于3 3吨吨的的用用户户,水水费费为为3 3元元/吨吨,超超出出的的用用水水量量,按按照照费费率率表表A A的的费费率率收收费费。如如果果选选择择可可变变费费率率,则则每每人人每每月月用用水水量量少少于于5 5吨吨的的用用户户,按按照照费费率率表表A A的的费费率率收收费费,超超出出的的用用水水量量按按照照费费率率表表B B的的费费率率收收费。费。判定树的不足之处在于:判定树的不足之处在于:l对对复复合合条条件件的的选选择择,难难以以确确定定以以何何种种顺顺序序组组为为符合条件判断的顺序。符合条件判断的顺序。l难以表示结构化程序设计的控制结构。难以表示结构化程序设计的控制结构。l难以将判定树直接转换为程序设计语言。难以将判定树直接转换为程序设计语言。判判定定表表是是对对复复杂杂条条件件判判断断的的表表格格表表示示,它它清清晰晰地地表表明明设设计计的的功功能能是是在在满满足足何何种种条条件件组组合合的的前前提提下才被执行的。下才被执行的。对于上例:对于上例:图图形形工工具具提提供供了了简简洁洁易易懂懂的的控控制制流流;表表格格工工具具提提供供了了清清晰晰的条件的条件活动对应关系;活动对应关系;PDLPDL则详细给出了模块过程的描述。则详细给出了模块过程的描述。在在软软件件系系统统的的详详细细设设计计中中,难难以以规规范范用用何何种种工工具具为为优优。易易于于与与用用户户交交流流,是是用用程程序序流流程程图图;严严格格的的结结构构化化系系统统设设计计,是是用用盒盒图图与与PADPAD图图;易易于于模模块块接接口口、数数据据结结构构大大的的表表示示,PADPAD语言则具有详细叙述的能力。语言则具有详细叙述的能力。需要综合考虑应用各类符号工具,以全面完成设计任务。需要综合考虑应用各类符号工具,以全面完成设计任务。课后习题课后习题 5 5SEYTHANK YOU!