《软件工程》第5章软件详细设计.ppt
第五章软件详细设计,软件设计是软件工程过程的核心技术。软件详细设计也称为模块设计,物理设计,是指体系结构选择阶段之后所进行的技术性的活动。详细设计主要集中在体系结构表达式的细化,选择详细的数据结构和算法。,【本章引言】,软件详细设计的任务及步骤软件详细设计的图形工具软件详细设计的方法,【本章重点】,了解软件详细设计的任务及步骤;了解PDL语言的使用;掌握程序流程图、N-S图、PAD图、判定树及判定表;掌握Jackson设计方法和Warnier 设计方法及其设计过程。,【学习目标】,5.1.1 详细设计的任务 软件设计是一个把软件需求转换为软件表示的过程。从技术的角度划分,详细设计可以分为数据设计、系统结构设计以及过程代码设计。,5.1 详细设计概述,5.1.2 详细设计的步骤 详细设计从体系结构设计阶段开始,直到得到一张编码阶段之前的详细完整的设计图。,5.2 详细设计的图形描述工具 目前流行的工具可以分为三类:图形工具;如程序流程图、盒图、PAD图、序列图、数据流图。表格工具;如判定表。语言工具;如程序设计语言PDL,程序流程图 程序流程图又称为程序框图,是详细设计中最古老、使用最广泛的图形描述工具。是流经一个系统的信息流、观点流或部件流的图形代表。,1顺序型结构 顺序结构由带箭头的控制线依次连接几个处理方框构成。,2.选择型结构 选择型结构是流程图中最为常用的结构,其结构构造有两种,一种是条件选择结构又称为IF-THEN-ELSE结构,使用菱形表现逻辑判定条件,条件结果决定选择两个处理方框中的一个。,No,处理1,决策条件1,Yes,处理2,决策条件2,Yes,处理n,决策条件n,Yes,No,No,重复执行某种功能的程序时就用到循环结构,流程图中循环型结构分为两种,一种是先判定型循环,又称为DO-WHILE型循环结构,测试一个循环控制条件为真时,就重复执行特定的处理。,3循环型结构,循环条件,处理,No,Yes,循环条件,处理,No,Yes,5.2.2 N-S图 Nasssi和Shneiderman提出了一种符合结构化程序设计原则的图形描述工具,称为N-S图,又叫盒图。,5.2.3 PAD图,PAD图是问题分析图(Problem Analysis Diagram)的英文缩写,它使用二维树形结构的图形来描述程序的逻辑,比流程图更容易读懂,结构清晰。PAD图中从左竖线上端的结点开始执行,自上而下,从左及右顺序执行,遍历所有结点来表示程序的控制流。,5.2.4 过程设计语言PDL,PDL是过程设计语言(Program Design Langruage)的英文缩写,又称为伪码(Pseudocode)它把说明性的文字直接嵌入到PDL语句里。,PROCEDURE spell check isBEGINsplit document into single wordslook up words in dictionarydisplay words which are not in dictionarytreat a new dictionaryEND spell chck,PDL的实例:查找拼错单词的程序,PROCEDURE 查找拼错单词,PROCEDURE 查找拼错单词 BEGIN把整个文件分离成单词查字典找到这些单词显示字典中查不到的单词创建一个新字典 END,1数据说明,在PDL程序中它的功能是指明数据的类型及作用域。其格式为:TYPE变量名IS限定词1限定词2说明:变量名是一个模块内部使用的变量或模块间共用的全局变量;限定词1标明数据类型;具体如下。SCALAR纯量、ARRAY数组、LIST列表、STRING字符、STRUCTURE结构限定词2标明该变量的作用域例如:TYPE number IS STRING LENGTH(12),2块程序结构,PDL的过程元素是由块结构构成的,而块将作为一个单个的实体来执行。其格式为:BEGIN程序块名END,3输入/输出描述,PDL中输入/输出说明语句十分灵活,变化也很多。其格式为:READ/WRITE TO 设备 I/O表 或者ASK 询问ANSWER 响应选项,说明:设备表示物理的I/O设备,如磁盘、打印机;I/O表表示被传送的变量例如,ASK”select the target direction”ANSWER”left”,”right”I/O输入输出描述通常可以扩充,如音频输出、面向窗口、下拉菜单界面等。,4子程序结构,把PDL中的过程称为子程序。其格式为:PROCEDURE子程序名属性INTERFACE参数表 END,Input arrayAMax=A(1)DO FOR i=2 to nIF MaxA(i)Set Max=A(i)ENDIFENDFORPrint Max,BEGINEnter a vectorSet Maximum to the value of the first element in the vectorDO FOR each second one to the lastIF value of element is greater than the Maximum value THEN Set Maximum to the value of the elementENDIF ENDFOR Print the Maximum valueEND,5.2.5 判定表和判定树1判定表判定表(Decision table)也是描述加工的一种图形工具,呈表格形。判定表共分四大部分,以下面学生的奖学金评定为例,说明判定表的组织方法和应用。奖励的目的在于鼓励学生的品学兼优,此处理功能是要合理确定奖学金评定等级。决定受奖的条件为:成绩优秀占70或50以上,成绩为中或中以下占15或20以下,团结纪律为优良或一般者。奖励方案为一等奖、二等奖、三等奖、鼓励奖四种。因为受奖条件有些是相容的,相互组合的项较多。描述此学生奖励政策的判定表,表5-1学生奖励政策的判定表,2判定树,判定树又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。,表5-2货单操作判定表,其对应的判定树如下:,这一判定树比起文字叙述,使人一目了然,清晰地表达了在什么情况下采取什么策略,不易产生逻辑上的混乱。因而判定树是描述基本处理逻辑功能的有效工具。,判定表或判定树都是以图形形式描述数据流的加工逻辑,它结构简单,易懂易读。尤其遇到组合条件的判定,利用判定表或判定树可以使问题的描述清晰,而且便于直接映射到程序代码。在表达一个加工逻辑时,判定树、判定表都是好的描述工具,根据需要可以交叉使用。,5.3 Jackson设计方法,5.3.1 Jackson方法概述及其图例,Jackson方法有时也称为面向数据结构的软件设计方法,简称JSP方法。Jackson方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本的结构形式就是顺序、选择和重复。,顺序结构 选择结构 重复结构,例如要用Jackson图表示产生上面的学生名册文件的程序的程序结构:把学生名册生成为一个计算机文件,则该程序结构可以用下图的Jackson图来表示:,这个Jackson图首先声明了该学生名册表格由表头和表体两部分组成。其中表头又顺序包括表名和字段名。而表体可由任意行(0行或多行)组成,每行包括学生的姓名、性别、班级和学号。班级是本科的,学号项是本科生学号;班级是研究生的,学号项是研究生学号。,5.3.2 Jackson程序设计过程,1分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。2找出输入数据结构和输出数据结构中有对应关系的数据单元。3按以下的规则由输入、输出的数据结构导出程序结构。4.列出基本操作与条件,并把它们分配到程序结构图的适当位置。5.用伪码写出程序。,Jackson方法通过五个步骤来完成设计:,5.4 Warnier 设计方法,Warnier方法又称为逻辑构造程序的方法,简称LCP法(Logically Constructing Program)。Warnier方法也是一种软件开发方法。,5.4.1 Warnier方法概述及其图例,Warnier图是由嵌套的花括号、伪代码以及少量说明和符号组成的层次树。花括号:区分数据结构的层次,在一个花括号内的所有名字都属于同一类信息。异或符号:表明一类信息或一个数据元素在一定条件下才出现,而且在这个符号上、下方的两个名字所代表的数据只能出现一个。圆括号:中间的数字指明了这个名字代表的信息类(或元素)在这个数据结构中重复出现的次数。,Warnier图也具有表达数据结构和表达程序结构的双重功能。Warnier图是表示数据层次结构的一种图形工具,它用树形结构来描绘数据结构。它还能指出某一类数据或某一数据元素重复出现的次数,并能指明某一特定数据在某一类数据中是否是有条件的出现。在进行软件设计时,从Warnier图入手,能够很容易转换成软件的设计描述。,以报纸的自动编辑系统为例。通常报纸的版面采用以下格式。,头版部分 社论部分 副刊部分头条新闻 社论 体育新闻国内新闻 专栏 商业新闻当地新闻 读者来信 广告讽刺漫画,上面给出的报纸概观就是一个数据的层次结构。下面给出了用Warnier图表示的报纸的数据层次结构。,在这个Warnier图中,用花括号“”表示层次关系,在同一括号下,自上到下是顺序排列的数据项。在有些数据项名字后面附加了圆括号,给出该数据项重复的次数。例如,社论(1,1)表示社论占一栏;专栏(1,3)表示专栏占1到3栏;讽刺漫画(0,1)表示讽刺漫画可有可无,若有就占一栏。另外,Warnier图可以通过细化组合数据项进一步分解信息域。,Warnier程序设计过程,1通过分析和确定输入数据和输出数据的逻辑结构,确认数据流程并画出Warnier图的数据结构。2根据输入的数据结构得出程序的逻辑结构,再用Warnier图画出程序的处理过程。3根据以上两步的结构,画出程序的流程图。4画出程序流程图并自上而下给每个处理框编序号,分类写出伪码指令。5对4的伪指令进行分类排序,并描述出程序处理过程的伪代码。,详细设计常用的描述方式包括流程图、盒图、问题分析图和程序设计语言(PDL),5.5 小结,图形工具利用图形工具可以把过程的细节用图形描述出来。表格工具可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。语言工具用某种高级语言(称之为伪码)来描述过程的细节。程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。,N-S图盒图是一种符合结构化程序设计原则的图形描述工具,又称之为N-S图。PAD图是用结构化程序设计思想表现程序逻辑结构的图形工具。PDL(过程设计语言)是所有非正文形式的过程设计工具的统称,到目前为止已出现多种PDL语言。判定表(Decision table)也是描述加工的一种图形工具,呈表格形。,Jackson系统开发方法(JSD,Jackson System Development)是一种典型的面向数据结构的分析设计方法。Warnier程序设计方法另一种面向数据结构的设计方法,又称为逻辑地构造程序的方法,简称LCP(Logical Construction of Programs)方法。,5.6 习题,概述软件详细设计的任务及步骤。简述软件详细设计的图形工具有哪些。详细设计的任务是什么?什么是结构化程序设计?用N-S图表示三种基本结构。简述Jackson程序设计方法的主要内容。简述Wariner程序设计方法的主要内容,7.用判定树画出此分配办法。【说明】某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。8.请就下述说明中的伪码程序画出N-S盒图。【说明】一段伪码程序。STARTINPUT(A,B,C)IF A 6 THEN X=5ELSE X=2END IFIF B 15 THEN Y=10ELSE Y=4END IFIF C 25 THEN Z=15 ELSE Z=6END IF PRINT(X,Y,Z)STOP,Jackson结构图解和图解逻辑与Wariner图有什么不同?用Jackson图描绘下述的一列火车的构成:一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。火车头既可能是内燃机车也可能是电器机车。车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。此外,在硬卧车厢和软卧车厢之间还有一节餐车。介绍软件测试流程中的各个方法。概括测试用例的设计过程。根据决策表方法设计具体测试用例。,