欢迎来到天天文库
浏览记录
ID:34490799
大小:359.58 KB
页数:25页
时间:2019-03-06
《西安工业大学《软件工程》第五章 详细设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章详细设计概要设计阶段完成了软件系统的总体设计,确定了各个模块的功能及模块之间的联系,再进一步就要考虑如何实现各个模块所规定的功能。详细设计(又称过程设计)阶段的根本目标是要开发一个可以直接转换成某种程序语言的软件表示,所以详细设计阶段的根本任务仍不是进行具体的编码。用软件开发的工程化的观点来看,在使用程序设计语言编写具体的代码之前,要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的直接依据,这才是详细设计的主要任务。在详细设计期间,每一个模块都给以单独的考虑,且重点要放在“如何实现”上。本章主要介绍详细设计阶段的主要任务和设计原
2、则、原理,以及如何运用这些原理来指导模块内部的逻辑设计,最后还要运用恰当的工具将设计结果清晰地表达出来。5.1详细设计的任务和原则5.1.1详细设计的任务详细设计阶段的目标,是给出软件模块结构中各个模块的内部过程描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言表达的程序。这一阶段的主要任务,是编写软件的“详细设计说明书”。因此,设计人员应该做到如下几方面:(1)为每个模块确定所采用的算法,并选择某种适当的工具表达算法的执行过程,写出模块的详细过程性描述。(2)确定每一模块使用的数据结构。(3)确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块
3、的接口,以及模块的输入数据、输出数据及局部数据的全部细节。在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审成为正式文档,交付给编码阶段作为工作的依据。(4)为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预定的测试。模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据、期望的输出结果等内容。测试用例应由负责详细设计的软件人员来完成,因为他们对模块功能的实现了解得最清楚。5.1.2详细设计的原则——结构化程序设计结构化程序设计的概念最早由E.W.Dijkstra提出。1965年他提出从高级语言中取消G0TO语句的观点,认为程序的质量与程序中
4、所包含G0TO语句的数量成反比。1966年Böhm和Jacopini证明了只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”和“循环”,它们的流程图分别为图5.1中(a)、(b)、(c)所示。Böhm和Jacopni的证明给结构程序设计技术奠定了理论基础。expAexpABBA(a)顺序结构(b)选择结构(c)循环(while)结构图5.1三种基本控制结构1968年Dijkstra再次建议从一切高级语言中取消G0TO语句,只使用三种基本控制结构写程序。他的建议引起了激烈争论,经过讨论人们认识到,不是简单地去掉G0TO语句的问题,而是
5、要创立一种新的程序设计思想、方法和风格,以显著地提高软件生产率和降低软件维护代价。1971年IBM公司在纽约时报信息库管理系统的设计中成功地使用了结构化程序设计技术,1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,从而补充了结构程序设计的规则。随后在美国宇航局空间实验室飞行模拟系统的设计中,结构程序设计技术再次获得圆满成功。这两个系统都相当庞大,前者包含8.3万行高级语言源程序,后者包含40万行源程序,而且在设计过程中用户需求又曾有过很多改变,然而两个系统的开发工作都按时且高质量地完成了。这表明,软件生产率比以前提高了一倍,结构化程序设计技术成功地
6、经受了实践的检验。但是,对于结构化程序设计的概念,到目前并没有一个为所有人普遍接受的定义。一个比较流行的定义是:结构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。关于逐步求精方法Wirth又曾做过一些总结概括,从而形成结构程序设计的基本方法和原则,其基本内容归纳为如下几点:(1)程序结构中应尽可能少用GOTO语句,以确保程序结构的独立性。(2)使用单入口单出口的控制结构,确保程序的静态结构和动态执行情况相一致,保证程序易于理解。(3)程序的控制结构一般采用顺序、选择和循环三种结构来完成,确保程序结构尽可能简单。(4)用自顶向下、逐步
7、求精的方法完成程序设计。结构化程序设计的缺点是存储容量和运行时间增加10%~20%,但易读和易维护性比较好。此外,由于详细设计的结果是给人看的,所以模块的逻辑描述要清晰易读,正确可靠;并选择恰当的工具来描述个模块的算法及数据结构。这也是在进行系统的详细设计时应遵循的原则。5.2详细设计的描述工具表达详细设计规格说明的工具叫做详细设计工具。它可以分为三类:ò图形工具——把过程的细节用图形的方式描述出来。ò表格工具——用一张表来表达过程的细节。这张表列出了各种可能的操作及相应的条件,即描述了输入、处理和输出
此文档下载收益归作者所有