软件工程概论 详细设计-2学时课件.ppt

软件工程概论 详细设计-2学时课件.ppt

ID:56966198

大小:619.00 KB

页数:65页

时间:2020-07-22

软件工程概论 详细设计-2学时课件.ppt_第1页
软件工程概论 详细设计-2学时课件.ppt_第2页
软件工程概论 详细设计-2学时课件.ppt_第3页
软件工程概论 详细设计-2学时课件.ppt_第4页
软件工程概论 详细设计-2学时课件.ppt_第5页
资源描述:

《软件工程概论 详细设计-2学时课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Chapter6详细设计6.1结构程序设计6.2人机界面设计6.3过程设计的工具1详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。但不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。详细设计的基本概念将系统划分成模块决定每个模块的功能决定模块的调用关系决定模块的界面,即模块间传递的数据结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。26.1结构程序设计31、结构程序设计概念结构程序设计的概念最早由E.W.Dijkstra提出。1966年Bohm和

2、Jacopini证明了,只用3种基本的控制结构就能实现任何单入口单出口的程序。这3种基本的控制结构是“顺序”、“选择”和“循环”,它们的流程图分别为图6.1(a),6.1(b)和6.1(c)。46.13种基本的控制结构52、结构化程序设计方法的关键技术采用自顶向下,逐步求精的程序设计方法。结构化程序由若干个基本结构组成,虽然每一个基本结构可以包含一条或若干语句,但任何程序都由顺序、选择、循环三种基本结构构成。【特点】:有一个入口,有一个出口结构中每一部分都有被执行到的机会,即,每一部分都应当有一条从入口到出口的路径通过没有死循环6结构化程序设计是一种特定的程序

3、设计方法学,它体现了结构性编程的理念【优点】:先后有序,主次分明。能够保证、易于验证程序的正确性。“结构化”保证程序的清晰易读,“逐步细化”实现程序的正确可靠。7什么是结构程序设计?结构程序设计的经典定义如下所述:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。”更全面的结构程序设计的定义:“结构程序设计是尽可能少用GOTO语句的程序设计方法。最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句。”为了实际使用方便起见,常常还允许使用DO-UNTIL和D

4、O-CASE两种控制结构,它们的流程图分别是图6.2(a)和图6.2(b)。8图6.2其他常用的控制结构9补充:编程接口设计的“五项基本原则”接口是用来定义调用双方的关系的,应该以方便实现为主要目标。一方面,要方便被调用方了解要遵守的责任和义务,真正做到说一不二,不少做也不多做。另一方面,要利于调用方从众多的接口中找到所要的接口,并在使用时不容易用错。好的接口要具备:简洁明了、直来直去、类型基本、笼统输入、具体返回。101.简洁明了(1/3)接口的命名和参数应该简单清楚(让人一看就知道大概是做什么,输入和输出大概是什么);命名的原则:说明这个接口提供什么服务,

5、而不是后面怎么去做。服务的内容应该是尽量围绕一个中心,那就是,只做一件事而且把它真正做好。例如:publicvoidfoo(Vectorv);111.简洁明了(2/3)例如:publicvoidfoo(Vectorv);猛一看,该接口用向量结构传递参数,很灵活,将来改变参数或者增删参数,都可以不用改变接口定义。等看到里面传递的十多个字符串参数后,发现问题严重了。这十多个字符串参数代表的不是相同的含义,有的是网络地址,有的是端口号,有的是协议类型。调用方和被调用方要非常清楚在向量结构中的第几个元素代表什么,只要错一个就全部错。如果有错,在编译阶段根本查不出来,非

6、等到运行时才能发行问题。在灵活的背后却没有能真正地定义清楚接口本身,向量结构中放什么对象好像都行,没有能够体现合同的约束力。121.简洁明了(3/3)解决方法:publicvoidfoo(Stringhost_name,intport,Stringpath)现在端口号不再是字符串了,这样,一方面更准确反映数据的本质,另一方面,让参数类型有点变化,将来用户使用时不容易把他们搞混淆。注意:在输入参数中不要有冗余和重复的信息publicvoidfoo(Stringhost_name,inthost_name_len);第二个参数明显是可以从第一个参数中推断出来,因而

7、是个冗余的参数。132.直来直去接口的实际输入和输出,除了名称、传入的参数和返回值以外,没有别的隐含在背后的输入、输出和假设条件。不好的情况是,在执行该接口后,系统的状态发生了变化,但这个变化在接口本身反映不出来,需要靠进一步的文档说明才能弄清楚。例如:C++语言中有全局变量,所有的函数都可以改变它。在完成一段代码中的一串调用后,发现有一个全局变量发生了改变,但不知道究竟在哪一个或哪几个调用中被改变了。这就是为什么在Java中摈弃了全局变量。143.类型基本接口定义中使用的数据类型尽可能地采用语言本身支持的基本数据类型。使用自己定义的数据类型在道理是可以的,在

8、实践中也行得通。但缺点是,该接口定义对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。