- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章详细设计要点
第五章 详细设计
5.1 详细设计的任务
5.1.1 目的
为SC中每个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出详细清晰的过程描述(因此有的书中也称“详细设计”为“过程设计”)。
5.1.2 主要内容
1)为每个模块确定采用的算法;(表达算法的过程——写出模块详细的过程性描述)
2)确定每个模块使用的内部数据结构;
3)确定模块的接口细节;(系统外部/用户界面/系统内部/
模块的输入输出/局部数据)
4)制定模块的测试计划。
5.2 模块的逻辑设计(模块的过程描述)
在上个“总体设计”阶段我们完成了“软件结构”设计,给出了系统中各个模块的功能和模块之间的联结(接口),即完成了系统中各个模块的“外部属性”的设计;其实,本阶段我们就是要完成模块的“内部属性”设计,即给出系统中各个模块的“运行程序”和“内部数据”;由此可见详细设计的结果基本上决定了最终软件的质量。因此,(根据软件质量特性)详细设计的目标不仅仅是逻辑上正确、性能上符合要求,等等,更重要的是要看它是否简明易懂(容易阅读容易理解),便于维护。
那么,怎样才能做到这一点呢?也即模块的逻辑设计应遵循什么样的理念呢?
从效率第一到清晰第一
早在1965年,E.W.Dijkstra就公开提出了从高级语言中取消
GOTO语句的主张。他认为,一个程序中包含的GOTO语句愈多,其可读性愈差。时而GOTO过来,时而GOTO回去,会把程序搞成一团乱麻。有人称这种难读的程序为“通心面”程序(Bowl of Spaghetti,简称BS程序),使人联想起细面条在锅里结成块,“剪不断,理还乱”的尴尬情况。
E.W.Dijkstra的主张得到了许多人的支持,但也有人反对这种“一刀切”的做法,提出了不同的意见,经过近十年的激烈辩论,终于得出了一致的意见:“GOTO语句必须限制使用”,其实这场辩论的真正意义在于:改变了人们单纯强调程序效率的旧观念,认识到编写清晰易读程序的重要性。
除非使用特别频繁,或者对执行时间有严格要求的实时程序,仍需在效率与清晰度之间作出仔细的权衡外,在大多数情况下,应该优先考虑程序的清晰度,而把效率的考虑放在第二位。
结构化的控制结构
难道程序中使用的GOTO语句的多少是衡量这个程序清晰度的唯一标准吗?不是的!!!从根本上说,要想改善程序的清晰度,必须从改善每个(模块的)控制结构入手,(这就是结构程序设计的思想,也是详细设计阶段指导模块逻辑设计应遵循的原则。)
(1)1966年,Bohm和Jacopini的证明:任何程序的逻辑均可用顺序、选择和循环(do-while)Do while C1
…………
If C2 undo
…………
ENDDO
[例] C语言中的 break;PowerBuilder中的 return
4)GOTO语句不应滥用,但也不必完全禁止。
逐步细化的实现方法
把给定的模块功能转变为它的详细过程性描述,通常可采用逐步细化的策略,大量的实践表明,逐步细化很适合于详细设计。
[例1] 在一组数中找出其中的最大数。
通过这一实例。可以把逐步细化的步骤归纳为:
由粗到细地对程序进行逐步细化,每一步可选择其中的一条至数条,将它们分解成更多更详细的程序步骤;
在细化程序的过程中,同时对数据的描述进行细化,换句话说,过程和数据结构的细化要并行地进行,在适当的时候要交叉穿插;
每一步细化均使用相同的结构化语言,最后一步直接用“程序设计语言”来描述,以便编码时直接翻译成源程序。
逐步细化的优点:
先后有序,主次分明,可避免全面开花,顾此失彼;
易于验证程序的正确性;(其实质是要求在每步细化中确保实现前一步的要求,不要等程序写完后再来验证。形式化的程序正确性证明采用公理化的证明规则,方法十分繁琐。)
用“结构化”保证程序的清晰易读,用“逐步细化”实现程序的正确可靠,它们导致了一条自然的结论:模块的逻辑设计必须用结构化程序设计的原理来指导。
5.3 详细设计工具
描述程序处理过程的工具称为详细设计工具,可分为:图形工具,表格工具和语言工具,不论是哪类工具,对它们的基本要求都是能提供对设计的无歧义性描述,也就是应该能指明控制流程、处理功能、数据组织等方面的实现细节,从而能在编码阶段把对设计的描述直接翻译成程序代码。
5.3.1 程序流程图(流程图)
流程图(flow diagram)))))……也许这就是它迅速流传的原因。
[例2] 分别用N-S图和PAD图描述:
“在一组数中找出其中的最大数”的程序过程。
PAD图的特点:
使用PAD图设计出的程序必定是结构化程序;
PAD图所表达的程序其结构十分清晰:图中最左边的纵线是程序的主干
您可能关注的文档
- 装修工程施工工艺.doc
- 蔡成斌 人机工程学.ppt
- 第五章结构与属性控制.ppt
- 装修必读!!房屋装修流程20步.doc
- 第五章经理人激励.ppt
- 第五章组合体.ppt
- 第五章细菌检验技术.pptx
- 第五章绿色植物的呼吸作用.ppt
- 第五章网络INTERNET.ppt
- 装修施工组织设计(改).doc
- 山东省菏泽市成武县八年级英语下学期期末考试试题人教新目标版(2)812.pdf
- 七上语法每日小纸条含答案及解析.pdf
- 七上有理数的混合运算120道含答案及解析.pdf
- 内蒙古赤峰市名校2024-2025学年高二上学期期中联考政治试题含答案及解析.pdf
- 六升七英语暑假衔接专项《按要求写单词》含答案及解析.pdf
- 六升七英语暑假语法专项人称代词、物主代词和指示代词100题含答案及解析.pdf
- 六升七语文暑假衔接含答案及解析.pdf
- 人教版七年级上册整册书单词默写表含答案及解析.pdf
- 七年级上册《西游记》1~100回概括(六升七暑假预习)含答案及解析.pdf
- 人教版7上期中语法精练含答案及解析.pdf
文档评论(0)