- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
过程设计工具 过程设计的任务:在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。 在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类: 图形工具 表格工具 语言工具 N-S图的嵌套定义形式 问题分析图(Problem Analysis Diagram)采用二维树形结构图表示程序的控制流。 PAD图的主要优点如下: (1) 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。 (2) PAD图所描绘的程序结构十分清晰,图中竖线的总条数就是程序的层次数。 (3) 用PAD图二维树形结构表现程序逻辑易读、易懂。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。 (4) 容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,有利于提高软件可靠性和软件生产率。 (5) 既可用于表示程序逻辑,也可用于描绘数据结构。 (6) 支持逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,使用def符号逐步增加细节,直至完成详细设计。 图6.6 使用PAD图提供的定义功能 来逐步求精的例子 建立判定表的步骤 左上部:过程执行期间的所有条件(或所有判断)。 左下部:与一个具体过程(或模块)有关的所有处理。 右上部:各种可能的条件组合。 右下部:每一种条件组合所对应的应做的工作。 当算法中包含多重嵌套的条件选择时,用判定表可以清晰地表示复杂的条件组合与应做的动作之间的对应关系。 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理 判定表用于表示程序的静态逻辑,判定表不适于作为一种通用的设计工具,没有一种简单的方法使它能同时清晰地表示顺序和重复等处理特性。 要求将程序流程图中的多分支判断都改成两分支判断 是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 形式简单,易于掌握和使用。 分支的次序可能对最终的判定树的简洁程度有较大的影响。 结构化语言的结构分为外层和内层: 外层: 具有严格的关键字外语法,用于定义控制结构和数据结构。包括有简单陈述句、判定和重复结构等三种。 内层: 采用自然语言短语表示实际操作和条件。使用数据词典中定义的名字和有限的自定义词,还可以使用一些简单的算术运算和逻辑运算符号。 下面是商店业务处理系统中检查发货单的例子 IF 发货单金额超过$500 THEN IF 欠款超过60天 THEN 在偿还欠款前不予批准 ELSE (欠款未超期) 发批准书及发货单 ENDIF ELSE (发货单金额未超过$500) IF 欠款超过60天 THEN 发批准书,发货单及催款通知 ELSE (欠款未超期) 发批准书及发货单 ENDIF ENDIF 程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要的工作量。 可以比较两个不同的设计和算法的优劣。 定量的复杂程度可作为模块规模的精确限度。 McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。 McCabe用实例证实了在McCabe复杂度为10的附近,存在出错率的间断跃变。他建议,对于复杂度超过10的程序,应分成几个小程序,以减少程序中的错误。 用3种方法计算下图所示流图的环形复杂度 例如,用重复执行加法来计算两个正整数X和Y的乘积的例子 Z=0; While X0 Z=Z+Y; X=X-1; End_while; Print(Z); 6.6 小结 详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。 结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。 人机界面设计是接口设计的一个重要的组成部分,必须充分重视系统响应时间、用户帮助设施、出错信息处理和命令交互等4个设计问题。 P151:4 下图给出的程序流程图代表一个非结构化的程序,请问: (1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。 (3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序 (1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。 (2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的
您可能关注的文档
- 转述句的练习要点.doc
- 转述句训练1要点.ppt
- 转炉冶炼低磷钢的控制技术要点.ppt
- 轮扣式支模施工方案要点.doc
- 转运站施工方案要点.doc
- 轮椅上的霍金要点.ppt
- 转移性肾癌靶向治疗现状与进展要点.ppt
- 轮胎橡胶原材料介绍要点.ppt
- 轮胎汽压的标准要点.docx
- 轮机自动化课件 第十二章要点.ppt
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
文档评论(0)