软件工程 教学课件 作者 张海藩 1第3章.pptVIP

软件工程 教学课件 作者 张海藩 1第3章.ppt

  1. 1、本文档共171页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.10.3 PAD图 PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。图3.26给出PAD图的基本符号。 图3.25 程序流程图和等效的盒图 (a)流程图;(b)等效的盒图 图3.27 使用PAD图提供的定义功能来逐步求精的例子 (a)初始的PAD图;(b)使用def符号细化处理框P2 ? PAD图是面向高级程序设计语言的,为FORTRAN,COBOL和PASCAL等每种常用的高级程序设计语言都提供了一整套相应的图形符号。由于每种控制语句都有一个图形符号与之对应,显然将PAD图转换成与之对应的高级语言程序比较容易。 3.10.4 判定表 当算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图或后面即将介绍的过程设计语言(PDL)都不易清楚地描述。然而判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。 一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。 下面以行李托运费的算法为例说明判定表的组织方法。假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每kg收费4元,对其他舱的国内乘客超重部分每kg收费6元,对外国乘客超重部分每kg收费比国内乘客多一倍,对残疾乘客超重部分每kg收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的动作(算法),如表3.1所示。 表3.1 用判定表表示计算行李费的算法 ? 1 2 3 4 5 6 7 8 9 国内乘客 ? T T T T F F F F 头等舱 ? T F T F T F T F 残疾乘客 ? F F T T F F T T 行李重量W≤30 T F F F F F F F F 免费 × ? ? ? ? ? ? ? ? (W-30)×2 ? ? ? × ? ? ? ? ? (W-30)×3 ? ? ? ? × ? ? ? ? (W-30)×4 ? × ? ? ? ? ? × ? (W-30)×6 ? ? × ? ? ? ? ? × (W-30)×8 ? ? ? ? ? × ? ? ? (W-30)×12 ? ? ? ? ? ? × ? ? ? 表3.1 用判定表表示计算行李费的算法 在表的右上部分中“T”表示它左边那个条件成立,“F”表示条件不成立,空白表示这个条件成立与否并不影响对动作的选择。判定表右下部分中画“×”表示做它左边的那项动作,空白表示不做这项动作。从表3.1可以看出,只要行李重量不超过30kg,不论这位乘客持有何种机票,是中国人还是外国人,是残疾人还是正常人,一律免收行李费,这就是表右部第一列(规则1)表示的内容。当行李重量超过30kg时,根据乘客机票的等级、国籍、是否残疾人而使用不同算法计算行李费,这就是规则2到规则9表示的内容。 3.10.5 判定树 判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工具的人要理解它需要有一个简短的学习过程。此外,当数据元素的值多于两个时(例如,3.10.4例子中假设对机票需细分为头等舱、二等舱和经济舱等多种级别时),判定表的简洁程度也将下降。 判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。多年来判定树一直受到人们的重视,是一种比较常用的系统分析和设计的工具。图3.28是和表3.1等价的判定树。从图3.28可以看出,虽然判定树比判定表更直观,但简洁性却不如判定表,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复次数越多。此外还可以看出,画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响,在这个例子中如果不是把行李重量做为第

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档