软件工程ppt 05详细设计课件.ppt
《软件工程ppt 05详细设计课件.ppt》由会员分享,可在线阅读,更多相关《软件工程ppt 05详细设计课件.ppt(130页珍藏版)》请在三一办公上搜索。
1、授课教师:梁丽,软件工程,西华大学数学与计算机学院,第五章 详细设计,内容要点:本章主要介绍详细设计的基本任务、描述方法和设计方法。 教学重点:详细设计的基本任务教学难点:流程图、PAD图及过程设计语言,详细设计与总体设计,详细设计以总体设计阶段的工作为基础,但又不同于总体设计阶段,主要表现为以下两方面:(1)在总体设计阶段,数据项和数据结构以比较抽象的方式描述,例如,总体设计可以申明一组值从概念上表示一个矩阵,详细设计就要确定用什么数据结构来实现这样的矩阵。(2)详细设计要提供关于算法的更多的细则,例如,总体设计可以申明一个模块的作用是对一个表进行排序,详细设计则要求确定使用哪种排序算法。在
2、详细设计阶段为每个模块增加了足够的细节,使得程序员能够以相当直接的方式编码每个模块。,因此,详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有:(1)详细的算法(2)数据表示和数据结构(3)实施的功能和使用的数据之间的关系 每个模块被编码成过程、子程序、函数或企图类型的命名实体。 详细设计的目的是具体确定实现目标系统的精确描述,即对系统中每个模块的内部过程进行设计和描述。使程序员可以将这种描述直接翻译为某种语言程序。,详细设计与总体设计,详细设计阶段:,根本目标是确定应该怎样具体地实现所要求的系统。概念详细设计主要确定每个模块具体执行过程,也称过程设计。详细设计的结果基本上决定
3、了最终的程序代码的质量。详细设计的任务不是编写程序,而是要设计出程序的“蓝图”,便于以后根据这个蓝图写出实际的程序代码。, 为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。 为模块内的数据结构进行设计。 对数据库进行物理设计,即确定数据库的物理结构。 其他设计。根据软件系统类型,可能要进行代码设计、输入/输出格式设计、人机对话设计。 编写详细设计说明书。 评审。评审处理过程的算法和数据库的物理结构。,详细设计的基本任务:,结构程序设计(SP),结构化程序设计是一种典型的面向数据流的软件设计方法,它采用采用自顶向下、逐步求精的设计方法和单入口单出口
4、的控制结构,且只包含顺序、选择和重复3种结构。基本要点是: 采用自顶向下、逐步求精的程序设计方法:详细设计中某个模块内部处理过程仍然可以逐步求精,降低处理细节的复杂程度。,结构程序设计, 使用3种基本控制结构(顺序、选择和重复,其共同点是单入口、单出口)构造程序: 用顺序方式对过程分解,确定各部分的执行顺序。 用选择方式对过程分解,确定某个部分的执行条件。 用循环方式对过程分解,确定某个部分进行循环的开始和结束的条件。 对于处理过程仍然模糊的部分反复使用以上分解方法,最终将所有细节确定下来。,严格控制GOTO语句,仅在下列情形才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造。 若
5、不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况下。,结构化程序设计的主要原则,例 打印A, B, C三数中最小者的程序,程序1 if ( A B ) goto b12; if ( B C ) goto b11; b10: printf (“%d”, C ); goto b14; b11: printf (“%d”, B ); goto b14; b12: if ( A C ) goto b13; goto b10; b13: printf (“%d”, A ); b14: ,程序2 if ( A B and A C ) printf (“%d”, A ); e
6、lse if ( A B and B C ) printf (“%d”, B ); else printf (“%d”, C ); ,结构程序设计,主程序员组的组织形式:突出主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量和软件生产率。其组织形式是: 一个主程序员:负责全部技术活动。 一个后备程序员:协调、支持主程序员。 一个程序管理员:负责事务性工作,如收集、记录数据,文档资料管理等。 一些专家(如通信专家、数据库专家)。 其他技术人员。,自顶向下,逐步求精, 在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。 把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一
7、系列用某种程序设计语言写成的程序。,自顶向下,逐步求精,例,用筛选法求100以内的素数 筛选法就是从2到100中去掉2,3,9,10的倍数,剩下的就是100以内的素数。 为了解决这个问题,可先按程序功能写出一个框架。,main ( ) /程序框架 建立2到100的数组A ,其中Aii; -1 建立2到10的素数表 B ,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A 中所有没有被剔除的数; -4,main ( ) /*建立2到100的数组A ,其中Aii*/for ( i = 2;i = 100;i+ ) Ai = i;/* 建立2到10的素数表B
8、 ,其中存放2到10以内的素数*/B1 =2;B2 = 3;B3 = 5;B4 = 7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for ( j = 1;j = 4;j+ ) 检查A 所有的数能否被Bj整除并将 能被整除的数从A 中剔除; -3.1 /*输出A 中所有没有被剔除的数*/ for ( i = 2;i = 100;i+ ) 若Ai没有被剔除,则输出之 -4.1,对框架中的局部再做细化,得到整个程序。( ) /*建立2到100的数组A ,其中Aii*/for ( i = 2;i = 100;i+ ) Ai = i;/* 建立2到10的素数表B ,其中存放2到10以内的素数*/B
9、1 =2;B2 = 3;B3 = 5;B4 = 7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for ( j = 1;j = 4;j+ )/*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/for ( i = 2;i = 100;i+) if ( AiBj * Bj = Ai ) Ai = 0; /*输出A 中所有没有被剔除的数*/ for ( i = 2; i = 100;i+) /*若Ai没有被剔除,则输出之*/ if ( Ai != 0 ) printf ( “A%d%dn”,i,Ai ); , 符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率 用先全局
10、后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解,自顶向下,逐步求精方法的优点:, 程序自顶向下,逐步细化,分解成一个树形结构。在同一层的节点上的细化工作相互独立。有利于编码、测试和集成 程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大 每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查 有利于设计的分工和组织工作。,自顶向下,逐步求精方法的优点:, 在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类: 图形工具 表格工具 语言工具,详细设计的
11、工具,图形工具: 结构化程序流程图:是程序逻辑结构的描述工具。 盒图(N-S图):描述常用的基本控制结构。 问题分析图(简称PAD图):是一种算法描述工具。 IPO图:描述模块间的信息传递和模块内部的处理。,详细设计的工具,表格工具: 判定表:是描述逻辑条件复杂的算法。语言工具: 过程设计语言(简称PDL):是一种用于描述模块算法设计和处理细节的语言。,详细设计的工具, 程序流程图也称为程序框图,是一种描述程序逻辑结构的工具。 结构化流程图: 要求流程图应由3种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉,从而克服了流程图的最大缺陷。 程序流程图使用五种基本控制结构是:,程序流程图,示例
12、,程序流程图的标准符号,循环的标准符号 注解的使用,多出口判断,优点: 直观清晰、易于使用,是开发者普遍采用的工具。缺点: 可随心所欲地画控制流程线的流向,容易造成非结构化的程序结构。编码时势必不加限制地使用GOTO语句,导致基本控制块多入口多出口,使软件质量受到影响,与软件设计原则相违背。 流程图不易反映逐步求精的过程,往往反映的是最后的结果。 不易表示数据结构。 对于大型软件而言,流程图过于琐碎,不容易阅读和修改。,程序流程图, 五种基本控制结构由五种图形构件表示。,盒图(N-S图):,(1) 顺序型,A,B,C,(2) 选择型(If then else)If then else If t
13、hen,A,B,F,条件,T,A,F,T,条件,then 部分,then 部分,else部分,(3)多分支选择型(CASE型),A1,值1,A2,An,.,.,条件,值2,值n,(4) WHILE重复型 (5) UNTIL重复型,S(循环体),DO-WHILE P,S(循环体),REPEAT UNTIL P,(先测试循环),(后测试循环),循环条件,(6) 移出标记,A,C,B,F,X6,T,A:,D,(调用结构),示例,N-S图的嵌套定义形式,主要特点: 控制结构明确 禁止任何转移控制 容易确定数据作用域 可以表现模块嵌套结构。盒图是训练、养成结构化程序设计思维方式和解决方案的有效工具。,盒
14、图(N-S图):,问题分析图(PAD图),PAD图是一种由左往右展开的二维树形结构,它的控制流程为自上而下,从左到右地执行。优点: 清晰反映程序的层次结构。 支持逐步求精的设计方法。 易读易写,使用方便。 支持结构化程序设计原理。 可自动生成程序,可由软件工具自动生成相应源代码。,问题分析图(PAD图),基本控制结构:(1)顺序结构 (2)选择结构,A,B,C,A,B,T,F,条件,(3)重复结构,WHILE C,S,UNTIL C,S,(先测试循环),(后测试循环),等价的PASCAL语言:REPEAT S UNTIL C,等价的PASCAL语言:WHILE C DO S,(4) 多分支选择
15、型(CASE型),A1,值1,值2,值n,A2,An,.,.,.,.,条件,PAD描述的示例,对应于增量型循环结构for i := n1 to n2 step n3 do在PAD中有相应的循环控制结构,PAD的扩充控制结构,例1:对数组X进行排序。 “自顶而下,逐步求精”,J:=h,k:=h+1,n,J:=k,h:=1,n-1,排好第h个X h,W:=XhXh:=XjXj:=w,1、循环一次,排好一个Xh,排好第h个X h,找 XJ= MAX(XhXn),交换 XJ 和 Xh,2、细化,(a),(b),(b),(a),3、连接各图,构成完整的PAD图,h:=1,n-1, 判定表用于表示程序的静
16、态逻辑 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理 要求将程序流程图中的多分支判断都改成两分支判断,判定表,判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。,特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。,通常由四部分组成。条件框 条件定义。操作框 操作的定义。条件条目 各条件的取值及组合。操作条目 在各条件取值组合下所执行的操作。,例如: 对商店每天的营业额所收税率, 列出与一个具体过程(或模块)有关的所有处理。 列出过程执行期间的所有条件(或所有判断)。 将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。 将右部
17、每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。,建立判定表的步骤:,例:一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。,1 2 3 4,1000元 Y Y Y N 信誉好 Y N N - 20 年 - Y N - 优 惠 X X 正 常 X X,化简后,1 2 3 4 5 6 7 8,1000元 Y Y Y Y N N N N 信誉好 Y Y N N Y Y N N20 年 Y N Y N Y N Y N优 惠 X X X正 常 X X X X X,Y-满足条件 N-不满足条件 X-选中
18、判定的结论,判定表应用举例,无多分支判断结构,特点:描述一般组合条件较清晰,易理解。不易输入计算机。,营业额, 1000元 1000元 正常处理,好的支付信誉 优惠处理坏的支付信誉, 20年 优惠处理 20年 正常处理,如上例,判定树, PDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的内语法又是灵活自由的,可使用自然语言的词汇。,PDL (Program Design Language),PDL语言的成分是:数据说明、处理
19、过程描述、输入/输出 PDL的语法是开放式的,其外层语法是确定的,而内层语法则不确定。外层语法描述控制结构它用类似于一般程序设计语言控制结构的关键字: 如 : IF-THEN-ELSE , WHILE-DO REPEAT-UNTIL,DO CASE, DO WHILE 等表示。 有时还用关键字反排,表示控制结构结束: DO - OD IF -FI,例如: if X is not negative then return(square root of X as a real number); else return(square root of -X as an imaginary number
20、); 外层语法IF-ELSE-THEN是确定的,内层操作“square root of X ”是不确定的。, 提供全部结构化控制结构、数据说明和模块特征。能对PDL正文进行结构分割,使之变得易于理解。 为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。,PDL的特点:, 内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。 有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。 有子程序定义与调用机制,用以表达各种方式的接口说明。,PDL的特
21、点:,面向数据结构的设计,软件系统本质上都是信息处理系统。许多应用系统中,信息往往具有清晰的层次结构,输入/输出数据有明显的对应关系。问题求解方法的构造往往依赖于问题描述的数据结构,即使求解同一问题,使用的数据结构不同,相应的求解算法也不同。因此软件设计与数据结构有极大的相关性。如果一个数据结构具有选择性质,那么应该使用条件选择结构处理;如果一个数据结构具有重复性,则一定要求使用循环控制结构处理;如果一个数据结构具有层次组织,则软件控制结构也要求是分层的。由此提出了一类面向数据结构的设计方法。Jackson方法是面向数据结构的设计方法的代表之一。,1. 概念 Jachson方法是面向数据结构的
22、设计方法。2. JSP用于开发规模较小的数据处理系统的设计。该方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构。,Jackson方法,3. 特点 Jackson方法有自己的描述工具Jackson结构图,用3种基本结构(顺序、选择和重复)来表示。其特点是: 能对结构进行自顶向下的分解,因此可以表示层次结构。 结构易读,形象直观。 既能表示数据结构也能表示程序结构,且表示的是组成关系。,Jackson方法,4. JSP设计步骤 分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。
23、找出输入数据结构和输出结构中有对应关系的数据单元,对应关系指数据单元在数据内容上、数量上和顺序上有直接的因果关系。 按一定的规则由输入、输出的数据结构导出程序结构。 列出基本操作与条件,并把它们分配到程序结构图的适当位置。 用伪码(也称图解逻辑)写出程序。,Jackson方法,5、优缺点 Jackson方法对问题分析的基本思想仍然是自顶而下,逐步求精,问题求解层次化和模块化。它与SD方法的区别仅仅在于主要以数据结构(而不是数据流驱动)来建立程序模块和控制结构。 对于数据结构与问题结构密切相关的系统,该方法导出的系统设计易于理解,当问题发生局部变化时,也易于修改。特别适用于具有良好层次数据结构的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程ppt 05详细设计课件 软件工程 ppt 05 详细 设计 课件
链接地址:https://www.31ppt.com/p-1444592.html