《软件工程导论》PPT课件-第5章-详细设计_第1页
《软件工程导论》PPT课件-第5章-详细设计_第2页
《软件工程导论》PPT课件-第5章-详细设计_第3页
《软件工程导论》PPT课件-第5章-详细设计_第4页
《软件工程导论》PPT课件-第5章-详细设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程导论 第5章 详细设计 理解详细设计的目的与任务 理解面向数据结构的Jackson方法 熟练掌握结构化的详细设计方法及其设计工具第5章 详细设计 5.1 详细设计的目的与任务 5.2 详细设计方法 5.3 详细设计工具 5.4 习题第5章 详细设计 5.1 详细设计的目的与任务 5.2 详细设计方法 5.3 详细设计工具 5.4 习题根本目标: 应该怎样具体地实现系统? 详细设计是软件设计的重要阶段,主要确定每个模块的具体执行过程,也称为“过程设计”。 Note: 任务:设计程序的“蓝图”; 详细设计编写程序; 详细设计结果决定着程序代码的质量。5.1 详细设计的目的与任务该阶段工作具

2、体包括以下几方面:1处理方式的设计(1)数据结构的设计。对于需求分析、总体设计确定的概念性的数据类型进行确切地定义。(2)算法设计。用某种图形、表格、语言等工具将模块处理过程的详细算法描述出来,并为实现软件系统的功能需求确定所必须的算法,评估算法的性能。(3)性能设计。为满足软件系统的性能需求确定所必须的算法和模块间的控制方式。包括:周转时间、响应时间、吞吐量、精度。(4)确定外部信号的接收/发送形式。5.1 详细设计的目的与任务该阶段工作具体包括以下几方面:2为数据库进行物理设计 为数据库进行物理设计,确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依

3、赖于具体所使用的数据库系统。3其它设计 (1)输入/输出格式设计:针对各个功能,根据界面设计风格,设计各类界面的样式。 (2)人机对话设计:对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。 (3)编写详细设计说明书。5.1 详细设计的目的与任务第5章 详细设计 5.1 详细设计的目的与任务 5.2 详细设计方法 5.3 详细设计工具 5.4 习题5.2 详细设计方法 进行详细设计典型方法是结构化程序设计(Struc-tured Programming,SP)方法。进行详细设计应该遵循以下三个原则:(1)在保证正确可靠的前提下,尽量提高算法的可读性。(2)结构化

4、设计方法是实现详细设计目标的关键技术之一。(3)用工具来描述模块算法。 1966年Bohm和Jacopini证明,只用3种基本的控制结构就能实现任何单入口单出口的程序。这3种基本控制结构分别是“顺序”、“选择”和“循环”。Bohm和Jacopini的证明给结构程序设计奠定了理论基础。 (a) (b) (c)图5.1 程序流程图的3种基本结构(a)顺序结构 (b)选择结构 (c)当型循环结构和直到型循环结构5.2.1 结构化程序设计方法其他结构5.2.1 结构化程序设计方法结构化程序设计的经典定义: 如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入

5、口和一个出口,则称这个程序是结构化的。结构化程序设计的更全面的定义: 尽可能少用GO TO语句的程序设计方法,最好仅在检测出错误时才使用GO TO语句,而且应该总使用前向GO TO语句。结构化程序设计的本质: 不是不用goto语句的编程方法,而是一种使程序代码容易阅读、容易理解的编程方法。5.2.1 结构化程序设计方法结构化程序设计方法的基本思路:1自顶向下、逐步细化 自顶向下、逐步细化的设计方法的过程是将问题求解由抽象到逐步具体化的过程。用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。检查时也是由上而下逐层检查。这样思路清楚,可以

6、有条不紊地一步步进行,既严谨又方便。 5.2.1 结构化程序设计方法结构化程序设计方法的基本思路:2模块化设计 在程序设计中常采用模块设计的方法。根据程序模块的功能将它划分为若干个子模块,如果子模块规模大,还可以继续划分为更小的模块。这个过程采用自顶向下的方法来实现。3结构化编码 在设计好一个结构化的算法之后,还要善于使用高级语言进行结构化编码最终能够正确地实现算法。5.2.1 结构化程序设计方法面向数据流的设计方法 软件结构面向数据结构的设计方法 程序处理过程面向数据结构的设计方法:在完成了软件结构设计之后对每个模块处理过程的设计,其最终目标就是得出对程序处理过程的描述。5.2.2 面向数据

7、结构的设计方法 面向数据结构的设计方法是以信息对象及其操作为核心,认为复合信息对象具有层次结构,而这种层次结构又可以分解成多种结构对象,最终可以映射为程序结构。 面向数据结构的设计方法中最著名的方法有: Jackson方法; Warnier方法。5.2.2 面向数据结构的设计方法一种软件开发方法,该方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,以得到完整的程序结构图。该方法适用于输入、输出结构明确的中小型系统。1Jackson图 Jackson图是Jackson方法的描述工具,在程序结构中使用的数据元素之间往往有逻辑关系,这些逻辑关系分别是顺序、选择和重复三种。5.

8、2.2 面向数据结构的设计方法1Jackson图(1)顺序结构的Jackson图表示5.2.2 面向数据结构的设计方法(2)选择结构的Jackson图表示5.2.2 面向数据结构的设计方法(3)重复结构的Jackson图表示5.2.2 面向数据结构的设计方法2改进的Jackson图 (a)顺序结构(不能是选择或重复出现的元素) (b)选择结构 (c)可选结构 (d)重复结构 第i个分支条件循环结束条件编号*5.2.2 面向数据结构的设计方法举例:Jackson图符号的运用一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。火车头既可能

9、是内燃机车也可能是电气机车。车厢分为硬座车厢、硬卧车厢和软卧车厢3种。硬座车厢在所有车厢的前面,软卧车厢在所有车厢的后面。此外,在硬卧车厢和软卧车厢之间还有一节餐车。 5.2.2 面向数据结构的设计方法3. Jackson方法 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构; 找出输入数据结构和输出数据结构中有对应关系的数据单元; 从描绘输入、输出数据结构的Jackson图导出描绘程序结构的Jackson图(3条规则) 列出基本操作和条件,并且把它们分配到程序结构图的适当位置; 用伪码表示程序。5.2.2 面向数据结构的设计方法 为每对有对应关系的数据单元,按照它

10、们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意); 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框; 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。5.2.2 面向数据结构的设计方法举例:P57 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。5.2.2 面向数据结构的设计方法处理流程:(1)确定输入和输

11、出数据结构;(2)找有直接因果关系、可以同时处理的单元(重复的次序、次数均相同)的输入输出数据单元;5.2.2 面向数据结构的设计方法(3)从数据结构图导出程序结构图 (把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准)。5.2.2 面向数据结构的设计方法(4)列出所有操作和条件,并且把它们分配到程序结构图的适当位置;5.2.2 面向数据结构的设计方法(5)用伪码表示程序。 统计空格seq 打开文件 读入字符串 totalsum=0 程序体iter until文件结束 处理字符串seq 印字符串seq 印出字符串 印字符串end 统计空格 end5.2.2 面向数据结构的设

12、计方法Jackson图相比传统结构化设计工具的优点: 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具; 形象直观可读性好; 既能表示数据结构也能表示程序结构。5.2.2 面向数据结构的设计方法Jackson图与层次图的比较 (1)Jackson图是对层次方框图的精化(2)Jackson图与层次图在描述程序结构时的含义不同: 矩形框: 层次图:代表一个模块; Jackson图:代表几个语句。 表现出来的关系: 层次图:表现的是调用关系; Jackson图:表现的是组成关系。第5章 详细设计 5.1详细设计的目的与任务 5.2 详细设计方法 5.3 详细设计工具 5.4 习题5.3 详细

13、设计工具程序流程图中使用的符号 5.3.1 程序流程图(a) (b) (c)图5.1 程序流程图的3种基本结构(a)顺序结构 (b)选择结构 (c)当型循环结构和直到型循环结构5.3.1 程序流程图其他结构5.3.1 程序流程图优点: 对控制流程的描绘很直观 缺点: 不能逐步求精,可理解性差; 可随意转移控制,违背结构程序设计的原则; 不易表示数据结构。5.3.1 程序流程图 1973年,美国学者Nassi和Shneiderman共同提出了盒图,也称N-S图、CHAPIN图。 基本单元:矩形框; 算法:矩形框的组装。 N-S图适合结构化程序设计方法,对于非结构化程序无法表示。5.3.2 盒图图

14、5.13 盒图的基本符号(a)顺序型;(b)IF选择型;(c)CASE型多分支;(d)循环型;(e)调用子程序 5.3.2 盒图优点: 不能任意转移控制; 功能域(特定控制结构的作用域)明确; 很容易确定局部和全程数据的作用域; 很容易表现嵌套关系,也可表示模块的层次结构。5.3.2 盒图举例:5.3.2 盒图画出下列伪码程序的程序流程图和盒图。 START IF P THEN WHILE q DO f END DO ELSE BLOCK g n END BLOCK END IF STOP5.3.2 盒图 使用二维树形结构的图来表示程序的控制流。将这种图翻译成程序代码比较容易。5.3.3 PA

15、D图问题分析图PAD图的基本符号 5.3.3 PAD图问题分析图TF使用PAD图提供的定义功能来逐步求精的例子 5.3.3 PAD图问题分析图优点: 所描绘程序结构清晰,易读、易懂、易记; 支持自顶向下、逐步求精方法的使用。 容易转换成高级语言源程序;5.3.3 PAD图问题分析图x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21cDo-While x323dek :P67 习题11:N-S图向PAD的转换开始 结束 aj Until x5i Until x6bx1kfx4ghdefkx2de123 While x3c5.3.4 过程设计语言 PDL是一种用于描

16、述功能模块的算法设计和加工细节的语言,称为设计程序用语言,它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它使用自然语言的词汇表示实际操作和条件的内语法。PDL不能被编译。例如, If 登录成功 then 跳转到管理页 else 出错 5.3.4 过程设计语言应具备以下特点: 有固定的外语法(keyword); 有数据说明,例如: TYPE number IS STRING LENGTH (12) TYPE table IS INSTANCE OF symbol_table有子程序定义与调用机制,例如: PROCEDUR

17、E INTERFACE pseudocode lines END 调用时可用:PERFORM USING 内语法用自然语言描述;抽象类型PDL的特点:(1)关键字采用固定语法,并支持结构化构件、数据说明机制和模块化;(2)处理部分采用自然语言描述;(3)允许说明简单和复杂的数据结构;(4)子程序的定义与调用规则不受具体接口方式的影响。5.3.4 过程设计语言5.3.5 判定表与判定树判定表的构成: 左上:条件; 左下:动作; 右上:条件组合矩阵; 右下:组合对应的动作。判定表绘制的步骤如下:(1)分析决策问题涉及几个条件;(2)分析每个条件有几个取值区间;(3)画出条件取值分析表,分析条件的各

18、种可能组合;(4)分析决策问题涉及几个决策方案;(5)画出有条件组合的决策表;(6)决定各种条件组合的决策方案,填写决策规则;(7)合并化简决策表。 5.3.5 判定表与判定树 例如,某公司为本科以上学历的人重新分配工作,分配原则如下:如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;学历是硕士不分男女,任课题组组长;如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。5.3.5 判定表与判定树(1)判定条件可能取值表:条件名称取值符号取值数性别男MM1=2女F年龄不满18岁CM2=3满18岁小于50岁Y超过50岁L文化程度硕士GM3=2本科U5.3.5 判定表与判定树(2)计算组合数2*3*2=12;(3)初步判定表123456789101112性 别MMMMMMFFFFFF文化程度GGGUUUGGGUUU年 龄LYCLYCLYCLYC组 长领 导科 研行 政资 料 员考 研5.3.5 判定表与判定树(4)简化后的判定表1,2,37,8,945,1161012性 别-M-MFF文化程度GUUUU

温馨提示

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

评论

0/150

提交评论