第4章详细设计ppt课件.ppt_第1页
第4章详细设计ppt课件.ppt_第2页
第4章详细设计ppt课件.ppt_第3页
第4章详细设计ppt课件.ppt_第4页
第4章详细设计ppt课件.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第4章详细设计 4 1详细设计的任务与原则4 2过程设计的工具 详细设计又称过程设计 在概要设计阶段 已经确定了软件系统的总体结构 给出系统中各个组成模块的功能和模块间的联系 详细设计阶段的工作 是在概要设计结果的基础上 考虑 怎样实现 这个软件系统 直到对系统中的每个模块给出足够详细的过程性描述 需要指出 这些描述应该用详细设计的表达工具来表示 但它们还不是程序 一般不能够在计算机上运行 详细设计是编码的先导 这个阶段所产生的设计文档的质量 将直接影响编码阶段程序的质量 详细设计阶段的任务就是把解法具体化 设计出程序的详细规格说明 这种规格说明的作用类似于其他工程领域中工程师经常使用的工程蓝图 它们应该包含必要的细节 程序员可以根据它们写出实际的程序代码 4 1详细设计的任务与原则 设计阶段的目的是为编程制订一个周密的计划 根据 由外向里 的思想方法 概要设计完成之后 就要进行详细设计 详细设计确定每个模块的内部特征 即每个模块内部的执行过程 4 1 1详细设计的任务详细设计任务决定各个部模块内部特性 内部的算法及使用的数据 详细设计的任务不是编写程序 而是给出程序设计蓝图 程序设计人员根据蓝图编写程序 目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构 并用某种选定的表达工具给出清晰的描述 4 1详细设计的任务与原则 这一阶段的主要任务有 1 模块的算法设计为每个模块进行详细的算法设计 写出模块的详细过程性描述 即用某种图形 表格 语言等工具将每个模块处理过程的详细算法描述出来 2 模块的数据设计对于需求分析 概要设计确定的概念性的数据类型进行确切的定义 数据设计包括数据结构设计 数据库结构设计和文件设计等 4 1详细设计的任务与原则 3 模块的接口设计包括对系统外部的接口和用户界面 对系统内部其他模块的接口 以及模块输入数据 输出数据及局部数据的全部细节 在详细设计结束时 应该把上述结果写入详细设计说明书 并且通过复审形成正式文档 作为编码阶段的工作依据 4 模块的测试用例设计要为每一个模块设计出一组测试用例 这样可以在编码阶段对模块代码 即程序 进行预定的测试 模块的测试用例包括输入数据 期望输出等内容 负责过程设计的软件人员对模块的情况了解得最清楚 由他们完成过程设计后接着对各个模块进行测试最为合适 4 1详细设计的任务与原则 5 模块的其他设计根据软件系统的具体的要求 还可能进行以下设计 代码设计 网络系统设计 输入 输出格式的设计 系统配置的设计等 6 编写 详细设计说明书 在详细设计结束时 应该把上述设计结果写入详细设计说明书 对 详细设计说明书 进行评审 如果评审没有通过 要再次进行详细设计 直到满足要求为止 通过复审的详细设计说明书形成正式文档 交付给下一阶段 编码阶段 并成为其工作依据 4 1详细设计的任务与原则 4 1 2详细设计的原则在详细设计的过程中应遵循以下原则 1 模块的逻辑描述要清晰易懂 正确可靠由于详细设计的蓝图是给其他人看的 所以模块的逻辑描述要清晰易读 正确可靠 这样别人才能读懂 这也是常说的清晰第一的设计风格 详细设计结果的清晰易懂主要有两个方面的作用 一是易于编码的实现 二是易于软件的测试和维护 4 1详细设计的任务与原则 2 采用结构化设计方法采用结构化设计方法 可以改善控制结构 降低程序的复杂程度 提高程序的可读性 可测试性 可维护性 其基本内容在下一节中介绍 3 选择恰当描述工具来描述各模块算法算法表达工具可以由开发单位或设计人员自由选择 但它必须具有描述过程细节的能力 而且在编码阶段能够直接翻译为程序设计语言书写的源程序 4 2过程设计的工具 在详细设计中用于描述处理过程常用三种工具 图形 表格和语言 这些工具各自的优缺点 在设计时可针对不同的情况选用 也可同时采用多种工具来描述处理过程 4 2 1程序流程图PFC程序流程图 ProgramFlowChart 简称PFC 又称程序框图 它是历史最悠久 使用最广泛的一种描述程序逻辑结构的方法 也是软件开发者最熟悉的一种算法表达工具 它独立于任何一种程序设计语言 能比较直观和清晰地描述过程的控制流程 易于学习掌握 是软件开发者最普遍采用的一种工具 如图4 3所示为程序流程图中使用的基本符号 图4 1为用流程图描述的三种基本控制结构 4 2过程设计的工具 图4 3程序流程图的基本符号 4 2过程设计的工具 程序流程图虽然直观清晰 容易掌握 使用广泛 但程序流程图也存在以下缺陷 1 在实际使用中程序流程图本质上并不具备逐步求精的特点 往往反映的是最后的结果 对于提高大型系统的可理解性作用甚微 2 由于程序流程图中可随心所欲地画流程线的流向 容易造成非结构化的程序结构 编码时造成不加限制使用GOTO语句 会使软件质量受到影响 3 程序流程图不易表示数据结构 由于程序流程图存在这些缺陷 因此总的发展趋势是越来越多的人不再使用程序流程图 为克服流程图的缺陷 绘制流程图时应注意由三种基本控制结构顺序组合和完整嵌套而成 不能有相互交叉情况 这样的流程图是结构化的流程图 4 2过程设计的工具 4 2 2盒图N S盒图最早由Nassi和Shneiderman在1973年发表的题为 结构化程序的流程图技术 的一文中提出的 因此也称N S图 盒图含有三种基本控制结构来构造程序逻辑 符合结构化程序设计原则 每个处理步骤都用一个盒子表示 这些处理步骤可以是语句或语句序列 必要时还可以嵌套另一个盒子 在盒图中规定的基本控制结构如图4 4所示 4 2过程设计的工具 图4 4N S图控制结构 4 2过程设计的工具 用盒图作详细设计描述手段时 需要用两个盒子 数据盒和过程盒 数据盒描述有关的数据 包括全程数据 局部数据和模块界面上参数等 过程盒描述执行的过程 如图4 5所示 图4 5数据盒和过程盒示例 4 2过程设计的工具 从以上分析可以看出 N S图具有如下优点 1 只能从上边进入盒子 从下面走出盒子 没有其他入口和出口 限制了随意的控制转移 保证了程序有良好的结构 2 由于取消了控制流符号 不允许随意转移控制 必须遵守结构化程序设计原则 3 很容易确定局部数据和全局数据的作用域 4 易于表达嵌套关系和模块的层次结构 因此 坚持使用N S图可以使程序员逐步养成以结构化的方式进行思考和解决问题 4 2过程设计的工具 4 2 3问题分析图PAD问题分析图 ProblemAnalysisDiagram 简称PAD图 是由日本日立公司提出的 是一种支持结构化程序设计的算法描述工具 该图用一种由左往右展开的二维树型结构表示程序的逻辑结构 它的基本控制结构如图4 6所示 图4 6中 定义 符号 可对某个处理进行进一步的细化定义 当一个模块A在一页纸上画不下时 可在图中该模块相应位置矩形框中简记一个 A 再在另一页纸上详细画出A的内容 用def及双下划线来定义作A的PAD 这种方式可使在一张纸上画不下的图 分在几张纸上画出 也可以用它定义子程序 4 2过程设计的工具 图4 6PAD图的基本符号 4 2过程设计的工具 PAD所描述程序的层次关系表现在纵线上 每条纵线表示一个层次 PAD图的控制流程为自上而下 从左到右地执行 从以上分析可以看出 PAD图具有如下特点 1 PAD图描述的逻辑结构清晰 层次分明 图形标准 图中的竖线为程序的层次线 最左竖线是程序的主线 其后一层一层展开 层次关系一目了解 每增加一个层次 图形向右扩展一条竖线 PAD图中竖线总条数就是程序的层数 程序从图中最左竖线上端的结点开始执行 自上而下 从左到右顺序执行 遍历所有结点 2 使用PAD符号所设计出来的程序必然是结构化程序 从而有利于提高程序的设计质量 4 2过程设计的工具 3 PAD图既可用于表示程序逻辑 也可用于描述数据结构 4 PAD图描述的算法可利用软件工具转换成高级语言程序 PAD图有对照Fortran C等高等语言的标准图式 在装有PAD系统的计算机上 直接输入PAD图 由机器自动通过走树的办法生成相应的源代码 大大提高软件的生产率和可靠性 5 PAD图支持自顶向下 逐步求精的设计方法的使用 左边层次中的内容可以抽象 然后由左到右逐步细化 4 2过程设计的工具 4 2 4过程设计语言PDL过程设计语言 ProcedureDesignLanguage 简称PDL 又称伪码 于1975年由Caine与Gordon首先提出 它是一种用于描述模块算法设计和处理细节的语言 PDL拥有开放的语法格式 由严格的外语法 即关键词 和灵活的内语法 即自然语言 组成 在PDL中 外语法是确定的 用于描述数据结构和控制结构 用类似于一般的编程语言说明语句和控制结构的关键字 如IF THEN ELSE 表示 而内语法则用一些简单的句子 短语和通用的数学符号 来描述程序应执行的功能 4 2过程设计的工具 PDL的总体结构与一般程序相同 它也包括注释部分 数据说明部分和过程部分 PDL仅仅是对算法的一种描述 它是不可执行的 图4 7分别显示了用PDL描述选择结构和循环结构的方法 4 2过程设计的工具 图4 7PDL选择结构和循环结构示例 4 2过程设计的工具 PDL虽然不是程序设计语言 但是它与高级程序设计语言非常类似 外语法同相应程序语言一致 内语法使用自然语言 能够说明简单和复杂的数据结构 子程序的定义与调用均不受具体接口方式的影响 在实际应用中 只要对PDL描述稍加变换便可以变成源程序代码 因此它是详细设计阶段很受欢迎的表达工具 与图形工具相比 PDL具有以下优点 1 同自然语言 英语 很接近 易于理解 伪码翻译成程序语言的源程序很方便 2 PDL描述与程序结构相似 用软件工具自动产生程序代码比较容易 4 2过程设计的工具 3 PDL描述可以作为注释嵌入在源程序中成为程序的文档 并可同高级程序设计语言一样进行编辑 修改 有利于提高程序的可读性 有利于软件的维护 4 用PDL写出的程序既可以很抽象 又可以很具体 因此容易实现自顶向下逐步求精的设计原则 PDL的不足之处 一是它不如图形描述形象直观 描述复杂的条件组合动作间的对应关系不够明了 因此人们常常将PDL描述与一种图形描述结合起来使用 加以弥补 二是PDL对英语使用的准确性要求较高 在非英语国家的应用不很广泛 4 2过程设计的工具 4 2 5判定表 DecisionTable 如果算法中包括多重嵌套组合条件时 用前面介绍的图形工具 如PAD等 或语言工具 PDL 都不易清楚地描述 用判定表能清楚地表示复杂的条件组合与应做的动作之间的对应关系 一张判定表由四部分组成 4 2过程设计的工具 1 左上部 列出所有可能的条件 2 左下部 列出所有可能出现的动作 3 右上部 列出所有可能的条件组合 4 右下部 列出每种可能的条件组合对应动作的取值 其中每一列构成一条规则 即满足不同条件的组合 有不同的动作 4 2过程设计的工具 例如某公司对客户订货的优惠条件描述如下 客户年交易额不足5万元 折扣率为0 年交易额超过5万元以上的 如果无欠款 折扣率为15 如果年交易额超过5万元 有欠款且与本公司交易20年以上 折扣率为10 如果年交易额超过5万元 有欠款且与本公司交易不足20年 折扣率为5 用判定表来表示与上述每种条件组合相对应的动作 在表的右上半部分中列出所有条件 T 表示该条件取值为真 F 表示该条件取值为假 空白表示这个条件无论取何值对动作的选择不产生影响 在判定表右下半部分中列出所有的动作 画 表示要做这个动作 空白表示不做这个动作 判定表右半部分的每一列实质上是一条规则 规定了与特定条件取值组合相对应的动作 如图4 8所示 4 2过程设计的工具 图4 8判定表示例 判定表能够把在什么条件下应做什么动作准确地表示出来 但判定表的直观性较差 初次使用它的人员需要有一个熟悉的过程 4 2过程设计的工具 4 2 6判

温馨提示

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

最新文档

评论

0/150

提交评论