第8章 软件设计基础_第1页
第8章 软件设计基础_第2页
第8章 软件设计基础_第3页
第8章 软件设计基础_第4页
第8章 软件设计基础_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

第八章软件设计基础 1 软件设计过程2 软件设计基本概念3 过程设计技术和工具4 设计规格说明与评审 8 1软件设计过程 开发阶段第一步 其基本任务是回答 如何做 软件设计过程是对程序结构 数据结构和过程细节逐步求精 复审并编制文档的过程 软件设计 总体结构设计 数据设计 过程设计 P185图8 1是软件开发过程中用以保证质量的关键步骤 从工程角度 软件设计可分为概要设计和详细设计 8 1软件设计过程例图 相关 8 2基本概念 抽象与逐步求精 抽象是控制复杂性的基本策略 要求人们将注意力集中在某一层次上考虑问题 忽略低层次细节 软件工程每一步都是对较高一级抽象的解做一次较具体化的描述 例8 1P187 188逐步求精与抽象密切相关 层次结构上一层是下一层的抽象 下一层是上一层的求精 过程求精的同时伴随着数据求精 求精蕴含着某种设计决策 8 2基本概念 模块化与信息隐藏 模块化是软件结构设计技术的基础 可组合 分解和更换的单元 模块的基本属性 接口 功能 外部 逻辑 状态 内部 理论根据 C P1 P2 C P1 C P2 E P1 P2 E P1 E P2 模块总数增加时 单独开发各个子模块的工作量之和减少 接口费用越来越大 P190图8 2 存在一个最小成本的模块数区域 信息隐藏 数据细节 过程细节 8 2基本概念 模块内聚度 内聚度表示一个模块内部各元素彼此结合的紧密程度 是衡量一个模块内部组成部分间整体统一性度量 内聚分7类 从高到低依次为 高级内聚度功能性内聚 模块内所有成分形成一个整体 完成单个功能 顺序性内聚 模块内的各处理成份均与同一功能相关 且这些处理必须顺序执行 则称顺序内聚 中级内聚度通信性内聚 模块中各成份都将对数据结构的同一区域进行操作 以达到通信的目的 过程性内聚 模块具有过程性内聚度指 模块内成分彼此相关 并且必须按特定的次序执行 低级内聚度时间性内聚 模块包含的诸任务必须在同一时间段内执行 如一个初始化模块 逻辑性内聚 模块完成的诸任务逻辑上相关 如 一个模块产生所有与类型无关的输出 偶然性内聚 模块内各成分为完成一组功能而组合在一起 它们相互之间即使有关系 也很松散 设计原则 力求高内聚 少用中内聚 不用低内聚 一般高层模块内聚度低一些 较低层次模块的内聚度较高 8 2基本概念 模块耦合度 耦合度表示软件结构内不同模块彼此间相互依赖的紧密程度 是衡量软件模块结构质量好坏的度量 是对模块独立性的直接衡量指标 耦合度的强弱取决于模块间接口的复杂性 进入或调用模块的位置 接口传送数据的多少等 耦合度也分为七级 按耦合度增序排列 非直接耦合 两模块中任一个都不依赖对方能独立工作 这类耦合度最低 数据耦合 两模块通过参数交换信息 信息仅限于数据 控制耦合 传递的信息含有控制信息 控制耦合通常会增加系统的复杂性 适当分解模块可望消除控制耦合 特征耦合 介于数据耦合与控制耦合之间外部耦合 当若干模块均与同一个外部环境关联 如 I O处理使所有I O模块与特定的设备 格式和通信协议相关联 外部耦合尽管需要 但应限制在少数几个模块上 公共耦合 若干模块通过全局的数据环境相互作用 全局数据环境中可能含有全局变量 公用区 内存公共复盖区 任何存储介质上的文件 物理设备等 内容耦合 一个模块使用另一模块内部的数据或控制信息 一个模块直接转移到另一模块内部等等 设计原则 尽量使用数据耦合 少用控制耦合 限制外部和公共耦合 杜绝内容耦合 8 2基本概念 总体结构设计 软件总体结构 程序结构 数据结构软件总体结构设计的目标 软件总体结构设计的目标是产生一个模块化的程序结构并明确各模块之间的控制关系 此外还要通过定义界面 说明程序的输入输出数据流 进一步协调程序结构和数据结构 P192内聚度和耦合度是判断软件结构好坏的主要标准 程序结构的表示工具 类树图 P193 图8 5概念 深度 宽度 扇出 扇入 可见域 流通域 8 2基本概念 数据结构设计 数据结构描述各数据分量之间的逻辑关系 数据结构是影响软件总体结构的重要因素 数据结构决定了数据的组织形式 访问方法和处理策略 数据抽象和信息隐藏两个概念是数据设计的基础 数据设计方案不唯一 数据结构完整讨论超出本书范围 8 2基本概念 软件过程设计 所谓过程 应包括有关处理的精确说明 诸如事件的顺序 确切地判断位置 循环操作及数据组成等等 过程设计的任务是描述算法细节 P194图8 6程序结构中任何模块的所有从属模块必将引用出现在该模块的过程说明中 P195图8 7 8 3过程设计技术和工具 结构化程序设计 仅用顺序 分支 循环三种基本控制构件即能构造任何单入口 单出口程序 结构化程序设计是程序设计技术 它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件 图形表示法 程序流程图 构件P196图8 8 例P197图8 9盒图 N S图 构件P198图8 11功能域 即一个特定控制结构的作用域 明确 不可能任意转移控制 很容易确定局部和全程数据的作用域 很容易表现嵌套关系 也可以表示模块的层次结构 8 3过程设计技术和工具 判定表 清晰表示出复杂条件组合与各动作间的关系 四个组成部分 左上部列出所有条件 左下部是所有可能做的动作 右上部是表示各种条件组合的一个矩阵 右下部是和每种条件组合相对应的动作 判定表的每一列实质上是一条规则 规定了与特定的条件组合相对应的动作 特点 严格逻辑性 但不能描述循环处理特性 8 3过程设计技术和工具 过程设计语言 PDL结构英语 伪码PDL具有严格的关键字外部语法 用于定义控制结构和数据结构 另一方面 PDL表示实际操作和条件的内部语法通常又是灵活自由的 PDL可以作到逐步求精 从比较概括和抽象的PDL程序起 逐步写成更详细的精确的描述 特点 P200关键字采用固定语法并支持结构化构件 数据说明机制和模块化 处理部分采用自然语言描述 允许说明简单 标量 数组等 和复杂 链表 树等 的数据结构 子程序的定义与调用规则不受具体接口方式的影响 8 3过程设计技术和工具 过程设计工具比较 好工具的属性 P202 1 10 模块化 支持模块化软件的开发并提供描述接口的机制 例如直接表示子程序和块结构 整体简洁性 设计表示相对易学 易用 易读 便于编辑 支持后续设计 测试乃至维护阶段对过程设计进行的修改 机器可读性 计算机辅助软件工程 CASE 环境已被广泛接受 一种设计表示法若能直接输入并被CASE工具识别将带来极大便利 可维护性 过程设计表示应支持各种软件配置项的维护 强制结构化 过程设计工具应能强制设计人员采用结构化构件 有助于产生好的设计 自动产生报告 设计人员通过分析详细设计的结果往往能突发灵感 改进设计 若存在自动处理器 能产生有关设计的分析报告必将增强设计人员在这方面的能力 数据表示 详细设计应具备表示局部与全局数据的能力 逻辑验证 能自动验证设计逻辑的正确性是软件测试追求的最高目标 设计表示愈易于逻辑验证其可测试性愈强 可编码能力 一种设计表示若能自然地转换为代码则能减少开发费用 降低出错率 PDL符合 8 4设计规格说明与评审 规格说明 P204表8 2复审的内容P203 软件总体结构 数

温馨提示

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

评论

0/150

提交评论