第五章-软件详细设计

  • 格式:doc
  • 大小:94.50 KB
  • 文档页数:22

第五章软件详细设计5.1 详细设计的基本任务(1)为每个模块进行详细的算法设计。

用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。

(2)为模块内的数据结构进行设计。

对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。

(3)对数据结构进行物理设计,即确定数据库的物理结构。

物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。

(4)其他设计:根据软件系统的类型,还可能要进行以下设计:①代码设计。

为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。

②输入/输出格式设计。

③人机对话设计。

对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。

(5)编写详细设计说明书。

(6)评审。

对处理过程的算法和数据库的物理结构都要评审。

5.2 结构化程序设计方法详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。

过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。

结构化程序设计方法的基本要点是:1. 采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。

2. 使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。

(1)用顺序方式对过程分解,确定各部分的执行顺序。

(2)用选择方式对过程分解,确定某个部分的执行条件。

(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。

(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。

3. 主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。

5.3 详细设计描述法详细描述处理过程常用三种工具:图形、表格和语言。

本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。

5.3.1 程序流程图程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。

为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。

5.3.2 PAD图PAD图指问题分析图(Problem Analysis Diagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。

PAD图的控制流程为自上而下、从左到右的执行。

由机器自动通过走树的办法生成相应的源代码,大大提高了软件的生产率。

5.3.3 过程设计语言过程设计语言(Problem Design Language,简称PDL),也称程序描述语言(Problem Descripition Language),又称为伪码。

它是一种用于描述算法设计和处理细节的语言。

用PDL表示的程序结构一般有以下几种:(1)顺序结构:采用自然语言描述。

(2)选择结构:①IF-ELSE结构IF 条件 IF 条件处理S1 或处理S ELSE处理S2 ENDIF ENDIF②IF-ORIF-ELSE结构IF 条件1处理S2ORIF 条件2处理S2...ELSE 处理SnENDIF③CASE 结构CASE OFCASE(1)处理S1CASE(2)处理S2...ELSE 处理SnENDCASE(3)重复结构:①FOR结构FOR i=1 TO n循环体ENDFOR②WHILE结构WHILE 条件循环体ENDWHILE③UNTIL结构REPEAT循环体UNTIL条件(4)出口结构:①ESCAPE结构(退出本层结构) WHILE 条件处理S1ESCAPE L IF 条件处理S2ENDWHILEL:……②CYCLE结构(循环内部进入循环的下一次) L:WHILE 条件处理S1CYCLE L IF 条件处理S2ENDWHILE(5)模块定义与调用:①模块定义PROCEDURE 模块名(参数)...RETURNEND②模块调用CALL 模块名(参数)(6)数据定义:DECLARE 属性变量名……属性有:字符、整型、实型、双精度、指针、数组、结构等类型。

(7)输入/输出:GET(输入变量表)PUT(输出变量表)现以xx系统主控模块详细设计为例,说明如何用PDL 来描述。

PROCEDURE 模块名( )清屏;显示xx系统用户界面;PUT(“请输入用户口令:”);GET(password);IF password< >系统口令提示警告信息;退出运行ENDIF显示本系统主菜单;WHILE(true)接收用户选择ABC;IF ABC=“退出”Break;ENDIF调用相应下层模块完成用户选择功能;ENDWHILE清屏;RETURNEND从以上例子可以看到PDL的总体结构与一般程序完全相同。

外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。

5.4 Jackson方法5.4.1 概述Jackson方法是面向数据结构的设计方法。

JSP(Jackson Strutured Programming)方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构,因此该方法适用于详细设计阶段。

5.4.2 Jackson结构图由于Jackson方法面向数据结构设计,所以提供了自己的工具——Jackson结构图。

Jackson指出,无论数据结构还是程序结构,都限于三种基本结构及它们的组合,因此,他给出了三种基本结构的表示。

(见课本)1. 顺序结构2. 选择结构3. 重复结构JACKSON结构图的特点:(1)能对结构进行自顶向下分解,因此可以表示层次结构。

(2)结构易读,形象直观。

(3)既能表示数据结构也能表示程序结构,且表示的是组成关系。

5.4.3 JSP设计步骤JSP方法一般通过以下五个步骤来完成设计:(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。

(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。

“对应关系”指这些数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。

(3)按一定的规则由输入、输出的数据结构导出程序结构。

(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。

(5)用伪码写出程序。

就例子说明JSP方法设计过程。

第5章例题分析与解答一、填空题1.结构化程序设计方法的要点是使用________结构,自顶向下、逐步求精地构造算法或程序。

答案:三种基本控制结构2.为了产生结构化的流程图,应由三种基本控制结构顺序组合或________而成。

答案:完整嵌套3.结构化程序设计方法提倡开发人员的组织形式是________。

答案:主程序员组4.PAD图是一种由左向右展开的二维树型结构,图中的竖线为程序的________。

答案:层次线5.在Jackson方法中解决结构冲突的具体办法是引入________。

答案:中间数据结构或中间文件二、选择题1.详细设计与概要设计衔接的图形工具是( )。

A.DFD图B.SC图C.PAD图D.程序流程图答案:B2.结构化程序设计主要强调的是( )。

A.程序的效率B.程序的执行速度C.程序的易读性D.程序的规模答案:C3.详细设计的任务是确定每个模块的( )。

A.算法B.功能C.调用关系D.输入输出数据答案:A4.Jackson方法实现从( )导出( )。

A.数据结构B.数据流图C.程序结构D.软件模块层次结构答案:A、C5.在软件详细设计过程中不采用的描述工具是( )。

A.判定表B.IPO图C.PAD图D.DFD图答案:D第5章自测题及参考答案一、名词解释1.结构化程序设计2.PAD3.PDL4.详细设计二、填空题1.结构化程序设计方法使用______构造程序。

(三种基本控制结构)2.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是______。

(程序流程图)3.结构化程序设计技术指导人们用良好的思想方法开发______的程序。

(易于理解、易于验证)4.详细描述处理过程常用的三种工具是图形、语言和______。

(表格)5.Jackson图不仅可表示程序结构,还可表示______。

(数据结构)6.PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和______。

(模块接口)7.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程______。

(清晰易读)8.用JSP方法导出程序结构后,还要列出______,并把它们分配到程序结构图的适当位置上去。

(操作与条件)9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的______进行设计。

(数据结构)10.在详细设计阶段,为了提高数据的输入、储存、检索等操作的效率并节约存储空间,对某些数据项的值要进行______设计。

(代码)三、选择题1.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是( A )。

A.PADB.PDLC.IPOD.判定树2.结构化程序设计的一种基本方法是( D )。

A.筛选法B.递归法C.迭代法D.逐步求精法3.JSP方法是一种面向( C )的设计方法。

A.对象B.数据流C.数据结构D.控制结构4.JSP方法主要用于规模适中的( A )系统的开发。

A.数据处理B.实时处理C.文字处理D.科学计算5.PDL是软件开发过程中用于( C )阶段的描述工具。

A.需求分析B.概要设计C.详细设计D.编程6.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是( B )。

A.PADB.PDLC.IPOD.流程图7.Jackson图上下层之间的关系是( B )。

A.调用关系B.组成关系C.继承关系D.嵌套关系8.JSP方法根据输入输出的数据结构按一定的规则映射成软件的( C )。

A.体系结构B.数据结构C.程序结构D.顺序结构9.程序的三种基本控制结构是( B )。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.程序的三种基本控制结构的共同特点是( D )。