第五章软件详细设计.docx

上传人:b****2 文档编号:3398328 上传时间:2023-05-05 格式:DOCX 页数:17 大小:79.53KB
下载 相关 举报
第五章软件详细设计.docx_第1页
第1页 / 共17页
第五章软件详细设计.docx_第2页
第2页 / 共17页
第五章软件详细设计.docx_第3页
第3页 / 共17页
第五章软件详细设计.docx_第4页
第4页 / 共17页
第五章软件详细设计.docx_第5页
第5页 / 共17页
第五章软件详细设计.docx_第6页
第6页 / 共17页
第五章软件详细设计.docx_第7页
第7页 / 共17页
第五章软件详细设计.docx_第8页
第8页 / 共17页
第五章软件详细设计.docx_第9页
第9页 / 共17页
第五章软件详细设计.docx_第10页
第10页 / 共17页
第五章软件详细设计.docx_第11页
第11页 / 共17页
第五章软件详细设计.docx_第12页
第12页 / 共17页
第五章软件详细设计.docx_第13页
第13页 / 共17页
第五章软件详细设计.docx_第14页
第14页 / 共17页
第五章软件详细设计.docx_第15页
第15页 / 共17页
第五章软件详细设计.docx_第16页
第16页 / 共17页
第五章软件详细设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第五章软件详细设计.docx

《第五章软件详细设计.docx》由会员分享,可在线阅读,更多相关《第五章软件详细设计.docx(17页珍藏版)》请在冰点文库上搜索。

第五章软件详细设计.docx

第五章软件详细设计

第五章软件详细设计

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.2PAD图

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

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

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

5.3.3过程设计语言

  过程设计语言(ProblemDesignLanguage,简称PDL),也称程序描述语言(ProblemDescripitionLanguage),又称为伪码。

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

 用PDL表示的程序结构一般有以下几种:

 

(1)顺序结构:

采用自然语言描述。

 

(2)选择结构:

①IF-ELSE结构

IF条件IF条件

处理S1或处理S

ELSE

处理S2ENDIF

ENDIF

②IF-ORIF-ELSE结构

IF条件1

处理S2

ORIF条件2

处理S2

.

.

.

ELSE处理Sn

ENDIF

③CASE结构

CASEOF

CASE

(1)

处理S1

CASE

(2)

处理S2

.

.

.

ELSE处理Sn

ENDCASE

(3)重复结构:

①FOR结构

FORi=1TOn

循环体

ENDFOR

②WHILE结构

WHILE条件

循环体

ENDWHILE

③UNTIL结构

REPEAT

循环体

UNTIL条件

(4)出口结构:

①ESCAPE结构(退出本层结构)

WHILE条件

处理S1

ESCAPELIF条件

处理S2

ENDWHILE

L:

……

②CYCLE结构(循环内部进入循环的下一次)

L:

WHILE条件

处理S1

CYCLELIF条件

处理S2

ENDWHILE

(5)模块定义与调用:

①模块定义

PROCEDURE模块名(参数)

.

.

.

RETURN

END

②模块调用

CALL模块名(参数)

(6)数据定义:

DECLARE属性变量名……

属性有:

字符、整型、实型、双精度、指针、数组、结构等类型。

(7)输入/输出:

GET(输入变量表)

PUT(输出变量表)

现以xx系统主控模块详细设计为例,说明如何用PDL来描述。

PROCEDURE模块名()

清屏;

显示xx系统用户界面;

PUT(“请输入用户口令:

”);

GET(password);

IFpassword<>系统口令

提示警告信息;

退出运行

ENDIF

显示本系统主菜单;

WHILE(true)

接收用户选择ABC;

IFABC=“退出”

Break;

ENDIF

调用相应下层模块完成用户选择功能;

ENDWHILE

清屏;

RETURN

END

  从以上例子可以看到PDL的总体结构与一般程序完全相同。

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

5.4Jackson方法

5.4.1概述

   Jackson方法是面向数据结构的设计方法。

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

5.4.2Jackson结构图

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

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

(见课本)

  1.顺序结构

  2.选择结构

  3.重复结构

JACKSON结构图的特点:

(1)能对结构进行自顶向下分解,因此可以表示层次结构。

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

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

5.4.3JSP设计步骤

  JSP方法一般通过以下五个步骤来完成设计:

  

(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。

  

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

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

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

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

  (5)用伪码写出程序。

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

第5章例题分析与解答

一、填空题

1.结构化程序设计方法的要点是使用________结构,自顶向下、逐步求精地构造算法或程序。

答案:

三种基本控制结构

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

答案:

完整嵌套

3.结构化程序设计方法提倡开发人员的组织形式是________。

答案:

主程序员组

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

答案:

层次线

5.在Jackson方法中解决结构冲突的具体办法是引入________。

答案:

中间数据结构或中间文件

二、选择题

1.详细设计与概要设计衔接的图形工具是(  )。

 A.DFD图       B.SC图          C.PAD图        D.程序流程图

答案:

B

2.结构化程序设计主要强调的是(  )。

 A.程序的效率 B.程序的执行速度C.程序的易读性 D.程序的规模

答案:

C

3.详细设计的任务是确定每个模块的(  )。

 A.算法       B.功能          C.调用关系     D.输入输出数据

答案:

A

4.Jackson方法实现从(  )导出(  )。

A.数据结构    B.数据流图      C.程序结构     D.软件模块层次结构

答案:

A、C

5.在软件详细设计过程中不采用的描述工具是(  )。

A.判定表      B.IPO图         C.PAD图        D.DFD图

答案:

D

第5章自测题及参考答案

一、名词解释

1.结构化程序设计  2.PAD        3.PDL4.详细设计    

二、填空题           

1.结构化程序设计方法使用______构造程序。

(三种基本控制结构)

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

(程序流程图)

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

(易于理解、易于验证)

4.详细描述处理过程常用的三种工具是图形、语言和______。

(表格)

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

(数据结构)

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

(模块接口)

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

(清晰易读)

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

(操作与条件)

9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的______进行设计。

(数据结构)

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

(代码)

三、选择题

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

 A.PAD       B.PDL        C.IPO        D.判定树

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.PAD       B.PDL        C.IPO        D.流程图

7.Jackson图上下层之间的关系是( B )。

 A.调用关系  B.组成关系   C.继承关系   D.嵌套关系

8.JSP方法根据输入输出的数据结构按一定的规则映射成软件的(C )。

 A.体系结构  B.数据结构   C.程序结构   D.顺序结构

9.程序的三种基本控制结构是(  B)。

 A.过程、子程序和分程序    B.顺序、选择和重复

 C.递归、堆栈和队列        D.调用、返回和转移

10.程序的三种基本控制结构的共同特点是( D )。

 A.不能嵌套使用            B.只能用来写简单程序

 C.已经用硬件实现          D.只有一个入口和一个出口

《软件工程》习题参考答案5

1、详细设计的基本任务是什么,有哪几种描述方法?

答:

详细设计的基本任务包括:

(1)为每个模块进行详细的算法设计

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

(3)对数据库进行物理设计

(4)其他设计

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

(6)评审

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。

2、结构化程序设计的基本要点是什么?

答:

主要有三个:

(1)采用自顶向下、逐步求精的程序设计方法

(2)使用三种基本控制结构构造程序。

任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。

(3)主程序员组的组织形式。

3、简述Jackson方法的设计步骤。

答:

Jackson方法的设计步骤如下:

(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。

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

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

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

(5)用伪码写出程序。

4、请使用流程图、PAD图和PDL语言描述下列程序的算法。

(1)在数据A

(1)~A(10)中求最大数和次大数。

解:

如图所示:

PDL语言描述:

  GET(a[1],a[2],...a[10]) 

  max=a[1];

  max2=a[2];

  FORi=2TO10

   IFa[i]>max

     max2=max;

    max=a[i];

   ELSE

    IFa[i]>max2

    max2=a[i];

    ENDIF

   ENDIF

  ENDFOR

  PUT(max,max2)

  END

(2)输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。

解:

如图:

PDL语言描述如下:

  GET(a,b,c)

  IF(a+b>candb+c>aandc+a>b)

   IF(a=b)

    IF(a=c)

     PUT("等边三角形")

    ELSE

     PUT("等腰三角形")

    ENDIF

   ELSE

    IF(a=c)

     PUT("等腰三角形")

    ELSE

     IF(b=c)

     PUT("等腰三角形")

     ELSE

      PUT("一般三角形")

     ENDIF

    ENDIF

   ENDIF 

  ELSE

   PUT("这不是一个三角形")

  ENDIF

5、用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;若KeyT为止。

  (4)查不到时,将A(i),...A(N)移到A(i+1)...A(N+1),Key值送入A(i)中。

解:

如图所示:

6、一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。

要求输出数据格式是每复制一行字符串后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,用Jackson

方法设计该程序结构。

7、画出下面用PDL写出的程序的PAD图。

WHILEPDO

 IFA>OTHENA1ELSEA2ENDIF;

 IFB>0THENB1;

   IFC>0THENC1ELSEC2ENDIF

     ELSEB2

     ENDIF;

     B3

   ENDWHILE;

PAD图如下图所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2