- 1、本文档共104页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 详细设计 5.1 软件详细设计 详细设计的目标 详细设计阶段的根本目标是确定怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的目标: 设计出的处理过程应该尽可能简明易懂。 5.2 结构程序设计 结构程序设计的概念最早由E.W.Dijkstra提出。 1965年,他在一次会议上指出:“可以从高级语言中取消GOTO语句”,“程序的质量与程序中所包含的GOTO语句的数量成反比”。 1966年Bohm和Jacopini证明了,只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”和“循环”。 1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,从而补充了结构程序设计的规则。 三种基本的控制结构 顺序结构,先执行A再执行B IF_THEN_ELSE型选择(分支)结构 DO_WHILE型循环结构: 在循环控制条件成立时,重复执行特定的加工。 实际上用顺序结构和循环结构(又称DO_WHILE结构)完全可以实现选择结构(又称IF_THEN_ELSE结构),因此,理论上最基本的控制结构只有两种。 三种基本的控制结构 结构程序设计的定义 结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。 在总体设计阶段采用自顶向下逐步求精的方法:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。 详细设计或编码阶段采用自顶向下逐步求精的方法:可以把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。 结构程序设计的优点 可以显著提高软件开发工程的成功率和生产率 。 程序有清晰的层次结构,因此容易阅读和理解。 开发时比较容易保证程序的正确性,即使出现错误也比较容易诊断和纠正。 源程序清晰流畅,易读易懂而且容易测试。 程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。 程序的逻辑结构清晰,有利于程序正确性证明。 扩充的控制结构 为了实际使用方便起见,常常还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构。 有时需要立即从循环(甚至嵌套的循环)中转移出来,如果允许使用LEAVE(或BREAK)结构,则不仅方便而且会使效率提高很多。 扩充的控制结构 结构程序设计 经典的结构程序设计: 只允许使用顺序、IF_THEN_ELSE型分支和DO_WHILE型循环这三种基本控制结构。 扩展的结构程序设计: 还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构。 修正的结构程序设计: 再加上允许使用LEAVE(或BREAK)结构。 5.3 详细设计的工具 程序流程图 盒图(N-S图) PAD图 判定表 判定树 过程设计语言(PDL) 5.3.1 程序流程图 程序流程图(PFG, Program Flow Graph)又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法,然而它也是用得最混乱的一种方法。 从20世纪40年代末到70年代中期,程序流程图一直是软件设计的主要工具。 例子 程序流程图的优缺点 主要优点: 对控制流程的描绘很直观,便于初学者掌握。 主要缺点: 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 程序流程图不易表示数据结构。 5.3.2 盒图(N_S图) 出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneider-man提出了盒图,又称为N_S图。 顺序结构 IF_THEN_ELSE型分支 CASE型多分支结构 循环结构 调用子程序 例子 N-S图的特点 功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。 不可能任意转移控制。 很容易确定局部和全程数据的作用域。 很容易表示嵌套关系,也可以表示模块的层次结构。 盒图没有箭头,因此不允许随意转移控制。 5.3.3 PAD图 PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。 它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 基本控制结构 基本控制结构 基本控制结构 例子 PAD图的主要优点 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。 PAD图所描绘的程序结构十分清晰。 图中最左面的竖线是程序的主线,即第一
文档评论(0)