软件工程第4章:详细设计wx.ppt
《软件工程第4章:详细设计wx.ppt》由会员分享,可在线阅读,更多相关《软件工程第4章:详细设计wx.ppt(108页珍藏版)》请在三一办公上搜索。
1、软件工程,1,第4章 详 细 设 计,本章要点:详细设计的目标和任务结构化程序的详细设计技术与工具面向对象程序的详细设计,软件工程,2,第4章 详 细 设 计,本章学习目标:深刻理解详细设计的基本任务 深刻理解结构化程序的详细设计和面向对象的详细设计的关系熟练掌握Jackson程序设计、Warnner程序设计方法等设计方法,软件工程,3,详细设计的目标,概要设计,详细设计,细化,软件工程,4,详细设计的任务,算法过程的设计 选择某种图形、表格、语言等合适的工具,表示每个处理过程的详细算法。数据结构的设计 定义处理过程中涉及的概念性数据类型数据库物理设计 确定那些依赖于具体使用的数据库系统的数据
2、存储记录格式、存储方法和存储记录安排等,软件工程,5,详细设计的任务,信息编码设计 为了提高数据处理的效率,将某些数据项的值用某一代号来表示。特点:唯一性、灵活性、简洁性、一致性、实用性、稳定性,软件工程,6,详细设计的任务,测试用例的设计 包括输入数据和预期的结果其他设计 系统结构、人机交互等设计撰写“详细设计说明书”撰写并评审,软件工程,7,结构化程序的详细设计技术,结构化程序的设计技术特点自顶向下,逐步求精单入口、单出口的三种基本流程控制结构 顺序、选择、循环,软件工程,8,结构化程序的详细设计技术,结构化程序的详细设计工具程序流程图盒图判定表与判定树问题分析图,软件工程,9,结构化程序
3、的详细设计技术,结构化程序的详细设计工具程序流程图 程序流程图(Program Flow Diagram简称PFD图)又称为程序框图。程序流程图使用的符号分为国际标准和国内标准,其中国内GB152689标准等同采用国际标准ISO 5807985。使用程序流程图的主要优点是很直观地描述了程序的控制逻辑,便于初学者掌握,而且其表现方式较为灵活,使用起来非常方便。但也存在一定的缺点.,软件工程,10,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)通常我们把由这3种基本控制结构设计的程序称为经典的结构程序设计。有时为了实际使用方便起见,常常还允许使用DO-UNTIL和DO-CASE两
4、种控制结构。如果设计程序时使用了这两种结构,则称为扩展的结构程序设计。,软件工程,11,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图),软件工程,12,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图),软件工程,13,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)案例一:,软件工程,14,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)案例二:电子商务程序流程图,软件工程,15,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)案例三:图书管理系统程序流程图,软件工程,16,结构化程序的详细设计技术,结构化程序的
5、详细设计工具(程序流程图)案例四:一卡通语音播放程序流程图,软件工程,17,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)课堂作业:请设计出ATM自动柜员机程序流程图,软件工程,18,结构化程序的详细设计技术,结构化程序的详细设计工具(程序流程图)它的缺点也非常明显,主要有:程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。程序流程图不易表示数据结构。详细的微观程序流程图每个符号对应于源程序的一行代码,对于提高大型系统的可理解
6、性作用甚微。为此,在使用程序流程图时,必须严格控制箭头流向,严格按照结构化设计的3种基本控制逻辑结构进行程序设计。所谓3种基本控制逻辑结构是指顺序、选择、循环三种结构。,软件工程,19,结构化程序的详细设计技术,结构化程序的详细设计工具2盒图(N-S图)盒图是为了满足结构化需要,特别是取消了程序流程图随意跳转规则后而提出的。,软件工程,20,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)与程序流程图相比较,盒图具有如下明显的优点:l在盒图中不能任意转移控制。l 特定控制逻辑的作用范围明确,可以从盒图上一目了然。l很容易确定局部和全程数据的作用域。l很容易表现嵌套关系,也容
7、易表示模块的层次结构。l 所有的程序结构均用方框表示。因此程序的结构非常清晰。l程序只有一个入口、一个出口,完全能够满足单人口单出口的结构化程序设计要求。l盒图形象直观,具有良好的可视性。循环的范围、条件语句的控制范围等都是一目了然的。l盒图简单,易学易用。主要缺点是:当程序内嵌套的层数增多时,内层方框会越来越小,一方面会增加画图难度,另一方面会影响图形的清晰度。,软件工程,21,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)案例一:盒图没有箭头,因此不允许随意转移控制。坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。,软件工程
8、,22,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)案例二:,软件工程,23,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)案例三:输入两个数a,b,输出较小的数,软件工程,24,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)案例四:求n!,软件工程,25,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)案例五:求两个数的商,软件工程,26,结构化程序的详细设计技术,结构化程序的详细设计工具(盒图(N-S图)课堂作业:请设计出ATM自动柜员机取款的N-S图,软件工程,27,结构化程序的详细设计技术,结构化程
9、序的详细设计工具3 判定表与判定树 在进行软件设计时如遇到复杂的条件选择,有必要使用一种描述机制来清晰地表示复杂的条件组合与动作间的对应关系,判定表就是解决这一问题的有力工具。一张判定表由4部分组成。左上部列出所有条件;左下部列出所有可能做的工作;右上部每一列表示出各种条件的一种可能组合,填入“T”表示条件成立,填入“F”表示条件不成立,空白表示条件成立与否不影响。所以所有列表示条件组合全部可能情况;右下部的每一列是和每一种条件组合相对应的工作,填入“”表示在该列上部规定的条件下做该行左边列出的那项工作,空白表示不做该项工作。,软件工程,28,结构化程序的详细设计技术,结构化程序的详细设计工具
10、(判定表)案例一:某校对于各种不同职称教师,根据是本校专职教师还是外聘兼职教师决定其讲课的每课时津贴标准。本校专职教师每课时津贴费:教授50元副教授40元。讲师30元,助教20元。外聘兼职教师每课时津贴费:教授60元,副教授50元,讲师40元,助教30元。,软件工程,29,结构化程序的详细设计技术,结构化程序的详细设计工具(判定表),教师课时津贴判定表,条件桩,动作桩,条件条目,动作条目,软件工程,30,结构化程序的详细设计技术,结构化程序的详细设计工具(判定表)判定树是判定表的图形化表示,是判定表的变种。由于判定表不直观,需要仔细推敲才能看出它的含义。所以引入判定树后,可以很直观地看出各种复
11、杂的条件组合与相应的动作之间的对应关系。,软件工程,31,结构化程序的详细设计技术,结构化程序的详细设计工具(判定树),软件工程,32,结构化程序的详细设计技术,结构化程序的详细设计工具(判定树)案例二:某工厂对工人的超产奖励政策为:该厂生产两种产品A和B。凡工人每月的实际生产量超过计划指标者均有奖励。奖励政策为:对于产品A的生产者,超产数N小于或等于100件时,每超产1件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。对于产品B的生产者,超产数N小于或等
12、于50件时,每超产1件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。,软件工程,33,结构化程序的详细设计技术,结构化程序的详细设计工具(判定树)案例二:,软件工程,34,结构化程序的详细设计技术,结构化程序的详细设计工具(判定树)案例三:以学生的奖学金评定为例,说明判定表的应用。奖励的目的在于鼓励学生的品学兼优,此处理功能是要合理确定奖学金评定等级。决定受奖的条件为:成绩优秀占70或50以上,成绩为中或中以下占15或20以下,团结纪律为优良或一般者。奖励方案为
13、一等奖、二等奖、三等奖、鼓励奖四种。因为受奖条件有些是相容的,相互组合的项较多。描述此学生奖励政策的判定表,软件工程,35,结构化程序的详细设计技术,结构化程序的详细设计工具(判定树)案例三:,软件工程,36,结构化程序的详细设计技术,结构化程序的详细设计工具(PAD)4.问题分析图(Proble Analysis Diagram,PAD)PAD图是由日本日立公司的二村良彦等人于1973年提出的设计详细算法的图式,它用二维树图表示程序流程,是一种具有很强的结构化特征的分析工具。PAD图完全支持结构化设计方法。PAD图的基本图形符号见下图。,软件工程,37,结构化程序的详细设计技术,结构化程序的
14、详细设计工具4.问题分析图(Proble Analysis Diagram,PAD),软件工程,38,结构化程序的详细设计技术,结构化程序的详细设计工具(问题分析图PAD)PAD图具有以下优点:使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序。PAD图所描绘的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历
15、所有结点。容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。既可用于表示程序逻辑,又可用于描绘数据结构。PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。,软件工程,39,结构化程序的详细设计技术,结构化程序的详细设计工具(问题分析图PAD)正因为PAD图有上面的许多优点,所以PAD图已被ISO认可。但是它还存在缺点,那就是不适应初学者和算法未考虑成熟情况下的设计。,案例一:,软件工程,40,结构化程序的详细设计技术,结
16、构化程序的详细设计工具(问题分析图PAD),案例二:,软件工程,41,结构化程序的详细设计技术,结构化程序的详细设计工具(问题分析图PAD)PAD图是面向高级程序设计语言的,为FORTRAN、COBOL和PASCAL等每种常用的高级程序设计语言都提供了一整套相应的图形符号。由于每种控制语句都有一个图形符号与之对应,显然将PAD图转换成与之对应的高级语言程序比较容易。PAD的执行顺序从最左主干线的上端的结点开始,自上而下依次执行。每遇到判断或循环,就自左而右进入下一层,从表示下一层的纵线上端开始执行,直到该纵线下端,再返回上一层的纵线的转入处。如此继续,直到执行到主干线的下端为止。,软件工程,4
17、2,结构化程序的详细设计技术,课堂作业:1.请设计出ATM自动柜员机取款功能程序流程图、盒图、判定表和判定树。2.请设计出QQ登录功能程序流程图、盒图、判定表和判定树。,软件工程,43,Jackson程序设计方法,面向数据结构的设计是由英国人M。Jackson首先提出和倡导的,所以又称为Jackson程序设计方法(简称JSP)。该方法的基本思想是使程序结构与问题结构相对应,即与数据结构相对应。因此它按输入输出以及内部存储信息的数据结构进行设计,把数据结构的描述变换为对程序结构的描述,有时也称为结构数据设计方法。此方法在欧洲颇为流行,特别适用于设计企事业管理一类的数据处理系统。为了完成从数据结构
18、到程序结构的映射和转换,Jackson同时提出了相互配套使用的表达工具。一种称为Jackson图,另一种称为图解逻辑(Schematic Logic)。Jackson图除了可表达程序结构外,还可以表达数据结构,从而成为在需求分析和程序设计阶段均可使用的一种通用表达方式。图解逻辑类似于程序设计语言,实际上它是一种伪码表示,它使用的是与Jackson图完全对应的伪码表示。,软件工程,44,Jackson程序设计方法,Jackson为了表达程序中使用的数据结构,使用了与程序结构相同的三种基本结构形式,即顺序结构、选择结构和循环结构。使用这三种基本的数据结构表达方法,可以形成更复杂的数据结构。,软件工
19、程,45,Jackson程序设计方法,数据结构组合表示,软件工程,46,Jackson图,Jackson图有以下优点:便于表示层次结构,是对结构进行自顶向下分解的有力工具。形象直观,可读性好。能表示数据结构也能表示程序结构(因为程序结构也只有上述三种基本类型)。便于结构化程序设计,因为只使用了三种基本结构。Jackson图和描绘软件结构的层次图非常相似,但两者表示的含义有本质的不同。层次图中的一个方框通常代表一个模块,模块上下级之间表示的是调用关系,通常一个模块除了调用下级模块外,还完成其他操作;而Jackson图表示的是组成关系,在描绘程序结构时,一个方框并不代表一个模块,通常一个方框只代表
20、几个语句,上层方框中包括的操作仅仅由它下层框中的那些操作组成。,软件工程,47,图解逻辑,Jackson为了将Jackson图表达的设计思想用语言形式准确的描述出来,使用了与Jackson图完全对应的3种基本结构相对应的图解逻辑。图解逻辑是一种描述算法过程的语言,实际上它是一种伪码。与顺序结构相对应的Jackson图解逻辑,使用seq和end关键字:A seq do B;do C;do D;Aend,软件工程,48,图解逻辑,与选择结构相对应的Jackson图解逻辑,使用select、or和end是关键字,其中cond1、cond2和cond3分别是执行B、C或D的条件:A select co
21、nd1do B;or cond2do C;or cond3do D;A end 与重复结构相对应的Jackson图解逻辑,使用iter、until、while和end是关键字,其中cond是条件:A iter until(或while)conddo B;A end,软件工程,49,JSP方法设计步骤,JSP设计方法分为五个步骤:第1步:将数据结构化表示。第2步:找出输入数据结构与输出数据结构的对应关系。第3步:确定程序结构。以输出数据结构为基础,将描绘数据结构的Jackson图映射成描绘程序结构的Jackson图。映射遵从下面三条规则:为每对有对应关系的数据单元,按照它们在数据结构图中的层次在
22、程序结构图的相应层次画一个处理框。如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应。,软件工程,50,JSP方法设计步骤,在输入数据结构中有,但与输出数据结构没有对应关系的数据单元,在程序结构图的适当位置上画一个程序框。在输出数据结构中有,但与输入数据结构没有对应关系的数据单元,在程序结构图的适当位置上画一个程序框。第4步:列出和分配可执行操作。第5步:用Jackson图解逻辑来表示程序。,软件工程,51,JSP方法设计步骤,下面用一个信用卡记账的例子具体说明。信用卡记账系统的输入数据结构是两个实
23、际的账册,它们对应的两个输入文件如图所示。,图4.18 信用卡记账系统的输入,软件工程,52,JSP方法设计步骤,两个实际输入账册都按顾客号码进行登记,所以两个输入文件也是以顾客号码组织记录的。在支付账册中,每个顾客号码行上要登记支付金额、支付日期。则在支付文件中的每个记录中也对应有支付金额(AMT)和支付日期(DATE)项,另外还有标识这个记录的顾客号码(CNO)项。在支付账册中是以顾客号码进行排序的,顾客号码相同的支付记录在支付账册中排列在一起,构成关于该顾客的顾客号码组,在支付文件中也有与之对应的顾客号码组。在顾客主账册中,每一个顾客号码行上登记了顾客号码(CNO)和结余(BAL),给出
24、某一位顾客的支付能力情况。与之对应的顾客主文件每个记录也有这两项。两个输入文件的内容是一致的。对应这两个输入文件的输入数据结构画在文件图示的左侧。,软件工程,53,JSP方法设计步骤,图4.19(a)给出了信用卡记账系统的输出记账报告,在报告中隐含了一个“店方总计”层次。报告中其它部分是顾客信息,因此,隐含了一个与“店方总计”同一层次的“顾客数据”子结构。图4.19(b)给出了根据输入和输出数据结构的对应关系建立的输出文件。,图4.19 信用卡记账系统的输出,软件工程,54,JSP方法设计步骤,从层次性的输入和(或)输出数据结构可以直接推导出程序或进程的过程性表示。例如从图4.19(b)所示的
25、输出文件的Jackson数据结构图所导出的程序结构如图4.20所示。,图4.20 从输出数据结构导出的程序结构,软件工程,55,JSP方法设计步骤,最后,利用Jackson给出的三种图解来表示程序或进程的执行逻辑 在给出程序的过程性描述时,还需要添加一些必要的可执行操作。例如,打开文件、读文件结束符、读表头数据项、读行数据项、打印符号行、打印数字行、关闭文件等等。把它们分配到程序或进程结构的适当位置,以得到一个完整的过程性描述。对于上例中“处理顾客数据”部分,给出过程性描述如下:,软件工程,56,JSP方法设计步骤,PROCESS_CUST_DATA seq open PAY_FILE;ope
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 详细 设计 wx
链接地址:https://www.31ppt.com/p-6610902.html