第六讲 软件工程详细设计方法_第1页
第六讲 软件工程详细设计方法_第2页
第六讲 软件工程详细设计方法_第3页
第六讲 软件工程详细设计方法_第4页
第六讲 软件工程详细设计方法_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第六讲软件工程详细设计 什么是详细设计 决定各个模块的实现算法 设计出必要的过程细节 并给予清晰的表示 使之成为编码的工具 是否需要详细设计 什么时候需要详细设计 一 详细设计的基本任务 处理方式设计物理设计可靠性设计其它设计 包括代码设计 输入 输出格式设计 人机对话设计 二 详细设计的方法 采用自顶向下 逐步求精的程序设计方法使用三种基本控制结构构造程序 顺序 选择 重复 主程序员的组织形式结构化程序设计技术是一种设计程序的技术 它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构 并且只包含顺序 选择和循环三种控制结构 详细设计的方法 使用结构程序设计技术的好处 1 提高软件开发工程的成功率和生产率 2 系统有清晰的层次结构 容易阅读理解 3 单入口单出口的控制结构 容易诊断纠正 4 模块化可以使得软件可以重用 5 程序逻辑结构清晰 有利于程序正确性证明 详细设计的方法 经典的结构程序设计 只允许使用顺序 IF THEN ELSE选择和DO WHILE循环 扩展的结构程序设计 除了三种基本控制结构 还使用DO CASE和DO UNTIL循环 修正的结构程序设计 除了三种基本控制结构和两种扩充结构 还使用BREAK等结构 1 程序流程图 是最为熟悉 应用最为广泛的算法表示工具 可以比较好的描绘出算法思路 程序流程图的基本结构 程序流程图的基本结构 程序流程图标准常用符号 书上实例p187 程序流程图 程序流程图虽然比较直观 灵活 并且比较容易掌握 但是它的随意性和灵活性却使它不可避免地存在着一些缺点 1 由于程序流程图的特点 它本身并不是逐步求精的好工具 因为它使程序员容易过早地考虑程序的具体控制流程 而忽略了程序的全局结构 2 程序流程图中用箭头代表控制流 这样使得程序员不受任何约束 可以完全不顾结构程序设计的精神 随意转移控制 3 程序流程图在表示数据结构方面存在不足 2 N S图 N S图是由Nassi和Shneiderman提出的一种符合结构化程序设计原则的图形描述工具 也叫盒图 N S图 N S图特点 1 功能域 即某一个特定控制结构的作用域 有明确的规定 并且可以很直观地从N S图上看出来 2 它的控制转移不能任意规定 必须遵守结构化程序设计的要求 3 很容易确定局部数据和全局数据的作用域 4 很容易表现嵌套关系 也可以表示模块的层次结构 N S图 N S图与流程图的相互转换 书上实例p190 3 PAD图 PAD图是日本日立公司提出 由程序流程图演化来的 用结构化程序设计思想表现程序逻辑结构的图形工具 为ISO认可 PAD图的符号 PAD图的符号 PAD图的例子 PAD图 PAD图的实例见p191页特点 结构清晰 支持结构化的程序设计方法 有利于自动生成程序 例子 输入三个正整数作为边长 判断该三条边构成的三角形是等边 等腰还是一般三角形 请画出该程序的流程图 N S图 PAD图 例子 例子 例子 思考 在数据A 1 A n 中求最大数和次大数 在数据A 1 A n 中求前m个最大的数 4 判定表 当算法中包含多重条件选择时 用程序流程图 N S图或PAD都不能清晰地描述 用判定表确可以清晰表达复杂条件与应做动作之间的关系 判定表 例 某校制定了教师的讲课课时津贴标准 对于各种性质的讲座 无论教师是什么职称 每课时津贴费一律是50元 而对于一般的授课 则根据教师的职称来决定每课时津贴费 教授30元 副教授25元 讲师20元 助教15元 判定表 一张判定表由四部分组成 左上部列出所有条件 左下部是所有可能的动作 右上部是表示各种条件组合的一个矩阵 右下部是和每种条件组合相对应的动作 判定表 某航空公司规定 重量不超过30公斤的行李可免费托运 重量超过30公斤时 对超运部分 头等舱国内乘客收4元 公斤 其它舱位国内乘客收6元 公斤 外国乘客收费为国内乘客的2倍 残疾乘客的收费为正常乘客的1 2 判定表 5 PDL语言 PDL是一种用于描述功能模块的算法设计和加工细则的语言 它是一种伪码 PDL不同于一般的 结构化语言 PDL更接近于自然语言 容易看懂 PDL语言 PDL语言具有下述特点 1 PDL虽然不是程序设计语言 但是它与高级程序设计语言非常类似 只要对PDL描述稍加变换就可变成源程序代码 因此 它是详细设计阶段很受欢迎的表达工具 2 用PDL写出的程序 既可以很抽象 又可以很具体 因此 容易实现自顶向下逐步求精的设计原则 3 PDL描述同自然语言很接近 易于理解 4 PDL描述可以直接作为注释插在源程序中 成为程序的内部文档 这对提高程序的可读性是非常有益的 5 PDL描述与程序结构相似 因此自动产生程序比较容易 PDL的缺点是不如图形描述形象直观 程序复杂度的定量度量 定量度量程序复杂度的作用 1 可估算软件中错误的数量及软件开发工作量 2 度量的结果可用来比较不同设计或不同算法的优劣 3 程序的复杂度可作为模块规模的限度 程序复杂度的定量度量 流图 退化 的程序流程图 仅描绘程序的控制流程 不表现对数据的具体操作及循环 选择的条件 1 McCabe方法 程序复杂度的定量度量 一个圆代表一条或多条语句 一个顺序结构可以合并成一个结点 汇点也是结点 一个顺序处理框序列和一个判断框可映射成一个结点 程序复杂度的定量度量 复合条件 包含了一个或多个布尔运算符 OR AND NOR等 应把复合条件分解为简单条件 每个条件对应一个结点 程序复杂度的定量度量 计算环形复杂度的方法 1 环形复杂度V G 等于流图中的区域数 2 环形复杂度V G E N 2 其中E是流图中边的条数 N是结点数 3 环形复杂度V G P 1 其中P为流图中判定结点的数目 程序复杂度的定量度量 例 计算下列程序图的程序复杂度 程序复杂度的定量度量 解 方法一 程序图把平面分为4个区域 程序复杂度V G 4 方法二 边的条数E 11 结点数N 9 程序复杂度V G E N 2 4 方法三 判定结点为1 2 4点 数目为P 3个 所以V G P 1 4 程序复杂度的定量度量 环形复杂度的用途对测试难度的一种定量度量 也能对软件最终的可靠性给出某种预测 实践表明 模块规模以V G 10为宜 程序复杂度的定量度量 根据程序中运算符和操作数的总数来度量程序复杂度 N N1 N2其中 N定义为程序长度 N1为程序中运算符出现的总次数 N2为操作数出现的总次数 2 Halstead方法 程序复杂度的定量度量 Halstead给出预测程序长度的公式为 H n1log2n1 n2log2n2其中

温馨提示

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

评论

0/150

提交评论