西安工业大学《软件工程》第五章_详细设计.docx

西安工业大学《软件工程》第五章_详细设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第五章详细设计

概要设计阶段完成了软件系统的总体设计,确定了各个模块的功能及模块之间的联系,再进一步就要考虑如何实现各个模块所规定的功能。详细设计(又称过程设计)阶段的根本目标是要开发一个可以直接转换成某种程序语言的软件表示,所以详细设计阶段的根本任务仍不是进行具体的编码。用软件开发的工程化的观点来看,在使用程序设计语言编写具体的代码之前,要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的直接依据,这才是详细设计的主要任务。在详细设计期间,每一个模块都给以单独的考虑,且重点要放在“如何实现”上。

本章主要介绍详细设计阶段的主要任务和设计原则、原理,以及如何运用这些原理来指导模块内部的逻辑设计,最后还要运用恰当的工具将设计结果清晰地表达出来。

5.1详细设计的任务和原则

5.1.1详细设计的任务

详细设计阶段的目标,是给出软件模块结构中各个模块的内部过程描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言表达的程序。这一阶段的主要任务,是编写软件的“详细设计说明书”。因此,设计人员应该做到如下几方面:

(1)为每个模块确定所采用的算法,并选择某种适当的工具表达算法的执行过程,写出模块的详细过程性描述。

(2)确定每一模块使用的数据结构。

(3)确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口,以及模块的输入数据、输出数据及局部数据的全部细节。

在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审成为正式文档,交付给编码阶段作为工作的依据。

(4)为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预定的测试。模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据、期望的输出结果等内容。测试用例应由负责详细设计的软件人员来完成,因为他们对模块功能的实现了解得最清楚。

5.1.2详细设计的原则——结构化程序设计

结构化程序设计的概念最早由E.W.Dijkstra提出。1965年他提出从高级语言中取消G0TO语句的观点,认为程序的质量与程序中所包含G0TO语句的数量成反比。1966年B?hm和Jacopini证明了只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”和“循环”,它们的

流程图分别为图5.1中(a)、(b)、(c)所示。B?hm和Jacopni的证明给结构程序设计技术奠定了理论基础。

A

B

exp

AB

exp

exp

A

(a)顺序结构(b)选择结构(c)循环(while)结构

图5.1三种基本控制结构

1968年Dijkstra再次建议从一切高级语言中取消G0TO语句,只使用三种基本控制结构写程序。他的建议引起了激烈争论,经过讨论人们认识到,不是简单地去掉G0TO语句的问题,而是要创立一种新的程序设计思想、方法和风格,以显著地提高软件生产率和降低软件维护代价。

1971年IBM公司在纽约时报信息库管理系统的设计中成功地使用了结构化程序设计技术,1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,从而补充了结构程序设计的规则。随后在美国宇航局空间实验室飞行模拟系统的设计中,结构程序设计技术再次获得圆满成功。这两个系统都相当庞大,前者包含8.3万行高级语言源程序,后者包含40万行源程序,而且在设计过程中用户需求又曾有过很多改变,然而两个系统的开发工作都按时且高质量地完成了。这表明,软件生产率比以前提高了一倍,结构化程序设计技术成功地经受了实践的检验。

但是,对于结构化程序设计的概念,到目前并没有一个为所有人普遍接受的定义。一个比较流行的定义是:

结构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。

关于逐步求精方法Wirth又曾做过一些总结概括,从而形成结构程序设计的基本方法和原则,其基本内容归纳为如下几点:

(1)程序结构中应尽可能少用GOTO语句,以确保程序结构的独立性。

(2)使用单入口单出口的控制结构,确保程序的静态结构和动态执行情况相一致,保证程序易于理解。

(3)程序的控制结构一般采用顺序、选择和循环三种结构来完成,确保程序结构尽可能简单。

(4)用自顶向下、逐步求精的方法完成程序设计。结构化程序设计的缺点是存储容量和运行时间增加10%~20%,但易读和易维护性比较好。

此外,由于详细设计的结果是给人看的,所以模块的逻辑描述要清晰易读,正确可靠;并选择恰当的工具来描述

文档评论(0)

176****7010 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档