第五章软件工程.docx
《第五章软件工程.docx》由会员分享,可在线阅读,更多相关《第五章软件工程.docx(13页珍藏版)》请在冰豆网上搜索。
第五章软件工程
5.1详细设计的基本任务
(1)为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。
对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。
物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:
根据软件系统的类型,还可能要进行以下设计:
①代码设计。
为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计。
③人机对话设计。
对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。
对处理过程的算法和数据库的物理结构都要评审。
5.1详细设计的基本任务
(1)为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。
对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。
物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:
根据软件系统的类型,还可能要进行以下设计:
①代码设计。
为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计。
③人机对话设计。
对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。
对处理过程的算法和数据库的物理结构都要评审。
5.3详细设计描述法
详细描述处理过程常用三种工具:
图形、表格和语言。
本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。
5.3.1程序流程图
程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。
5.3.2PAD图
PAD图指问题分析图(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。
PAD图的控制流程为自上而下、从左到右地执行。
5.3.3过程设计语言
过程设计语言(ProblemDesignLanguage,简称PDL),也称程序描述语言(ProblemDescripitionLanguage),又称为伪码。
它是一种用于描述算法设计和处理细节的语言。
用PDL表示的程序结构一般有以下几种:
(1)顺序结构:
采用自然语言描述。
(2)选择结构:
1、IF-ELSE结构
IF条件IF条件
处理S1或处理S
ELSE
处理S2ENDIF
ENDIF
2、IF-ORIF-ELSE结构
IF条件1
处理S2
ORIF条件2
处理S2
.
.
.
ELSE处理Sn
ENDIF
3、CASE结构
CASEOF
CASE
(1)
处理S1
CASE
(2)
处理S2
.
.
.
ELSE处理Sn
ENDCASE
(3)重复结构:
1、FOR结构
FORi=1TOn
循环体
ENDFOR
2、WHILE结构
WHILE条件
循环体
ENDWHILE
3、UNTIL结构
REPEAT
循环体
UNTIL条件
(4)出口结构:
1、ESCAPE结构(退出本层结构)
WHILE条件
处理S1
ESCAPELIF条件
处理S2
ENDWHILE
L:
……
2、CYCLE结构(循环内部进入循环的下一次)
L:
WHILE条件
处理S1
CYCLELIF条件
处理S2
ENDWHILE
(5)模块定义与调用:
1、模块定义
PROCEDURE模块名(参数)
.
.
.
RETURN
END
2、模块调用
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.3详细设计描述法
详细描述处理过程常用三种工具:
图形、表格和语言。
本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。
5.3.1程序流程图
程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。
5.3.2PAD图
PAD图指问题分析图(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。
PAD图的控制流程为自上而下、从左到右地执行。
5.3.3过程设计语言
过程设计语言(ProblemDesignLanguage,简称PDL),也称程序描述语言(ProblemDescripitionLanguage),又称为伪码。
它是一种用于描述算法设计和处理细节的语言。
用PDL表示的程序结构一般有以下几种:
(1)顺序结构:
采用自然语言描述。
(2)选择结构:
1、IF-ELSE结构
IF条件IF条件
处理S1或处理S
ELSE
处理S2ENDIF
ENDIF
2、IF-ORIF-ELSE结构
IF条件1
处理S2
ORIF条件2
处理S2
.
.
.
ELSE处理Sn
ENDIF
3、CASE结构
CASEOF
CASE
(1)
处理S1
CASE
(2)
处理S2
.
.
.
ELSE处理Sn
ENDCASE
(3)重复结构:
1、FOR结构
FORi=1TOn
循环体
ENDFOR
2、WHILE结构
WHILE条件
循环体
ENDWHILE
3、UNTIL结构
REPEAT
循环体
UNTIL条件
(4)出口结构:
1、ESCAPE结构(退出本层结构)
WHILE条件
处理S1
ESCAPELIF条件
处理S2
ENDWHILE
L:
……
2、CYCLE结构(循环内部进入循环的下一次)
L:
WHILE条件
处理S1
CYCLELIF条件
处理S2
ENDWHILE
(5)模块定义与调用:
1、模块定义
PROCEDURE模块名(参数)
.
.
.
RETURN
END
2、模块调用
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方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构,因此该方法适用于详细设计阶段。
5.4.2Jackson结构图
由于Jackson方法面向数据结构设计,所以提供了自己的工具——Jackson结构图。
Jackson指出,无论数据结构还是程序结构,都限于三种基本结构及它们的组合,因此,他给出了三种基本结构的表示。
1.顺序结构
2.选择结构
3.重复结构
5.4.3JSP设计步骤
JSP方法一般通过以下五个步骤来完成设计:
(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3)按一定的规则由输入、输出的数据结构导出程序结构。
(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。
(5)用伪码写出程序。
就例子说明JSP方法设计过程。
一、名词解释
1.结构化程序设计 2.PAD 3.PDL
4.结构冲突 5.对应关系
二、填空题
1.结构化程序设计方法使用______构造程序。
2.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是______。
3.结构化程序设计技术指导人们用良好的思想方法开发______的程序。
4.详细描述处理过程常用的三种工具是图形、语言和______。
5.Jackson图不仅可表示程序结构,还可表示______。
6.PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和______。
7.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程______。
8.用JSP方法导出程序结构后,还要列出______,并把它们分配到程序结构图的适当位置上去。
9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的______进行设计。
10.在详细设计阶段,为了提高数据的输入、储存、检索等操作的效率并节约存储空间,对某些数据项的值要进行______设计。
三、选择题
1.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是( )。
A.PAD B.PDL C.IPO D.判定树
2.结构化程序设计的一种基本方法是( )。
A.筛选法 B.递归法 C.迭代法 D.逐步求精法
3.JSP方法是一种面向( )的设计方法。
A.对象 B.数据流 C.数据结构 D.控制结构
4.JSP方法主要用于规模适中的( )系统的开发。
A.数据处理 B.实时处理 C.文字处理 D.科学计算
5.PDL是软件开发过程中用于( )阶段的描述工具。
A.需求分析 B.概要设计 C.详细设计 D.编程
6.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是( )。
A.PAD B.PDL C.IPO D.流程图
7.Jackson图上下层之间的关系是( )。
A.调用关系 B.组成关系 C.继承关系 D.嵌套关系
8.JSP方法根据输入输出的数据结构按一定的规则映射成软件的( )。
A.体系结构 B.数据结构 C.程序结构 D.顺序结构
9.程序的三种基本控制结构是( )。
A.过程、子程序和分程序 B.顺序、选择和重复
C.递归、堆栈和队列 D.调用、返回和转移
10.程序的三种基本控制结构的共同特点是( )。
A.不能嵌套使用 B.只能用来写简单程序
C.已经用硬件实现 D.只有一个入口和一个出口
四、简答题
1.详细设计的基本任务是什么?
2.结构化程序设计方法的基本要点是什么?
3.详细设计主要使用哪些描述工具?
各有什么特点?
4.JSP方法有哪些设计步骤?
该方法有哪些特点?
五、应用题
画出下面用PDL写出的程序的PAD图。
WHILEPDO
IFA>OTHENA1ELSEA2ENDIF;
IFB>0THENB1;
IFC>0THENC1ELSEC2ENDIF
ELSEB2
ENDIF;
B3
ENDWHILE;
参考答案
二、填空题
1.三种基本控制结构 2.程序流程图
3.易于理解、易于验证 4.表格
5.数据结构 6.模块接口
7.清晰易读 8.操作与条件
9.数据结构 10.代码
三、选择题
1.A 2.D 3.C 4.A 5.C
6.B 7.B 8.C 9.B 10.D
五、应用题
PAD图如下图所示。