软件工程软件设计详细设计课件_第1页
软件工程软件设计详细设计课件_第2页
软件工程软件设计详细设计课件_第3页
软件工程软件设计详细设计课件_第4页
软件工程软件设计详细设计课件_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计

3.1软件概要设计概述3.2软件设计的基本原理3.3软件结构准则3.5软件详细设计3.6软件详细设计表示法3.7小结习题软件设计 3.1软件概要设计概述3.5软件详细设计 3.5.1详细设计的基本任务 1.算法设计 用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。 2.数据结构设计 对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。3.5软件详细设计 3.5.1详细设计的基本任务 3.物理设计 对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 4.其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。 3.物理设计 (2)输入/输出格式设计。 (3)人机对话设计:对于一个实时系统,用户与计算机需频繁对话,因此要进行对话方式、内容及格式的具体设计。 5.编写详细设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。

(2)输入/输出格式设计。 (3)程序1(标识符)设计说明:包括功能、性能、输入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。 6.评审 对处理过程的算法和数据库的物理结构都要评审。

(3)程序1(标识符)设计说明:包括功能、性能、输入、 3.5.2详细设计方法 处理过程设计中采用的典型方法是结构化程序设计(SP)方法,最早是由E.W.Dijkstra在20世纪60年代中期提出的。详细设计并不是具体地编程序,而是已经细化成很容易从中产生程序的图纸。因此详细设计的结果基本决定了最终程序的质量。为了提高软件的质量,延长软件的生存期,软件的可测试性、可维护性是重要保障。软件的可测试性、可维护性与程序的易读性有很大关系。详细设计的目标不仅是逻辑上能正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。结构化程序设计方法有以下几个基本要点。 3.5.2详细设计方法 1.采用自顶向下、逐步求精的程序设计方法 在需求分析、概要设计中,都采用了自顶向下、逐层细化的方法。使用“抽象”这个手段,上层对问题抽象、对模块抽象和对数据抽象,下层则进一步分解,进入另一个抽象层次。在详细设计中,虽然处于“具体”设计阶段,但在设计某个模块内部处理过程中,仍可以逐步求精,降低处理细节的复杂度。 1.采用自顶向下、逐步求精的程序设计方法 2.使用三种基本控制结构构造程序

任何程序都可由顺序、选择及重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出口。 2.使用三种基本控制结构构造程序三种方式对模糊过程进行分解:

(1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。 对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。三种方式对模糊过程进行分解:

(1)用顺序方式对过例:在一组数中找出其中最大的数

1输入一组数;1输入一个数组;1输入一个数组;2找出其中的最大数;3输出最大数。3输出最大数。2.1任取一数,假定它就是最大数;2.2将该数与其余各数逐一比较;2.3若发现任何数大于假设的最大数,即取而代之;2.1令”最大数”=数组的第一个元素;2.2从第二个元素至最后一个元素做循环;2.3如果新元素>“最大数”则“最大数”=新元素;3输出“最大数”。求解步骤细化第二步结构化语言描述问题求解逐步细化的过程例:在一组数中找出其中最大的数

1输入一组数;1输

3.主程序员的组织形式 主程序员的组织形式指开发程序的人员应采用以一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三人为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。这种组织形式突出了主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量,并且能有效地提高软件生产率。这种组织形式最先由IBM公司实施,随后其他软件公司也纷纷采用主程序员制的工作方式。 因此,结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法。

3.6软件详细设计表示法

关于描述工具的有关说明:1.为了给出软件结构图中每一个模块的算法和块内数据结构的清晰描述,需要采用适当的表达工具。2.详细设计的表达工具有三类:图形、表格和语言。3.无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。4.详细设计的描述工具除了以前介绍过判定树和判定表外,还有程序流程图、N-S图、PAD图及PDL等几种常用的工具.3.6软件详细设计表示法 关于描述工具的有关说明:图3.8三种基本控制结构的流程图3.6.1程序流程图 程序流程图又称为程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具,图3.8为流程图的三种基本控制结构。图3.8三种基本控制结构的流程图3.6.1程序流程图 流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具,但是它有如下严重缺点: (1)可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构,编码时势必不加限制地使用GOTO语句,导致基本控制块多入口多出口,这样会使软件质量受到影响,与软件设计的原则相违背。 (2)流程图不能反映逐步求精的过程,往往反映的是最后的结果。(3)不易表示数据结构。 为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。 流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具

示例示例例1.“在一组数中找出其中最大的数”的程序流程图

MAX=A(1)i=2i=i+1MAX=A(i)i≤n?MAX<A(ii)TTFF对应程序段:max:=A[1]i:=2WHILEi≤nDOIFA[i]>maxTHENmax:=A[i]i:=i+1注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。例1.“在一组数中找出其中最大的数”的程序流程图

MAX=A

3.6.2PAD图 PAD图指问题分析图(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的基本控制结构如图3.9所示。

图3.9PAD图的基本控制结构图3.9PAD图的基本控制结构 PAD图的控制流程为自上而下、从左到右地执行。图3.10给出了将数组A(1)到A(10)进行选择法排序的算法描述的PAD图。 PAD图的控制流程为自上而下、从左到右地执行。图3.10图3.10PAD图的示例图3.10PAD图的示例 从图3.10给出的例子可以看出PAD图的优点如下: (1)清晰地反映了程序的层次结构。图中的竖线为程序的层次线,最左边竖线是程序的主线,其后一层一层展开,层次关系一目了然。 (2)支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。 (3)易读易写,使用方便。

从图3.10给出的例子可以看出PAD图的优点如下: (4)支持结构化的程序设计原理。 (5)可自动生成程序。PAD图有对照FORTRAN,Pascal,C等高级语言的标准图式。因此在有PAD系统的计算机上(如日立公司的M系列机),可以直接输入PAD图,由机器自动通过遍历树的办法生成相应的源代码,大大提高了软件的生产率。PAD图为软件的自动化生成提供了有力的工具。 (4)支持结构化的程序设计原理。例.“在一组数中找出其中最大的数”的PAD图MAX=A(1)WHILEii≤nMAX=A(i)对应程序段:max:=a[1]i=2WHILEi≤nDOIFa[i]>maxTHENmax:=a[i];i=i+1注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。MAX<A(ii)i=i+1例.“在一组数中找出其中最大的数”的PAD图MAX=A(1)

PAD描述的示例

PAD描述的示例练习:计算n!(要求掌握流程图、PAD图)开始结束输入nS=1T=1S=S×TT=T+1输出ST>nTF1.程序流程图练习:计算n!(要求掌握流程图、PAD图)开始结束输入nS输入nT=1S=1T=T+1S=S×T输出S2.PAD图UNTILT>nGetn;T=1;S=1;Repeat

S=S×T;T=T+1Until

T>n

PrintS;

3.PDL语言输入nT=1S=1T=T+1S=S×T输出S2.PAD图UN 3.6.3过程设计语言 过程设计语言(ProcessDesignLanguage,简称PDL)是在伪码的基础上,扩充了模块的定义与调用、数据定义和输入/输出而形成的。它的控制结构与伪码相同。PDL是一种用于描述模块算法设计和处理细节的语言。PDL与在8.5节中介绍的结构化语言的结构相似,一般分为内外两层语法,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。 3.6.3过程设计语言 PDL与结构化分析中描述加工逻辑的“结构化语言”所不同的仅是,它们的作用不同,抽象层次不同,模糊程度不同。“结构化语言”是描述加工“做什么”的,并且使开发人员和用户都能看懂,因此无严格的外语法,内层自然语言描述较抽象、较概括。而PDL是描述处理过程“怎么做”的细节。开发人员将按其处理细节编程序,故外层语法更严格一些,更趋于形式化,内层自然语言描述实际操作更具体更详细一些。 1.PDL特点 PDL的特点如下: (1)所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。 PDL与结构化分析中描述加工逻辑的“结构化语言”所不同的 (2)描述处理过程的说明性语言没有严格的语法。 (3)具有数据说明机制,包括简单的与复杂的数据说明。 (4)具有模块定义和调用机制,开发人员应根据系统编程所用的语种,说明PDL表示有关程序结构。 (2)描述处理过程的说明性语言没有严格的语法。 2.程序结构 用PDL表示的程序结构一般有下列几种结构。 1)顺序结构 采用自然语言描述顺序结构: 处理S1 处理S2

处理Sn 2.程序结构 2)选择结构 (1)IF-EISE结构:IF条件IF条件处理S1或处理SELSEENDIF处理S2ENDIF 2)选择结构 (2)IF-ORIF-ELSE结构:IF条件1处理S1ORIF条件2

ELSE处理SnENDIF (2)IF-ORIF-ELSE结构: (3)CASE结构: CASEOF CASE(1) 处理S1 CASE(2) 处理S2

ELSE处理Sn ENDCASE (3)CASE结构: 3)重复结构 (1)FOR结构:FORi=1TOn循环体ENDFOR (2)WHILE结构:WHILE条件循环体ENDWHILE 3)重复结构 (3)UNTIL结构:REPEAT循环体UNTIL条件 4)出口结构 (1)ESCAPE结构(退出本层结构): WHILE条件处理S1 ESCAPELIF条件处理S2 ENDWHILE L:… (3)UNTIL结构: (2)CYCLE结构(循环内部进入循环的下一次): L:WHILE条件处理S1CYCLELIF条件处理S2ENDWHILE (2)CYCLE结构(循环内部进入循环的下一次): 5)扩充结构 (1)模块定义: PROCEDURE模块名(参数)RETURN END (2)模块调用: CALL模块名(参数) 5)扩充结构 (3)数据定义: DECLARE属性变量名,… 属性有:字符、整型、实型、双精度、指针、数组及结构等类型。 (4)输入/输出: GET(输入变量表) PUT(输出变量表) (3)数据定义:

3.PDL应用示例 现以××系统主控模块详细设计为例,说明如何用PDL来描述。 PROCEDURE模块名()清屏;显示××系统用户界面;PUT(“请输入用户口令:”);GET(password);IFpassword<>系统口令提示警告信息;退出运行ENDIF 3.PDL应用示例 显示本系统主菜单;WHILE(true)接收用户选择ABC;IFABC=“退出”Break;ENDIF调用相应下层模块完成用户选择功能;ENDWHILE;清屏;RETURNEND 显示本系统主菜单; 从示例可以看到PDL的总体结构与一般程序完全相同。外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。除此以外,还有以下优点: (1)提供的机制较图形全面,为保证详细设计与编码的质量创造了有利条件。 (2)可将注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。 (3)可自动生成程序代码,提高软件生产率。目前已有PDL多种版本(如PDL/pascal,PDL/C,PDL/Ada等),为自动生成相应代码提供了便利条件。 从示例可以看到PDL的总体结构与一般程序完全相同。外语法3.7小结 从软件设计开始,瀑布模型的各阶段都是面向计算机领域的。软件设计分为概要设计和详细设计两个阶段。 概要设计的任务是要建立软件系统的体系结构,即软件系统要划分多少个模块,模块之间的层次结构和调用关系是怎样的。同时还要设计数据结构和数据库结构,设计人机接口等。3.7小结 从软件设计开始,瀑布模型的各阶段都是面向计算 概要设计还要求遵守相应的设计原理,如模块化、抽象、信息隐蔽和模块独立性等原理。在建立软件体系结构时还要遵循软件结构设计的一些准则,如软件结构的深度、宽度、扇入、扇出要适当,模块的作用范围要在其控制范围之中等。 软件体系结构可用软件结构图和IPO图的H图来描述。概要设计的方法可采用结构化方法和面向对象方法等来设计。概要设计产生的文档是概要设计说明书。 概要设计之后要进行软件详细设计。软件详细设计的主要任务是描述每个模块的算法,即实现该模块功能的处理过程,它通常采用结构化程序设计来进行,采用程序流程图、PAD图、PDL语言等工具来描述。 概要设计还要求遵守相应的设计原理,如模块化、抽象、信 对于某些项目,由于采用了相应的开发工具,如PowerBuilder,Develop2000等,这时软件详细设计阶段工作就不太明显了。

对于某些项目,由于采用了相应的开发工具,如PowerBu习题 1.什么是软件概要设计?该阶段的基本任务是什么? 2.软件设计的基本原理包括哪些内容? 3.衡量模块独立性的两个标准是什么?它们各表示什么含义? 4.模块间的耦合性有哪几种?它们各表示什么含义? 5.模块的内聚性有哪几种?各表示什么含义?习题 1.什么是软件概要设计?该阶段的基本任务是什么? 6.什么是软件结构?简述软件结构设计优化准则。 7.什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系? 8.详细设计的基本任务是什么?有哪几种描述方法? 9.结构化程序设计基本要点是什么? 10.请使用流程图、PAD图和PDL语言描述下列程序的算法。 (1)在数据A(1)~A(10)中求最大数和次大数。 (2)输入三个正整数作为边长,判断该三条边构成的三角形是直角、等腰或一般三角形。 6.什么是软件结构?简述软件结构设计优化准则。

11.用PAD图描述以下问题的控制结构。 有一个表A(1),A(2),…,A(N),按递增顺序排列。给定一个Key值,在表中用折半法查找。若找到,将表位置i送入x,否则将零送到x,同时将Key值插入表中。 算法: (1)置初值H=1(表头),T=N(表尾)。 (2)置i=[(H+T)/2](取整)。 (3)若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;若Key<A(i),则Key在表的前半部分,i-1送入T,重复第2步查找,直到H>T为止。 (4)查不到时,将A(i),…,A(N)移到A(i+1),…,A(N+1),Key值送入A(i)中。 11.用PAD图描述以下问题的控制结构。软件设计

3.1软件概要设计概述3.2软件设计的基本原理3.3软件结构准则3.5软件详细设计3.6软件详细设计表示法3.7小结习题软件设计 3.1软件概要设计概述3.5软件详细设计 3.5.1详细设计的基本任务 1.算法设计 用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。 2.数据结构设计 对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。3.5软件详细设计 3.5.1详细设计的基本任务 3.物理设计 对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 4.其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。 3.物理设计 (2)输入/输出格式设计。 (3)人机对话设计:对于一个实时系统,用户与计算机需频繁对话,因此要进行对话方式、内容及格式的具体设计。 5.编写详细设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。

(2)输入/输出格式设计。 (3)程序1(标识符)设计说明:包括功能、性能、输入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。 6.评审 对处理过程的算法和数据库的物理结构都要评审。

(3)程序1(标识符)设计说明:包括功能、性能、输入、 3.5.2详细设计方法 处理过程设计中采用的典型方法是结构化程序设计(SP)方法,最早是由E.W.Dijkstra在20世纪60年代中期提出的。详细设计并不是具体地编程序,而是已经细化成很容易从中产生程序的图纸。因此详细设计的结果基本决定了最终程序的质量。为了提高软件的质量,延长软件的生存期,软件的可测试性、可维护性是重要保障。软件的可测试性、可维护性与程序的易读性有很大关系。详细设计的目标不仅是逻辑上能正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。结构化程序设计方法有以下几个基本要点。 3.5.2详细设计方法 1.采用自顶向下、逐步求精的程序设计方法 在需求分析、概要设计中,都采用了自顶向下、逐层细化的方法。使用“抽象”这个手段,上层对问题抽象、对模块抽象和对数据抽象,下层则进一步分解,进入另一个抽象层次。在详细设计中,虽然处于“具体”设计阶段,但在设计某个模块内部处理过程中,仍可以逐步求精,降低处理细节的复杂度。 1.采用自顶向下、逐步求精的程序设计方法 2.使用三种基本控制结构构造程序

任何程序都可由顺序、选择及重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出口。 2.使用三种基本控制结构构造程序三种方式对模糊过程进行分解:

(1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。 对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。三种方式对模糊过程进行分解:

(1)用顺序方式对过例:在一组数中找出其中最大的数

1输入一组数;1输入一个数组;1输入一个数组;2找出其中的最大数;3输出最大数。3输出最大数。2.1任取一数,假定它就是最大数;2.2将该数与其余各数逐一比较;2.3若发现任何数大于假设的最大数,即取而代之;2.1令”最大数”=数组的第一个元素;2.2从第二个元素至最后一个元素做循环;2.3如果新元素>“最大数”则“最大数”=新元素;3输出“最大数”。求解步骤细化第二步结构化语言描述问题求解逐步细化的过程例:在一组数中找出其中最大的数

1输入一组数;1输

3.主程序员的组织形式 主程序员的组织形式指开发程序的人员应采用以一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三人为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。这种组织形式突出了主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量,并且能有效地提高软件生产率。这种组织形式最先由IBM公司实施,随后其他软件公司也纷纷采用主程序员制的工作方式。 因此,结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法。

3.6软件详细设计表示法

关于描述工具的有关说明:1.为了给出软件结构图中每一个模块的算法和块内数据结构的清晰描述,需要采用适当的表达工具。2.详细设计的表达工具有三类:图形、表格和语言。3.无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。4.详细设计的描述工具除了以前介绍过判定树和判定表外,还有程序流程图、N-S图、PAD图及PDL等几种常用的工具.3.6软件详细设计表示法 关于描述工具的有关说明:图3.8三种基本控制结构的流程图3.6.1程序流程图 程序流程图又称为程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具,图3.8为流程图的三种基本控制结构。图3.8三种基本控制结构的流程图3.6.1程序流程图 流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具,但是它有如下严重缺点: (1)可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构,编码时势必不加限制地使用GOTO语句,导致基本控制块多入口多出口,这样会使软件质量受到影响,与软件设计的原则相违背。 (2)流程图不能反映逐步求精的过程,往往反映的是最后的结果。(3)不易表示数据结构。 为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。 流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具

示例示例例1.“在一组数中找出其中最大的数”的程序流程图

MAX=A(1)i=2i=i+1MAX=A(i)i≤n?MAX<A(ii)TTFF对应程序段:max:=A[1]i:=2WHILEi≤nDOIFA[i]>maxTHENmax:=A[i]i:=i+1注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。例1.“在一组数中找出其中最大的数”的程序流程图

MAX=A

3.6.2PAD图 PAD图指问题分析图(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的基本控制结构如图3.9所示。

图3.9PAD图的基本控制结构图3.9PAD图的基本控制结构 PAD图的控制流程为自上而下、从左到右地执行。图3.10给出了将数组A(1)到A(10)进行选择法排序的算法描述的PAD图。 PAD图的控制流程为自上而下、从左到右地执行。图3.10图3.10PAD图的示例图3.10PAD图的示例 从图3.10给出的例子可以看出PAD图的优点如下: (1)清晰地反映了程序的层次结构。图中的竖线为程序的层次线,最左边竖线是程序的主线,其后一层一层展开,层次关系一目了然。 (2)支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。 (3)易读易写,使用方便。

从图3.10给出的例子可以看出PAD图的优点如下: (4)支持结构化的程序设计原理。 (5)可自动生成程序。PAD图有对照FORTRAN,Pascal,C等高级语言的标准图式。因此在有PAD系统的计算机上(如日立公司的M系列机),可以直接输入PAD图,由机器自动通过遍历树的办法生成相应的源代码,大大提高了软件的生产率。PAD图为软件的自动化生成提供了有力的工具。 (4)支持结构化的程序设计原理。例.“在一组数中找出其中最大的数”的PAD图MAX=A(1)WHILEii≤nMAX=A(i)对应程序段:max:=a[1]i=2WHILEi≤nDOIFa[i]>maxTHENmax:=a[i];i=i+1注.1.A是一个n元数组;2.省略变量说明;3.省略输入、输出语句。MAX<A(ii)i=i+1例.“在一组数中找出其中最大的数”的PAD图MAX=A(1)

PAD描述的示例

PAD描述的示例练习:计算n!(要求掌握流程图、PAD图)开始结束输入nS=1T=1S=S×TT=T+1输出ST>nTF1.程序流程图练习:计算n!(要求掌握流程图、PAD图)开始结束输入nS输入nT=1S=1T=T+1S=S×T输出S2.PAD图UNTILT>nGetn;T=1;S=1;Repeat

S=S×T;T=T+1Until

T>n

PrintS;

3.PDL语言输入nT=1S=1T=T+1S=S×T输出S2.PAD图UN 3.6.3过程设计语言 过程设计语言(ProcessDesignLanguage,简称PDL)是在伪码的基础上,扩充了模块的定义与调用、数据定义和输入/输出而形成的。它的控制结构与伪码相同。PDL是一种用于描述模块算法设计和处理细节的语言。PDL与在8.5节中介绍的结构化语言的结构相似,一般分为内外两层语法,外层语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。 3.6.3过程设计语言 PDL与结构化分析中描述加工逻辑的“结构化语言”所不同的仅是,它们的作用不同,抽象层次不同,模糊程度不同。“结构化语言”是描述加工“做什么”的,并且使开发人员和用户都能看懂,因此无严格的外语法,内层自然语言描述较抽象、较概括。而PDL是描述处理过程“怎么做”的细节。开发人员将按其处理细节编程序,故外层语法更严格一些,更趋于形式化,内层自然语言描述实际操作更具体更详细一些。 1.PDL特点 PDL的特点如下: (1)所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。 PDL与结构化分析中描述加工逻辑的“结构化语言”所不同的 (2)描述处理过程的说明性语言没有严格的语法。 (3)具有数据说明机制,包括简单的与复杂的数据说明。 (4)具有模块定义和调用机制,开发人员应根据系统编程所用的语种,说明PDL表示有关程序结构。 (2)描述处理过程的说明性语言没有严格的语法。 2.程序结构 用PDL表示的程序结构一般有下列几种结构。 1)顺序结构 采用自然语言描述顺序结构: 处理S1 处理S2

处理Sn 2.程序结构 2)选择结构 (1)IF-EISE结构:IF条件IF条件处理S1或处理SELSEENDIF处理S2ENDIF 2)选择结构 (2)IF-ORIF-ELSE结构:IF条件1处理S1ORIF条件2

ELSE处理SnENDIF (2)IF-ORIF-ELSE结构: (3)CASE结构: CASEOF CASE(1) 处理S1 CASE(2) 处理S2

ELSE处理Sn ENDCASE (3)CASE结构: 3)重复结构 (1)FOR结构:FORi=1TOn循环体ENDFOR (2)WHILE结构:WHILE条件循环体ENDWHILE 3)重复结构 (3)UNTIL结构:REPEAT循环体UNTIL条件 4)出口结构 (1)ESCAPE结构(退出本层结构): WHILE条件处理S1 ESCAPELIF条件处理S2 ENDWHILE L:… (3)UNTIL结构: (2)CYCLE结构(循环内部进入循环的下一次): L:WHILE条件处理S1CYCLELIF条件处理S2ENDWHILE (2)CYCLE结构(循环内部进入循环的下一次): 5)扩充结构 (1)模块定义: PROCEDURE模块名(参数)RETURN END (2)模块调用: CALL模块名(参数) 5)扩充结构 (3)数据定义: DECLARE属性变量名,… 属性有:字符、整型、实型、双精度、指针、数组及结构等类型。 (4)输入/输出: GET(输入变量表) PUT(输出变量表) (3)数据定义:

3.PDL应用示例 现以××系统主控模块详细设计为例,说明如何用PDL来描述。 PROCEDURE模块名()清屏;显示××系统用户界面;PUT(“请输入用户口令:”);GET(password);IFpassword<>系统口令提示警告信息;退出运行ENDIF 3.PDL应用示例 显示本系统主菜单;WHILE(true)接收用户选择ABC;IFABC=“退出”Break;ENDIF调用相应下层模块完成用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论