第四章 总体设计_第1页
第四章 总体设计_第2页
第四章 总体设计_第3页
第四章 总体设计_第4页
第四章 总体设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第四章第四章第四章第四章第四章第四章 总总总总总总体体体体体体设计设计设计设计设计设计 4 14 1 总总体体设计设计的任的任务务 4 4 4 4 4 4 1 11 1 1 1 1 11 1 1 1 目的 目的 目的目的目的目的 确定系统怎么做 也就是确定系统应该由哪些部份组成 它们 是如何联结在一起的 4 4 4 4 4 4 1 11 1 1 1 2 22 2 2 2 主要内容主要内容主要内容主要内容主要内容主要内容 1 1 1 1 1 1 系 系 系系系系统结 统结 统结统结统结统结构 构 构构构构设计 设计 设计设计设计设计 确定系统的具体物理实现方案 也就是划分出组成系统的物 理元素 程序 文件 数据库 人工过程和文档等等 2 2 2 2 2 2 软 软 软软软软件 件 件件件件结 结 结结结结构 构 构构构构设计 设计 设计设计设计设计 确定组成每一个程序的模块 以及模块间的关系 注注注 对于给定的系统逻辑要求 往往存在着若干种不同的物理实 现方案 都能满足这个逻辑 总体设计首先要找出实现目标系统的 各种不同物理方案 从中选取合理的方案 并在综合分析比较的基 础上选出一个最佳方案向用户推荐 如果用户接受了推荐的方案 分析员应该为这个最佳方案设计软件结构 进行必要的数据库设计 确定测试要求并制定测试计划 4 24 2 总总体体设计设计的的过过程程 设想供选择的方案设想供选择的方案 书写文档书写文档 推荐最佳的方案推荐最佳的方案 选取合理的方案选取合理的方案 功能分解功能分解 设计软件结构设计软件结构 数据库设计数据库设计 制定组装测试计划制定组装测试计划 计划成本计划成本 审查和复审审查和复审 进入 软件结构 设计 设计出组 成这个系统的所有程序 文件和数 据库 以及它们之间的联系 软件结构 由模块组成的层次系统 模块 数据说明 可执行语句等程 序对象的集合 例 过程 函数 宏等 注注注注注注 教材教材 2 42 4 例子例子 图 2 5 定货系统的基本系统模型 DFD1 图 2 6 定货系统的功能级数据流图 DFD2 图 2 7 把处理事务的功能进一步分解后的数据流图 DFD3 图 2 8 这种划分自动化边界的方法暗示以批量方式批量方式更新库存清单 图 2 9 这种划分自动化边界的方法建议以联机方式联机方式更新库存清单 注注注注注注 1 C S Client Server 结构 C S Client Server 结构 又称客户 服务器模式 即客户机 和服务器结构 它是软件系统体系结构 通过它可以充分利用两端 硬件环境的优势 将任务合理分配到 Client 端和 Server 端来实现 降低了系统的通讯开销 C S 结构软件分为客户机和服务器两层 客户机不是毫无运算 能力的输入 输出设备 而是具有了一定的数据处理和数据存储能 力 通过把应应用用软软件件的的计计算算和和数数据据合理地分配在客户机和服务器两 端 可以有效地降低网络通信量和服务器运算量 由于服务器连接 个数和数据通信量的限制 这种结构的软件适于在用户数目不多的 局局域域网网内内使使用用 C S 结构的基本原则是将计算机应用任务分解成多个子任务 由多台计算机分工完成 即采采用用 功功能能分分布布 原原则则 客户端 完成数据处理 数据表示以及用户接口功能 服务器端完成 DBMS 的 核心功能 是一种客户请求服务 服务器提供服务的处理方式 C S 结构中服务器通常采用高性能的 PC 工作站或小型机 并 采用大型数据库系统 如 ORACLE SYBASE InfORMix 或 SQL Server 客户端需要安装专用的客户端软件 C S 技术从上世纪 90 年代初出现至今已经相当成熟 并得到了 非常广泛的应用 其结构经历了二层 C S 三层 C S 的更迭 2 B S Browser Server 结构 B S Browser Server 结构 即浏览器 服务器结构 是 WEB 兴起 后的一种网络结构模式 WEB 浏览器是客户端最主要的应用软件 这种 模式统一了客户端 将系统功能实现的核心部分集中到服务器上 简化 了系统的开发 维护和使用 客户机上只要安装一个浏览器 Browser 如 Netscape Navigator 或 Internet Explorer 服务器安装 Oracle Sybase Informix 或 SQL Server 等数据库 浏览器通过 Web Server 同数据库进行数据交互 B S 最大的优点就是可以在任何地方进行操作而不用安装任何 专门的软件 只要有一台能上网的电脑就能使用 客户端零维护 系统的扩展非常容易 B S 技术是伴随着 Internet 的普及而来的 需要说明的是 B S 最早并不叫 B S 此类应用国外通常叫 Web 应用 是国内一 些公司 创造 了 B S 这个词 图图 B S 结结构构示示意意图图 4 34 3 结结构化构化设计设计 StructuredStructured DesignDesign 张海藩书中在本阶段所用的方法就是所谓的 SD 方法 1974 年美国 的康斯坦丁 L Constantine 斯蒂文斯 W Stevens 梅约斯 G Myers 三人联名在 IBM 系统杂志 IBM System Journal Vol 13 NO 2 上发表了一篇题为 结构化设计 Structured Design 的论文 第一次提出了结构化设计的思想 结构化设计 概 括地说就是 用一用一组标组标准的准的工具和准工具和准则则来确定系来确定系统应该统应该由哪些模由哪些模块块 用什么方 用什么方 式式联结联结在一起 才能构成一个最好的在一起 才能构成一个最好的软软件件结结构 构 工具我们在前面已经介绍 下面我们就来学习这些准则 这就是书中 所介绍的 5 2 设计原理 P94 和 5 3 启发规则 P99 我们把它概括为 4 44 4 软软件件结结构构设计设计的基本概念的基本概念 4 4 14 4 1 模模块块化化 1 1 模 模块块 具有四种属性的一组程序语句称为一个模块 这四种属性分 别是 输输入和入和输输出 出 逻辑逻辑功能 功能 运行程序 内部数据 运行程序 内部数据 注注 1 输入和输出 输入来源和输出去处都是同一个调用者 也就是一 个模块从调用者那里获得输入 然后再把产生的输出返回给调用者 2 逻辑功能 逻辑功能是指它能够做什么事情 表达了它把输入转 换成输出的功能 3 运行程序 运行程序是指它如何用程序设计语言 PDL 实现这种 逻辑功能的 4 内部数据 内部数据是指属于该模块自己的数据 5 输入和输出 逻辑功能是模块的外部属性外部属性 运行程序 内部数据 是模块的内部属性内部属性 在 总体设计 阶段仅完成模块的外部属性设计 下一阶段 详细设计 才完成模块的内部属性设计 2 2 模 模块块化化 模块化就是把程序划分成若干个模块 每个模块完成一个子功能 把这些模块集成起来构成一个整体 可以完成指定的功能满足用户的 需求 注注 模块及模块间关系的图形表示 1 模块的图形表示 名称 名称 动词动词 名名词词 表达表达这这个模个模块块的功能的功能 2 模块间联结的图形表示 A B 模模块块 A 中含有中含有调调用模用模 块块 B 的的逻辑逻辑 Call B 3 模块间通讯的图形表示 模块间的通讯分两种类型 1 数据通讯 它表示一个经过处 理的数据从一个模块传向另一个模块 2 控制通讯 它只传送一个标 志 此标志表达了处理工作的某种状态 而不是由发送模块真正进行 过处理的数据 获获得得库库存存记录记录 检检索索库库存存记录记录 4 模块间判断调用的图形表示 B CBD 5 模块间循环调用的图形表示 A BCD 4 4 24 4 2 模模块块独立独立 开开发发具有独立功能而且和其它模具有独立功能而且和其它模块块之之间间没有没有过过多相互作用多相互作用 的模的模块块 那么 怎么来做到模块独立呢 换句话说 影响模块独立的因 素主要有哪些 4 4 2 14 4 2 1 CouplingCoupling 联结 耦合 是对一个软件结构内不同模块之间互连程度的度量 或指两个模块之间的相互依赖关系 1 数数据据联联结结 如果两个模块之间的通讯信息仅仅是一个个数据元 素 那么这种联结称为数据联结 开开发发票票 计计算金算金额额 注 1 尽量减少两个模块间不必要的数据传输 2 必须消除所有的 游离数据 2 特特征征联联结结 如果两个模块都与同一个数据结构有关 那么这种联结称 为特征联结 计计算水算水费费和和电费电费 计计算水算水费费计计算算电费电费 注 1 特征联结会使本应毫无关系的模块产生相互依赖性 应 尽可能的把不需要的数据去掉 最好修改成数据联结 2 严禁 捆绑 3 控控制制联联结结 如如果果模模块块 A 向向模模块块 B 所所传传递递的的信信息息控控制制了了模模块块 B 的的内内部部逻逻辑辑 那那么么模模块块 A 和和模模块块 B 之之间间的的联联结结称称为为控控制制 联联结结 获获得得库库存存记录记录 检检索索库库存存记录记录 注 1 控制联结的形式 b 描述性标志 描述数据的状态或性质 形容词 名词 a 控制性标志 要求执行非正常的动作或与该模块功能不 相关的事情 动词 2 使用控制联结的原则 a 使用描述性标志 b 消除控制性标志 4 公公共共联联结结 如果两个模块都和同一个公用数据域有关 那么这 两个模块之间的联结称为公共联结 A C E B D 公用公用 数据数据 码码相相 机机 注 1 公用数据域 的概念来自 FORTRAN 中的公用语句 COMMON 所有程序和函数都能够存取公用数据域 比如 Pascal 中的全程变量 PowerBuilder 中全局变量 共享变量 例子变量 2 如果有 n 个公用数据元素存在于 m 个模块中 那么总的 公共联结 关系个数 R 1 2 mmnAnR m 5 内内容容联联结结 如果一个模块和另一个模块的内部属性有关 那么这种联 结称为内容联结 也称病态联结 注注注注注注 Coupling 设计原则 1 应以数据联结为主 特征联结为辅 必要时才建立控制联 结和公共联结 完全不用内容联结 2 在建立模块间的数据联结时 要消除 游离数据 在建 立模块间的特征联结时 要严禁 捆绑 在建立模块间的控制联 结时 要避免使用控制性标志 而使用描述性标志 3 尽量少用混合形式 4 4 2 24 4 2 2 CohesionCohesion 组合 内聚 是指一个模块内各个元素彼此结合的紧密程度 1 功功能能组组合合 如果一个模块内部所有组成部分全部为执行同一功能而存 在 并且只执行一个功能 那么这种组合称为功能组合 注 1 判断一个模块是不是功能组合 可从它的名称看它是否 执行一个简单的功能 a 名称 动词 单数名词 b 为上级模块完 成单一的任务 2 例 读库存记录 打印发货单 确定事务类型 计算实发 工资 3 功能组合模块是一个纯 暗盒 模块 2 顺顺序序组组合合 受受同同一一个个数数据据流流支支配配 执执行行顺顺序序重重要要 如果一个模块内部所有组成部分执行的几个功能有这样的 特征 前一个功能所产生的输出数据是下一个功能的输入数据 那 么这种组合称为顺序组合 A B C 注 1 顺序组合模块维护不太容易 它不完全是一个 暗盒 2 顺序组合模块的内容包含了一个线性 有序的数据转换 链 3 通通讯讯组组合合 受受同同一一个个数数据据流流支支配配 执执行行顺顺序序不不重重要要 如果一个模块内部所有组成部分都使用相同的输入数据或 产生相同的输出数据 那么这种组合称为顺序组合 获获得配件得配件 价格和价格和库库存量存量 注 1 通讯组合模块往往和输入输出有关 读文件记录 排列 打印 写记录记录等等 2 通讯组合模块的缺点 产生多余联结 产生重复功能等 4 过过程程组组合合 受受同同一一个个控控制制流流支支配配 执执行行顺顺序序重重要要 如果一个模块内部的若干个功能各不相同 彼此也没有什 么关系 但它们都受同一个控制流支配来决定它们的执行次序 那 么这种组合称为过程组合 因若干个功能受同一个控制流支配而 聚集在一个模块里 一般是若干个处理动作的公共过程单元 比如 循环体 判断过程 销销售事售事务处务处理理 计计算累算累积积 销销售售统计统计设设初初值值 5 时时间间组组合合 受受同同一一个个控控制制流流支支配配 执执行行顺顺序序不不重重要要 如果一个模块内部的若干个处理动作必须在同一时间段内 执行完成 那么这种组合称为时间组合 例例 宏宏定定义义 函函数数声声明明 数数据据结结构构声声明明 h 文文件件 6 逻逻辑辑组组合合 如果一个模块内部的若干个处理动作在逻辑上相似 但功 能却彼此不同或无关 那么这种组合称为逻辑组合 7 偶偶然然组组合合 如果一个模块内部的若干个处理动作彼此没有任何关系 那么这种组合称为偶然组合 注注注注注注 力力力力力力求求求求求求高高高高高高内内内内内内聚聚聚聚聚聚 低低低低低低耦耦耦耦耦耦合合合合合合 4 4 34 4 3 模模块块的分解 的分解 FactoringFactoring 仅有模块化和模块独立这两项原则还是不够的 但是我们已 经知道高内聚低耦合是我高内聚低耦合是我们设计软们设计软件件结结构的指路明灯构的指路明灯 当你设计出初 步的软件结构后 应该审查分析这个结构 运用各种手段 力求降低耦 合提高内聚 1 模块分解的作用 1 模块太大 2 使模块容易理解 3 避免产生相同功能的模块 4 提供通用性强的模块 5 简化程序设计 2 模块分解的原则 按功能分解直到无法作出明确的功能定 义为止 3 经验分解数据 一个模块内包含的语句条数在 30 条左右 不应超过 60 条 4 4 44 4 4 模模块块的扇出与扇入的扇出与扇入 1 1 模 模块块的扇出 的扇出 Fan OutFan Out 模模块块的扇出系数的扇出系数 模块的扇出是指一个模块拥有的直接下级模块的个数 注 统计规律 模块的扇出系数应控制在 7 以内 平均扇出系数是 3 或 4 2 2 模 模块块的扇入 的扇入 Fan InFan In 模模块块的扇入系数的扇入系数 模块的扇入是指一个模块的直接上级模块的个数 注 尽可能的加大模块的扇入系数 4 4 54 4 5 模模块块的控制域和作用域的控制域和作用域 1 模块的控制域 控制范围 是指这个模块本身以及所有直接或间 接从属于它的模块的集合 2 模块的作用域 判断作用范围 是指受该模块内一个判断影响的 所有模块的集合 也就是该模块内存在着判断调用语句 而所有受到 该判断逻辑影响的模块 就

温馨提示

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

评论

0/150

提交评论