《软件详细设计》PPT课件.ppt_第1页
《软件详细设计》PPT课件.ppt_第2页
《软件详细设计》PPT课件.ppt_第3页
《软件详细设计》PPT课件.ppt_第4页
《软件详细设计》PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

周苏教授Zs QQ 81505050 软件工程学教程第二版 第5章软件详细设计 结构化构造图形设计工具伪码与程序设计语言 PDL 各种详细设计工具的比较详细设计文件与复审 第5章软件详细设计 概要设计完成了程序的总体结构设计 规定了各个模块的功能及各模块之间的相互联系 再进一步 要考虑每个模块内部的算法问题从软件开发的工程化观点来看 在使用程序设计语言编写程序以前 需要对算法的逻辑关系进行分析 并给出清晰的表达 使之成为编码的依据这一步工作不仅编码工作容易多了 而且给软件的维护带来了很多的方便 5 1概述 在理想情况下 详细设计需要的过程描述应当用自然语言来表达 但是 自然语言不具有单义性 必须使用更有约束性的方式来表示过程细节为了把概要设计期间简明 无歧义的一般处理步骤的描述转换成为准确的 结构过程描述 需要使用设计描述工具 图5 1工具的类别 5 1概述 过程规格说明的工具称为详细设计工具 分为图形工具 把过程的细节表示成一个 图 的组成部分 在这个图上 逻辑构造用具体的图形来表示列表工具 用一个表来表示过程的细节 这个表列出了各种操作及其相应的条件 换句话说 描述了输入 处理和输出信息语言工具 用类语言来表示过程的细节 这种类语言很接近于编程语言设计工具应当表现出控制的流程 处理功能 数据的组织以及实现的细节 5 2结构化构造 详细设计的基础在60年代初期开始奠定和充实的 60年代后期 提出了一组逻辑构造 利用这组逻辑构造可以构成任何程序 这组构造强调 维持一定的功能域 也就是说 每个构造有一个预定的逻辑结构 每个构造都从顶部进入并从底部离去顺序构造是实现任何一个算法的基本处理步骤条件构造根据某种逻辑条件的出现而选择相应的处理步骤重复构造则是为循环而设置的这三种构造是结构程序设计 软件工程领域中的一种重要方法 的基础 结构程序设计是一种设计程序的技术 是软件工程领域中的一种重要方法 它采用自顶向下 逐步求精的设计方法和单入口单出口的控制结构提出这些结构化构造的目的是限制软件的过程设计 减少程序的复杂性 从而提高软件的可读性 可测试性和可维护性任何一个程序 不管它的应用领域或者技术复杂性如何 都可以仅仅用顺序 条件和重复这三种结构化构造来设计和实现 5 2结构化构造 5 3图形设计工具 详细设计中的图形设计工具有程序流程图 框图 方块图 NS HIPO图PAD图这些图形工具提供了极好的图形样式 使得可以方便地描述过程的细节 5 3 1程序流程图 流程图独立于各种程序设计语言 比较直观 清晰 易于学习掌握 然而 它也是经常被误用的一种方法为使流程图能描述结构化程序 限制流程图只能由几种基本控制结构组成 或者说任一程序流程图都应能由几种基本控制结构嵌套而成GB1526 89 信息处理 数据流程图 程序流程图 系统流程图 程序网络图和系统资源图的文件编制符号及约定 中对程序流程图的符号做出了规定 图5 2基本控制结构 图5 3嵌套构造 图5 4标准程序流程图符号 5 3 1程序流程图 通常 当需要从一组嵌套的循环构造或者嵌套的条件构造中离去时 只简单地采用结构化构造有可能使效率降低 甚至沿着离去路径使所有逻辑测试复杂化 从而使软件的控制流程变得模糊不清 增加了出错的可能性 并且对可读性和可维护性也有不良影响 这时 可以有两种选择 重新设计程序流程 使得在控制流程的嵌套部位不需要出现离去分支有控制地采用非结构化的构造 也就是说 设计成有限制地从嵌套流程中往外分支 图5 5一个结构化流程图 5 3 2方块图 N S 是一种强制使用结构化构造的图示工具 具有下列特点明确规定功能域 即某一具体构造的功能范围 并且很直观地从图形表示中看出来不可能随意分支或转移可以很容易地确定局部数据和 或 全程数据的作用域容易表示出递归结构 图5 6方块图表示的结构化构造 图5 7方块图 5 3 3HIPO图 层次加输入 处理 输出 是根据IBM公司研制的软件设计与文件编制技术发展而来的一种图示工具在概要设计 详细设计 设计评审 测试和维护的不同阶段 都可以使用HIPO图对设计进行描述HIPO图的最重要的特征是它能够表示输入 输出数据 外部数据和内部数据流程 与软件的过程之间的关系完整的一组HIPO图由下列各部分组成层次图 H图 以层次方框形式表达程序主功能模块与次功能模块的关系高层IPO图 针对H图中的主功能模块和次功能模块 描述其输入 处理功及输出等低层IPO图 给出H图中最低层次的具体设计 图5 8订单处理的H图 5 3 3HIPO图 在画H图时要注意几个问题根据经验 一般每层画3 10个功能模块为宜对于画到第几层为止则无统一标准 视具体情况而定画高层IPO时 从H层第一层开始画 按自上而下 从左到右的顺序画出H图中每个方框 除最底层外 的IPO图 在IPO图上给出哪些是输入 处理的功能是什么 输出什么为了避免规模和维护上的复杂性问题 大多数项目的HIPO图只深入到某一层 图5 9每月发票处理的IPO 5 3 4PAD图 PAD 问题分析图 是一种用于软件详细设计的表达形式综合流程图 Warnier图 方块图和伪码等技术的一些特点以二维树的形式描述程序的逻辑主要优点是程序结构清晰 能够直接导出程序代码 并对其一致性进行检查可应用于BASIC FORTRAN COBOL PASCAL等高级语言支持软件需求分析和概要设计阶段 图5 10PAD方法的基本原理 PAD的基本符号表 图5 11PAD图的基本控制结构 图5 12PAD图 5 4伪码与程序设计语言 PDL 伪码是控制结构和某些编程语言元素的简写符号 可以任意插入注释 实质上是 文字流程图 熟悉某种程序设计语言的设计人员所用的伪码可能就是该语言的简化版本例如 如果想用FORTRAN和Pascal两种语言来设计同一个程序 可以在开始时使用相同的伪码 而在最后使用不同的程序设计语言实际使用时 设计人员可以随意增加伪码的详细程度 特别是针对可能产生二义性的地方伪码的缺点是不标准 而且只有控制结构 对数据描述能力很差 5 4伪码与程序设计语言 PDL 程序设计语言 PDL 又称详细设计语言DDL 弥补了伪码的缺点 它是一种 混杂式语言 它采用某种语言 例如英语 的词汇但却采用另一种语言 即一种结构化编程语言 的全部语法 它用文本格式提供一种描述数据和处理的方法PDL有正规的句法 指出数据和处理结构 并用自然语言说明细节虽然程序设计语言是不可执行的 但可以对之开发出评价设计和转换为源程序的自动化技术 5 4伪码与程序设计语言 PDL 为了实现从详细设计到编码的自动转换 各种程序设计语言都开发了相应的PDL 如PDL PASCAL PDL C 以及PDL Ada等 它们利用程序设计语言的语法结构 用自然语言表示某些控制信息程序设计语言可以分成三类数据说明处理说明I O对特殊的应用 如多任务语句或实时应用等 可以提供专用的结构和语句 5 4伪码与程序设计语言 PDL 用程序设计语言写出的程序与用高级语言编写的程序非常相似 在总体结构上它和高级语言程序的相似之处主要在于关键字起到了骨架作用按程序结构缩格书写主要差别表现在 除去特定的若干关键字外 所描述的内容也使用了简单的自然语言 没有高级语言那样严格的语法限制程序设计语言是用于详细设计阶段的工具 这个阶段的任务显然与用高级语言编写程序的任务完全不同程序设计语言把叙述性说明文直接插入到PDL语句中 由于混合使用叙述性说明文和形式化的过程形式 故一般无法对其进行编译 5 4伪码与程序设计语言 PDL PDL可以是一种稍作变动的编程语言 或者是为程序设计而专门研制的语言作为一种程序设计语言 PDL应当具有以下特征其关键字有固定语法 以便提供全部结构化构造 数据说明和模块化特性一种自然语言的自由文法 用来描述处理性能有数据说明机制 包括简单的 标量与数组 与复杂的数据结构 链表或层次结构 有子程序定义与调用方法 用来表达各种方式的接口说明一个用程序设计语言描述的软件设计应当可以转换成汇编语言 FORTRAN或者Pascal 只是难易程度有所不同而已 5 5各种详细设计工具的比较 设计工具应有下列属性模块性设计工具应能支持模块化软件的开发简明性软件工具应当比较容易学习 使用和阅读便于编辑机器可读性可维护性软件配置的维护总是意味着对详细设计表示的维护强行结构化只允许使用结构化构造的设计工具将会促使人们养成良好的设计习惯自动处理数据表示描述局部数据和全程数据的能力是详细设计的重要因素 设计工具应当直接地表示这些数据逻辑验证设计逻辑的自动验证是软件测试期间要达到的首要目标 能够增强逻辑验证能力的软件工具将提高测试的完备程度编程能力用软件工具表示的设计是否可以很容易转换成源程序 5 6详细设计文件与复审 详细设计阶段应交付的文件有详细设计说明书初步的模块开发卷宗 5 6 1详细设计说明书 详细设计说明书又称程序设计说明书编制本说明书的目的是说明一个软件系统各个层次中的每一个程序 每个模块或子程序 的设计考虑 如实现算法 逻辑流程等 第一章引言1 1编写目的1 2背景1 3定义第二章程序系统的结构第三章程序1设计说明3 1程序描述3 2功能3 3性能3 4输入项3 5输出项3 6算法 表5 2详细设计说明书 3 7流程逻辑3 8接口3 9存储分配3 10注释设计3 11限制条件3 12测试计划3 13尚未解决的问题第四章程序2设计说明用类似第三章的方式 说明第2个程序乃至第N个程序的设计考虑 5 6 2详细设计的复审 软件的详细设计完成以后 必须从正确性和可维护性两个方面 对它的逻辑 数据结构和界面等进行检查详细设计的复审可用下列形式之一完成 设计者和设计组的另一个成员一起进行静态检查由一个检查小组进行的较正式的 结构设计检查 由检查小组进行的正式的 设计检查 对软件设计质量给出严肃的评价软件开发的实践表明 正式的详细设计复审在发现某些类型的设计错误方面和测试一样有效正确的态度是 在详细设计复审中 不为设计辩护 而是揭短 揭露出设计中的缺点错误 5 7小结 任何一个程序 都可以仅仅用顺序 条件和重复三种结构化构造来设计和实现 并且将减少程序的复杂性 提高可读性 可测试性和可维护性用来表示详细设计的工具分成三个大类 图形 列表和语言详细设计中的设计工具主要有程序流程图 方块图 HIPO图和PAD图 程序设计语言PDL以及判定表等详细设计产生的主要文件是详细设计说明书 它为编写源代码提供了必要的说明 思考与习题 5 1举例说明你对概要设计与详细设计的理解 有不需要概要设计的情况吗 5 2请为一个程序进行详细设计 该程序接收一串任意长度的字符串文本作为输入 并列表输出文本中出现的字和每个字出现的次数 5 3本题是供小组完成的题目 请为一个自动化详细设计工具进行需求分析 概要设计与详细设计 这种自动化工具可以是 1 一个以计算机为基础的绘图系统 用来产生流程图的方块图 2 一个判定表分析程序 3 一个PDL缩进编排辅助程序和流程分析程序 5 4某些人主张 如果详细设计的详细程度与包含在源程序中的细节十分接近时 也可以删去详细设计这个步骤 直接编写程序就行了 对吗 思考与习题 5 5从供选择的答案中选出应填入下列关于软件详细设计叙述的 内的正确答案 软件详细设计工具可分为三类 即 图示工具 设计语言和表格工具 图示工具中 A 简单而应用广泛 B 表示法中 每一个处理过程用一个盒子表示 盒子可以嵌套 C 可以纵横延伸 图形的空间效果好 D 是一种设计语言 它是一种面向 E 的语言 若用判定表来描述图5 14所示的流程图 将b1 b2 b3作为条件栏s1 s2作为操作栏 则化简后的判定表中应有 F 个规则 图5 14习题5 5供选择的答案 A C NS图 流程图 HIPO图 PAD图D C PDL PROLOG PASCALE 人 机器 数据结构 对象F 8 4 6 2 思考与习题 5 6从供选择

温馨提示

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

评论

0/150

提交评论