软件工程ppt-05详细设计课件.ppt
《软件工程ppt-05详细设计课件.ppt》由会员分享,可在线阅读,更多相关《软件工程ppt-05详细设计课件.ppt(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、:梁丽梁丽我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第五章第五章 详细设计详细设计l内容要点:内容要点:本章主要介绍详细设计的基本任务、描述本章主要介绍详细设计的基本任务、描述方法和设计方法。方法和设计方法。 l教学重点:教学重点:l详细设计的基本任务详细设计的基本任务l教学难点:教学难点:l流程图、流程图、PAD图及过程设计语言图及过程设计语言详细设计与总体设计详细设计与总体设计详细设计以总体设计阶段的工作为基础,但又详细设计以总体设计阶段的工作为基础,但又不同于总体设计阶段,主要表现为以下两方面:
2、不同于总体设计阶段,主要表现为以下两方面:(1)在总体设计阶段,数据项和数据结构以比较抽)在总体设计阶段,数据项和数据结构以比较抽象的方式描述,例如,总体设计可以申明一组值从概象的方式描述,例如,总体设计可以申明一组值从概念上表示一个矩阵,详细设计就要确定用什么数据结念上表示一个矩阵,详细设计就要确定用什么数据结构来实现这样的矩阵。构来实现这样的矩阵。(2)详细设计要提供关于算法的更多的细则,例如,)详细设计要提供关于算法的更多的细则,例如,总体设计可以申明一个模块的作用是对一个表进行排总体设计可以申明一个模块的作用是对一个表进行排序,详细设计则要求确定使用哪种排序算法。在详细序,详细设计则要
3、求确定使用哪种排序算法。在详细设计阶段为每个模块增加了足够的细节,使得程序员设计阶段为每个模块增加了足够的细节,使得程序员能够以相当直接的方式编码每个模块。能够以相当直接的方式编码每个模块。 因此,详细设计的模块包含实现对应的总体设计的模因此,详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有:块所需要的处理逻辑,主要有:(1)详细的算法)详细的算法(2)数据表示和数据结构)数据表示和数据结构(3)实施的功能和使用的数据之间的关系)实施的功能和使用的数据之间的关系 每个模块被编码成过程、子程序、函数或企图类型每个模块被编码成过程、子程序、函数或企图类型的命名实体。的命名实体。
4、详细设计的目的详细设计的目的是具体确定实现目标系统的精是具体确定实现目标系统的精确描述,确描述,即对系统中每个模块的内部过程进行设计和描即对系统中每个模块的内部过程进行设计和描述。述。使程序员可以将这种描述直接翻译为某种语言程序。使程序员可以将这种描述直接翻译为某种语言程序。 详细设计与总体设计详细设计与总体设计:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 为每个模块进行详细的算法设计为每个模块进行详细的算法设计。用某种图用某种图形、表格、语言等工具将每个模块处理过程的形、表格、语言等工具将每个模块处
5、理过程的详细算法描述出来。详细算法描述出来。 为模块内的数据结构进行设计。为模块内的数据结构进行设计。 对数据库进行物理设计,对数据库进行物理设计,即确定数据库的物即确定数据库的物理结构。理结构。 其他设计。其他设计。根据软件系统类型,可能要进行根据软件系统类型,可能要进行代码设计、输入代码设计、输入/输出格式设计、人机对话设输出格式设计、人机对话设计。计。 编写详细设计说明书。编写详细设计说明书。 评审。评审。评审处理过程的算法和数据库的物理评审处理过程的算法和数据库的物理结构。结构。 :结构化程序设计是一种典型的结构化程序设计是一种典型的面向数据面向数据流流的软件设计方法,它采用采用的软件
6、设计方法,它采用采用自顶向下、自顶向下、逐步求精逐步求精的设计方法和的设计方法和单入口单出口单入口单出口的控制的控制结构,且只包含结构,且只包含顺序顺序、选择选择和和重复重复3 3种结构。种结构。基本要点是:基本要点是: 采用自顶向下、逐步求精的程序设计方法采用自顶向下、逐步求精的程序设计方法:详细设计中某个模块内部处理过程仍然可以详细设计中某个模块内部处理过程仍然可以逐步求精,降低处理细节的复杂程度。逐步求精,降低处理细节的复杂程度。 使用使用3 3种基本控制结构(顺序、选择和重种基本控制结构(顺序、选择和重复,其共同点是单入口、单出口)构造程序:复,其共同点是单入口、单出口)构造程序: 用
7、顺序方式对过程分解,确定各部分的用顺序方式对过程分解,确定各部分的执行顺序。执行顺序。 用选择方式对过程分解,确定某个部分用选择方式对过程分解,确定某个部分的执行条件。的执行条件。 用循环方式对过程分解,确定某个部分用循环方式对过程分解,确定某个部分进行循环的开始和结束的条件。进行循环的开始和结束的条件。 对于处理过程仍然模糊的部分反复使用对于处理过程仍然模糊的部分反复使用以上分解方法,最终将所有细节确定下来。以上分解方法,最终将所有细节确定下来。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物,仅在下列情
8、形才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造。 若不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况下。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物结构化程序设计的主要原则结构化程序设计的主要原则我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物if ( A B ) goto b12; if(B C ) goto b11; b10: printf (“%d”, C );
9、 goto b14; b11: printf (“%d”, B ); gotob14; b12: if ( A C ) goto b13; goto b10; b13: printf (“%d”, A ); b14: 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物if( A B and A C ) printf (“%d”, A ); elseif ( A B and B C ) printf (“%d”, B ); else printf (“%d”, C );主程序员组的组织形式:主程序员组的组织形式
10、:突出主程序员的突出主程序员的领导,设计责任集中在少数人身上,有利于领导,设计责任集中在少数人身上,有利于提高软件质量和软件生产率。其组织形式是:提高软件质量和软件生产率。其组织形式是: 一个主程序员:负责全部技术活动。一个主程序员:负责全部技术活动。 一个后备程序员:协调、支持主程序员。一个后备程序员:协调、支持主程序员。 一个程序管理员:负责事务性工作,如一个程序管理员:负责事务性工作,如收集、记录数据,文档资料管理等。收集、记录数据,文档资料管理等。 一些专家(如通信专家、数据库专家)。一些专家(如通信专家、数据库专家)。 其他技术人员。其他技术人员。自顶向下,逐步求精自顶向下,逐步求精
11、 在详细设计和编码阶段,应当采取自在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。顶向下,逐步求精的方法。 把一个模块的功能逐步分解,细化为把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。用某种程序设计语言写成的程序。自顶向下,逐步求精自顶向下,逐步求精 筛选法就是从筛选法就是从2 2到到100100中去掉中去掉2,3,9,102,3,9,10的倍数,剩下的就是的倍数,剩下的就是100100以以内的素数。内的素数。 为了解决这个问题,可先按程序功能为了解决这个问题,可先按程序功能写出一个框架。写出一个框架
12、。main( ) /建立2到100的数组A ,其中Aii; -1 建立2到10的素数表 B ,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A 中所有没有被剔除的数; -4main ( ) /*建立2到100的数组A ,其中Aii*/for ( i = 2;i = 100;i+ ) Ai = i;/* 建立2到10的素数表B ,其中存放2到10以内的素数*/B1 =2;B2 = 3;B3 = 5;B4 = 7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for(j = 1;j = 4;j+ ) 检查A 所有的数能否被Bj整除并将 能被整除的数从A
13、 中剔除; -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以内的素数*/B1 =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
14、* Bj = Ai ) Ai = 0; /*输出A 中所有没有被剔除的数*/ for ( i = 2; i XJ(a)(b)(b)(a)3 3、连接各图,构成完整的连接各图,构成完整的PADPAD图图h:=1,n-1 判定表用于表示程序的判定表用于表示程序的静态逻辑静态逻辑 在判定表中的条件部分给出所有的在判定表中的条件部分给出所有的两两分支判断分支判断的列表,动作部分给出的列表,动作部分给出相应的相应的处理处理 要求将程序流程图中的多分支判断都要求将程序流程图中的多分支判断都改成两分支判断改成两分支判断判定表判定表我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?
15、但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 判定表是一种二维的表格,常用于较复杂的组合条件判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。(与结构化语言比较)。 条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解. .不易输入计不易输入计算机。算机。通常由四部分组成。通常由四部分组成。条件框条件框条件定义。条件定义。操作框操作框操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取
16、值组合下所执行的操作。例如例如: : 对商店每天的营业额所收税率对商店每天的营业额所收税率营业额营业额X ()1000X50005000 X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N - Y N N - 20 20 年年 - - Y N - Y N - 优优 惠惠 X X X X 正正 常常 X X X X 化简后化简后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N NY Y N N Y Y N N 20 20 年
17、年 Y N Y N Y N Y NY N Y N Y N Y N优优 惠惠 X X XX X X正正 常常 X X X X XX X X X XY-Y-满足条件满足条件 N N- -不满足条件不满足条件 X-X-选中判定的结论选中判定的结论我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感
18、到愉快,证实我的猜测没有错:表里边有一个活的生物特点特点: :描述一般组合条件较清晰,易理解。不易输入描述一般组合条件较清晰,易理解。不易输入计算机。计算机。营业额营业额 10001000元元 1000 1000元元 正常处理正常处理好的支付信誉好的支付信誉 优惠优惠处理处理坏的支付信誉坏的支付信誉 20 20年年 优惠处理优惠处理 20 20年年 正常处理正常处理如上例如上例 PDLPDL是一种用于描述功能模块的是一种用于描述功能模块的算法设算法设计计和和加工细节加工细节的语言。称为设计程序用的语言。称为设计程序用语言。它是一种伪码。语言。它是一种伪码。 伪码的语法规则分为伪码的语法规则分为
19、“外语法外语法”和和“内语法内语法”。 PDL PDL具有严格的具有严格的关键字外语法关键字外语法,用于,用于定义控制结构和数据结构,同时它的定义控制结构和数据结构,同时它的表表示实际操作和条件的内语法示实际操作和条件的内语法又是灵活自又是灵活自由的,可使用自然语言的词汇。由的,可使用自然语言的词汇。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物PDLPDL语言的成分是:数据说明、处理过程描语言的成分是:数据说明、处理过程描述、输入述、输入/ /输出输出 PDLPDL的语法是开放式的,其外层语法是的语法是
20、开放式的,其外层语法是确定的,而内层语法则不确定。外层语确定的,而内层语法则不确定。外层语法描述控制结构它用类似于一般程序设法描述控制结构它用类似于一般程序设计语言控制结构的关键字:计语言控制结构的关键字: 如如 : IF-THEN-ELSE , WHILE-DO IF-THEN-ELSE , WHILE-DO REPEAT-UNTIL,DO CASE, DO WHILE REPEAT-UNTIL,DO CASE, DO WHILE 等等表示。表示。 有时还用关键字反排,表示控制结构结有时还用关键字反排,表示控制结构结束:束: DO - OD IF -FIDO - OD IF -FI我吓了一跳
21、,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物例如:例如: if X is not negativeif X is not negative then then return(square root of X as a real number); return(square root of X as a real number); else else return(square root of -X as an imaginary return(square root of -X as an imaginary n
22、umber); number); 外层语法外层语法IF-ELSE-THENIF-ELSE-THEN是确定的,内层操作是确定的,内层操作“square square root of X root of X ”是不确定的。是不确定的。 提供全部结构化控制结构、数据说明提供全部结构化控制结构、数据说明和模块特征。能对和模块特征。能对PDLPDL正文进行结构分割,正文进行结构分割,使之变得易于理解。使之变得易于理解。 为了区别关键字,规定关键字一律大为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。字加下划线,或者规定
23、它们为黑体字。PDLPDL的特点:的特点: 内语法使用自然语言来描述处理特性。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。精力放在描述算法的逻辑上。 有数据说明机制,包括简单的有数据说明机制,包括简单的( (如标量如标量和数组和数组) )与复杂的与复杂的( (如链表和层次结构如链表和层次结构) )的的数据结构。数据结构。 有子程序定义与调用机制,用以表达有子程序定义与调用机制,用以表达各种方式的接口说明。各种方式的接口说明。PDLPDL的特点:
24、的特点:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物面向数据结构的设计面向数据结构的设计软件系统本质上都是信息处理系统。许多应用系软件系统本质上都是信息处理系统。许多应用系统中,信息往往具有清晰的层次结构,输入统中,信息往往具有清晰的层次结构,输入/输出数据输出数据有明显的对应关系。问题求解方法的构造往往依赖于有明显的对应关系。问题求解方法的构造往往依赖于问题描述的数据结构,即使求解同一问题,使用的数问题描述的数据结构,即使求解同一问题,使用的数据结构不同,相应的求解算法也不同。因此软件设计据结构不同,
25、相应的求解算法也不同。因此软件设计与数据结构有极大的相关性。如果一个数据结构具有与数据结构有极大的相关性。如果一个数据结构具有选择性质,那么应该使用条件选择结构处理;如果一选择性质,那么应该使用条件选择结构处理;如果一个数据结构具有重复性,则一定要求使用循环控制结个数据结构具有重复性,则一定要求使用循环控制结构处理;如果一个数据结构具有层次组织,则软件控构处理;如果一个数据结构具有层次组织,则软件控制结构也要求是分层的。由此提出了一类面向数据结制结构也要求是分层的。由此提出了一类面向数据结构的设计方法。构的设计方法。Jackson方法是面向数据结构的设计方法是面向数据结构的设计方法的代表之一。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 ppt 05 详细 设计 课件
限制150内