资源描述:
《软件工程第六章详细设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章详细设计(过程设计、模块设计)6.1详细设计概述6.2过程设计工具6.3面向数据结构的设计方法6.4程序复杂度的定量度量6.5详细设计说明书6.1详细设计概述6.1.1详细设计阶段的目标与任务6.1.2结构化程序设计详细设计阶段的目标:确定应该怎样具体地实现所要求的系统。精确地描述整个目标系统,从而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码.结构程序设计技术是实现上述目标的关键技术,是详细设计的逻辑基础.6.1.1
2、详细设计阶段的目标与任务详细设计的主要任务主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。结构化程序设计逐步求精三种基本结构6.1.2结构化程序设计结构程序设计的概念最早是由E.W.Dijstra提出.Bohm和Jacobini证明了只要顺序、选择、循环这三种基本结构就能实现任何单入口单出口的程序。结构程序设计结构程序设计的经典的定义是:“如果一个程序的代码仅仅通过顺序,选择,和循环这三种基本控制结构
3、进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的”逐步求精的含义详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统逐步求精的要领不要急于用计算机指令、数字和逻辑符号去表示对问题的解法,而是用自然语言(或其他工具)描述问题的解法,最开始的描述处于比较高的抽象层次,接着对抽象描述逐步分解,直到描述能被计算机理解为止。例子-逐步求精读入三个数,找出并打印其中的最大数二级求精②将X1与X
4、2的大数存于MAX中Ifx1>x2thenmax=x1elsemax=x2③将X3与MAX的大数存于MAX中Ifx3>maxthenmax=x3一级算法输入X1,X2,X3将X1与X2的大数存于MAX中将X3与MAX的大数存于MAX中输出结果BexpAABexpAAexpTFTTFF顺序结构选择结构循环结构1)“当”型循环2)直到型循环三种基本的控制结构结构程序设计技术的优越性(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发
5、出的程序有清晰的层次结构,因此容易阅读和理解。(3)不使用GOTO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。(6)程序的逻辑结构清晰,有利于程序正确性证明。6.2过程设计的工具过程设计工具包括图形,表格,语言三类.不论是哪一类工具,都应该指明控制流,处理功能,数据组织以及其它方面的实现细节,从而在编码阶段能把对设计的描述直接翻译
6、成程序代码.描述程序处理过程的工具称为过程设计工具1.程序流程图2.盒图(N-S图)3.问题分析图(PAD)5.过程设计语言(PDL)(伪码)4.判定树与判定表程序流程图的标准符号示例盒图(N-S图)用方框图代替传统的流程图描述五种基本控制结构的图形构件(1)顺序型ABC(2)选择型(If–then–else)ABF条件TAFT条件then–部分then–部分else–部分If–then–elseIf–then(3)多分支选择型(CASE型)A1值1A2An........条件值2值n(4)WHILE重复型(5)UNTIL重复型S(循环体)DO-
7、WHILEPS(循环体)REPEATUNTILP(先测试循环)(后测试循环)循环条件(6)移出标记ACBFX6TA:D(调用结构)1)功能域(即一个特定控制结构的作用域)明确2)不可能任意转移控制3)很容易确定局部和全程数据的作用域4)很容易表现嵌套关系,也可以表示模块的层次结构N-S图的特点N-S图示例ab条件1TFCaseXi,i=2,3,4X2X3X4当条件3成立条件2直到条件4成立直到条件成立cdefghij顺序结构选择结构多分支选择结构先判定型循环结构后判定型循环结构FTTF例1:startifpthenwhileqdofenddoel
8、seblockgnendblockendifstop例2:以下是两个程序流程图,试用N—S图表示。问题分析图(PAD)(ProblemA