软件工程基础与实例分析第05章-详细设计_第1页
软件工程基础与实例分析第05章-详细设计_第2页
软件工程基础与实例分析第05章-详细设计_第3页
软件工程基础与实例分析第05章-详细设计_第4页
软件工程基础与实例分析第05章-详细设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、主要学习内容详细设计的过程详细设计阶段使用的工具面向数据结构的设计方法5.1 详细设计的过程5.1.1 详细设计的基本任务1算法设计用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。2数据结构设计对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。3物理设计对数据库讲行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。5.1 详细设计的过程5.1.1 详细设计的基本任务4其他设计 (1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,对数据库中的某些数据项的值要进行代码设计。 (

2、2)输入/输出格式设计:对输入/输出数据格式进行统一规格的设计。 (3)人机对话设计:对于一个实时系统,用户与计算机需频繁对话,因此,要进行对话方式、内容及格式的具体设计。5编写详细设计说明书6评审对处理过程的算法和数据库的物理结构要进行评审。5.1.2 详细设计方法1、自顶向下逐步求精2、具有单入、单出的控制结构(取消GOTO语句)3、五种控制结构顺序结构选择结构先判断循环结构后判断循环结构多选择结构5.2.1 程序流程图5.2 详细设计阶段使用的工具在程序流程图中采用三种控制结构来实现单入口、单出口的程序 5.2 详细设计阶段使用的工具5.2.2盒图(N_S图)5.2 详细设计阶段使用的工

3、具盒图(N_S图) 例子5.2 详细设计阶段使用的工具5.2.3问题分析图(PDA图)5.2 详细设计阶段使用的工具盒图和PDA图的转换x4TFDo-Until x5ighfkx1TFbDo-Until x6aj5.2 详细设计阶段使用的工具开始 结束 aj Until x5i Until x6bx1kfx4gh盒图和PDA图的转换5.2 详细设计阶段使用的工具5.2.4判定表与判定树表示复杂的条件组合与应做动作之间的对应关系判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试例: 航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,

4、头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。 5.2 详细设计阶段使用的工具规则 规则数 条件 动作5.2 详细设计阶段使用的工具行李费算法行李重量W 30行李重量W 30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30) 2(W-30) 4残疾乘客正常乘客(W-30) 3(W-30) 6头等舱其他舱残疾乘客正常乘客(W-30) 4(W-30) 8残疾乘客正常乘客(W-30) 6(W-30) 12用判定树表示计算行李费的算法5.2 详细设计阶段使用的工具5.2.5 过程设计语言(PDL)1、PDL特点关键字

5、有固定的语法自然语言的自由语法,它描述处理特点。数据说明的手段。模块定义和调用的技术,应该提供各种接口描述模式。2PDL程序结构(1)顺序结构采用自然语言描述顺序结构处理S1处理S2处理Sn(2)选择结构1)IF-ELSE结构 IF 条件 IF 条件 处理S1 或 处理S1 ELSE ENDIF 处理S2 ENDIF3)CASE结构CASE OFCASE(1)处理S1CASE(2)处理S2ELAE 处理SnENDCASE(4)循环结构1)FOR结构 FOR i=1 TO n 循环体 ENDFOR2)WHILE结构 WHILE条件 循环体 ENDWHILE3)UNTIL结构 REPEAT循环体U

6、NTIL条件(5)出口结构 1)ESCAPE结构(退出本层结构) WHILE条件 处理S1 ESCAPE L IF条件 处理S2 ENDWHILE L:2)CYCLE结构(循环内部进入循环的下一次) L: WHILE条件 处理S1 CYCLE L IF条件 处理S2 ENDWHILE(6)扩充结构1)模块定义 PROCEDURE 模块名(参数) RETURN END2)模块调用 CALL模块名(参数)3)数据定义 DECLARE 属性 变量名, 属性有字符、整型、实型、双精度、指针、数组及结构等类型。4)输入输出 GET(输入变量表) PUT(输出变量表) 3举例理解PDL语言例如5.2查找拼

7、错单词的程序- PROCEDURE查找拼错单词 is BEGIN把这个文件分离成单词查字典显示字典中查不到的单词造一新字典END 查找拼错单词 对上面的算法细化 PROCEDURE 查找拼错单词 BEGIN-* split document into single words LOOP get next word add word to word list in sortorder EXIT WHEN all words processed END LOOP -* look up words in dictionary LOOP get word from word list IF word

8、not in dictionary THEN -* display words not in dictionary display word prompt on user terminalIF user response says word OK THEN add word to good word lis ELSE add word to bad word list ENDIF ENDIF EXIT LOOP -* create a new words dictionary dictionary:= merge dictionary and good word list END spellc

9、heck5.2 详细设计阶段使用的工具过程设计语言(PDL)优点易于实现由PDL到源代码的自动转换缺点不够直观模块开发文件夹 记录模块开发过程的文档5.3 面向数据结构的设计方法5.3.1 改进的Jackson图以数据结构(data structure)为基础设计每个模块的处理过程ABCABoCoSAB*I 顺序 选择 重复 改进的Jackson图5.3 面向数据结构的设计方法5.3.2 Jackson方法步骤(1)用Jackson图描述 I/O 的数据结构。(2)在两个图中指出有直接因果关系(causality)、可以同时处理的单元(重复的次序,次数均相同)。(3)把有对应关系的单元合为一个

10、处理框,画在相应的层次中。(4)列出所有操作条件,并分配到上幅程序结构图中。(5)用伪代码表示程序。例5.3一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输入数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。第一步:用Jackson图描述 I/O 的数据结构第二步:在两个图中指出有直接因果关系(causality)、可以同时处理的单元。虚线带箭头部分指出相应的因果关系及可处理的单元。第三步:把有对应关系的单元合为一个处理框,画在相应的层次中。第四步:列出所有操作条件,并分

11、配到程序结构图中。(1)停止 (2)打开文件(3)关闭文件(4)印出字符串(5)印出空格数目(6)印出空格总数(7)SUM:=SUM+1(8)totalsum:=totalsum+sun(9)读入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件结束 I(2)字符串结束 S(3)字符是空格第五步:用伪代码(Pseudocode) 表示程序。因为Jackson使用的伪码和Jackson图之间存在简单的对应关系,所以从图5-11得出下面的伪码: 统计空格seq 打开文件 读入字符串 totalsum:=0 程序体iter until文件结束 处理字符串seq 印字符串seq 印出字符串 印字符串end sum:= 0 pointer:=1分析字符串iter until字符串结束 分析字符select字符是空格 处理空格seq sum:=sum + 1 pointer:=pointer + 1 处理

温馨提示

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

评论

0/150

提交评论