《结构化设计方法》PPT课件.ppt_第1页
《结构化设计方法》PPT课件.ppt_第2页
《结构化设计方法》PPT课件.ppt_第3页
《结构化设计方法》PPT课件.ppt_第4页
《结构化设计方法》PPT课件.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第9章结构化设计方法 结构化设计阶段数据流设计方法面向数据的设计结构化程序设计案例分析 结构化设计概述 设计先于编码 这是软件工程 推迟实现 基本原则的又一体现 结构化设计方法 StructuredDesign SD 是基于模块化 自顶向下细化 结构化程序设计等程序设计技术基础上发展起来的 结构化设计方法用模块结构图来表达程序模块之间的关系 软件设计分为两个阶段 概要设计详细设计 概要设计 概要设计也称总体设计 确定软件的结构以及各组成成分 子系统或模块 之间的相互关系 概要设计的主要任务是 将系统划分成模块 决定每个模块的功能 决定模块的调用关系 决定模块的界面 即模块间传递的数据 概要设计阶段的主要任务是通过数据流图来确定系统的结构图 并且对这些结构图进行分析和细化 在概要设计阶段 结构化设计主要采用面向数据流的设计方法 详细设计 详细设计就是在概要设计的基础上决定如何具体实现各模块的内部细节 直到对系统中的每个模块给出足够详细的过程描述 在编码实现阶段就可以完全按照详细设计的细节过程来映射到代码 最终实现整个系统 一般使用结构化程序设计工具来描述 数据流类型 根据基本系统模型 数据信息必须以 外部 信息形式进入软件系统 经过内部处理以后再以 外部 的形式离开系统 有三种数据流类型 变换型数据流事务型数据流混合型数据流 变换型数据流 信息可以通过各种路径进入系统 信息在 流 入系统的过程中由外部形式变换成内部数据形式 这被标识为输入流 在软件的核心 输入数据经过一系列加工处理 这被标识为变换流 通过变换处理后的输出数据 沿各种路径转换为外部形式 流 出软件 这被标识为输出流 整个数据流体现了以输入 变换 输出的顺序方式 沿一定路径前行的特征 这就是变换型数据流 简称变换流 变换型数据流 事务型数据流 当数据流经过一个具有 事务中心 特征的数据处理时 它可以根据事务类型从多条路径的数据流中选择一条活动通路 这种具有根据条件选择处理不同事务的数据流 就是事务型数据流 简称事务流 事务型数据流 混合型数据流 在一个大型系统的DFD中 变换流和事务流往往会同时出现 例如 在一个事务型的DFD中 分支动作路径上的信息流也可能会体现出变换流的特征 这种具有将事务流和变换流组合出现 就是混合型数据流 简称混合流 混合型数据流 混合型数据流 数据流设计方法 面向数据流分析 DFA DataFlowAnalysis 的设计是一种结构化的软件体系结构设计方法 面向数据流分析的设计能与大多数需求规格说明技术配合 可以使模块达到高内聚性 顺序性内聚 这一设计技术是从数据流图 DFD 分析模型映射为软件模块组成结构设计的描述 所以也称为结构化设计 SD StructuredDesign 方法 数据流映射步骤 复查基本系统模型 并精化系统数据流图分析数据流类型 确定数据流具有变换流特征还是事务流特征如果是变换流特征 确定输入流和输出流的边界 也分别称为最高输入 输出抽象点 输入流边界和输出流边界之间就是变换流 也称为 变换中心 变换流加工处理的是某些形式的内部数据 如果是事务流特征 则可确定一个接收分支和一个发送分支 其中发送分支包含一个 事务中心 和各个事务动作流 采用自顶向下 逐步求精的方式完成模块分解 确定相应的软件组成结构根据模块独立性原理和运用设计度量标准 对导出的软件结构进行优化 变换流设计 变换流设计的要点是分析数据流图 确定输入流 输出流边界 根据输入 变换 输出三个数据流分支将软件映射成一个标准的 树型 体系结构 在有多个输入流和多个输出流时 应分别找出各个输入流和输出流的边界 即最高抽象点 然后分别连接这些输入流的最高抽象点和输出流的最高抽象点 分别形成输入边界和输出边界 下面设计一个 统计输入文件中单词数目 程序 第一次分解 第二次分解 事务流设计 事务流分析设计是把事务流映射成包含一个接收分支和一个发送分支的软件结构 接收分支的映射方法和变换流设计映射出输入结构的方法相似 即从事务中心的边界开始 把沿着接收流通路的处理映射成一个个模块 发送分支结构包含了一个分类控制模块和它下层的各个动作模块 数据流图的每一个事务动作流路径应映射成与其自身信息流特征相一致的结构 事务流设计 ATM机系统结构 混合流设计 混合流设计 面向数据的设计 大多数软件本质上都是数据信息处理系统 而数据信息都有清楚的层次结构 即输入数据 内部存储信息 输出数据都可能有独特的数据结构 面向数据的设计原理就是根据软件操作的数据结构设计软件 适合于总体设计和详细设计 合而为一 的软件设计 面向数据的设计技术最常用的有Jackson方法 JacksonStructuredDesign JSD 由数据结构导出它的程序结构是Jackson方法的基本思想 Jackson图 Jackson图是Jackson方法分析和设计最有效的表达手段 用它既可以描述问题的数据结构 也可以描述软件的程序结构 Jackson图的优点是便于表示层次结构 利于结构自顶向下分解 形象直观 可读性好 Jackson方法用某种形式的伪码给出程序的过程性描述 JSD方法设计步骤 分析并确定问题的输入和输出数据的逻辑结构 并用Jackson图描绘这些数据结构 找出输入数据结构和输出数据结构中有对应关系的数据单元 根据下述三条规则从数据结构的Jackson图导出程序结构的Jackson图 为每个有对应关系的数据单元 按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框 根据输入数据结构中剩余的每个数据单元所处的层次 在程序结构图的相应层次分别为它们画上对应的处理框 根据输出数据结构中剩余的每个数据单元所处的层次 在程序结构图的相应层次分别为它们画上对应的处理框 列出操作和条件 并把它们分配到程序结构图的适当位置 用某种形式的伪码给出程序结构图对应的过程性描述 JSD举例分析 Jackson图 JSD举例分析 Jackson图 输出数据 输出数据结构 程序结构 程序矛盾 伪码 PROCESS CUST DATAseqopenPAY FILE openCUST M FILE 分别打开支付文件和顾客主文件 PROCESS CNO GROUPiteruntileof PAY FILE 处理顾客号码组 readPAY FILE 读支付文件一个记录 PROCESS CNO 读顾客主文件一个记录 找老结余 PROCESS PAY RECORDiteruntilend CNO GROUP 处理顾客号码组中每个支付记录 writereportline 写出报告行 computetotalpayments 计算总支付额 readPAY FILE 读支付文件下一个记录 PROCESS PAY RECORDend 一位顾客数据处理完 COMPUTE CUST TOTAL 计算顾客总数 COMPUTE BALANCEseq 计算结余 PROCESS OLD BALANCE 处理老结余 COMPUTE NEW BALANCE 计算新结余 writereportline 写出报告行 COMPUTE BALANCEend 计算结余完毕 PROCESS CNO GROUPend 支付文件处理完成 PROCESS CUST DATAend SubstructurePROCESS CUST DATA 结构化程序设计方法 结构化程序设计的理念是在20世纪60年代 由Dijkstra等人提出并加以完善的 结构化的程序一般只需要用三种基本的逻辑结构就能实现 这三种基本逻辑结构是顺序结构 选择结构和循环结构 结构化程序设计是一种设计程序的技术 它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构 结构化程序设计优点 自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律 因此可以显著提高软件开发工程的成功率和生产率 用先全局后局部 先整体后细节 先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构 因此容易阅读和理解 不使用GOTO语句仅使用单入口单出口的控制结构 使得程序的静态结构和它的动态执行情况比较一致 因此 程序容易阅读和理解 开发时也比较容易保证程序的正确性 即使出现错误也比较容易诊断和改正 控制结构有确定的逻辑模式 编写程序代码只限于使用很少几种直截了当的方式 因此源程序清晰流畅 易读易懂而且容易测试 程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大 程序的逻辑结构清晰 有利于程序正确性证明 结构化程序设计工具 图形工具 把过程的细节表示成一个图的组成部分 在这个图上 逻辑构造用具体的图形来表示 列表工具 用一个表来表示过程的细节 这个表列出了各种操作及其相应的条件 也即 描述了输入 处理和输出信息 语言工具 用类语言来表示过程的细节 这种类语言很接近于编程语言 程序流程图 程序流程图又称为程序框图 Goldstine于1946年首先采用 它的主要优点是对控制流程的描绘很直观 便于初学者掌握 程序流程图的主要缺点 程序流程图本质上不是逐步求精的好工具 它诱使程序员过早地考虑程序的控制流程 而不去考虑程序的全局结构 程序流程图中用箭头代表控制流 因此程序员不受任何约束 可以完全不顾结构程序设计的精神 随意转移控制 程序流程图不易表示数据结构 程序流程图符号 盒图 盒图是由Nassi和Shneiderman提出的 所以又称为N S图 每个处理步骤都用一个盒子来表示 这些处理步骤可以是语句或语句序列 在需要时 盒子中还可以嵌套另一个盒子 嵌套深度一般没有限制 盒图具有下述特点 功能域 即 一个特定控制结构的作用域 明确 可以从盒图上一眼就看出来 由于只能从上边进入盒子然后从下面走出盒子 除此之外没有其它的入口和出口 所以盒图限制了任意的控制转移 保证程序有良好的结构 很容易确定局部和全程数据的作用域 很容易表现嵌套关系 也可以表示模块的层次结构 盒图很容易表示程序结构化的层次结构 确定局部和全局数据的作用域 由于没有箭头 因此不允许随意转移控制 盒图符号 PAD图 PAD是问题分析图 ProblemAnalysisDiagram 的英文缩写 自1973年由日本日立公司发明 它是由程序流程图演化而来 用二维树形结构的图来表示程序的控制流 将这种图翻译成程序代码比较容易 PAD图的基本原理 采用自顶向下 逐步细化和结构化设计的原则 力求将模糊的问题解的概念逐步转换为确定的和详尽的过程 使之最终可采用计算机直接进行处理 PAD图符号 PAD图的主要优点 使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序 PAD图所描绘的程序结构十分清晰 图中最左边的竖线是程序的主线 即第一层结构 随着程序层次的增加 PAD图逐渐向右延伸 每增加一个层次 图形向右扩展一条竖线 PAD图中竖线的总条数就是程序的层次数 用PAD图表现程序逻辑 易读 易懂 易记 PAD图是二维树形结构的图形 程序从图中最左竖线上端的结点开始执行 自上而下 从左向右顺序执行 遍历所有结点 容易将PAD图转换成高级语言源程序 这种转换可用软件工具自动完成 从而可省去人工编码的工作 有利于提高软件可靠性和软件生产率 既可用于表示程序逻辑 又可用于描绘数据结构 PAD图举例 HIPO图 HIPO HiberarchyPlusInput Process Output 层次加输入 处理 输出 图是根据IBM公司研制的软件设计与文件编制技术发展而来的 HIPO图采用功能框图和PDL来描述程序逻辑 它由两部分组成 可视目录表给出程序的层次关系体系框图 又称层次图 H图 是可视目录表的主体 用它表明各个功能的隶属关系图例 图形符号说明描述说明 每一框的补充说明IPO图则为程序各部分提供具体的工作细节 盘存 销售系统工作流程图 层次图 说明 IPO图 详细的IPO图 实例分析 出卷系统 接口 接口 没有输入参数 输出参数为用户命令 接口 输入参数为出卷命令 没有输出参数 接口 输入参数为设置试卷要求 没有输出参数 接口 输入参数为手动出卷命令 没有输出参数 接口 输入参数为自动出卷命令 没有输出参数 自动出卷 手动出卷 图书馆系统 图书馆系统 维护管理系统 小结 概要设计就是确定系统的模块以及模块之间的结构和关系 将软件的功能需求分配给所划分的最小单元模块 详细设计要确定数据结构 文件结构 数据库模式以及确定测试方法与策略 在概要设计阶段主要树立一个模块化的

温馨提示

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

评论

0/150

提交评论