第五讲 软件工程总体设计_第1页
第五讲 软件工程总体设计_第2页
第五讲 软件工程总体设计_第3页
第五讲 软件工程总体设计_第4页
第五讲 软件工程总体设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

第五讲软件工程总体设计 制定规范软件结构设计数据库设计编写总体设计阶段文档总体设计评审 一 总体设计的基本工作 制定规范1 阅读和理解软件需求说明书 2 根据目标确定最合适的设计方法 3 确定设计文档的编制标准 包括文档体系 用纸样式 记述详细的程度 图形的画法等 4 通过代码设计确定代码体系 与硬件 操作系统的接口约定 命名规则 总体设计的基本工作 软件结构设计 功能设计 1 采用某种设计方法 将一个复杂的系统按功能化分成模块的独立层次 2 确定每个模块的功能 3 确定模块间的调用关系和接口关系 总体设计的基本工作 数据库设计1 确定输入 输出文件的详细数据结构 2 结合算法设计 确定算法所必需的逻辑数据结构及其操作 3 确定对逻辑数据结构所必需的那些操作的程序模块 软件包 4 数据的保护性设计 包括一致性和冗余性 总体设计的基本工作 总体设计文档的编写1 总体设计说明书2 数据库设计说明书3 测试计划书总体设计评审 二 模块设计 模块 又称构件 是能够单独命名并独立地完成一定功能的程序语句的集合 例如高级语言中的过程 函数 子程序等都可作为模块 模块化是软件的一个重要属性 模块化的特性提供了人们处理复杂的问题的一种方法 同时也使得软件能够被有效地管理 模块设计 有两个函数 C x 表示问题x的复杂程度 E x 表示解决问题x所需要的工作量 时间 对于两个问题P1和P2 如果 C P1 C P2 则 E P1 E P2 另一个有趣的特性是 C P1 P2 C P1 C P2 根据前面的结论 我们可以得出下面的不等式 E P1 P2 E P1 E P2 这个不等式表明 单独解决问题P1和P2所需的工作量之和 比把P1和P2合起来作为一个问题来解决时所需的工作量要少 模块设计 这种 分而治之 的思想提供了模块化的根据 把复杂的问题分解成许多容易解决的小问题 原来的问题也就容易解决了 模块设计 模块独立性 1 模块化程度较高的软件容易开发 2 模块化程度较高的软件也比较容易测试和维护 模块的独立性的度量标准 耦合和内聚 模块设计 耦合度 是模块间联系强弱的度量 如果说 一个模块在不需要另一个模块的情况下 能够完整地执行其功能 则称这两个模块完全独立的 这个定义指出了两个模块之间是不存在直接或间接的 明确的或者暗含的 清晰的或者模糊的相互联系 接口 模块之间是通过接口结合起来的 模块设计 模块设计 耦合的类别 数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合 模块设计 数据耦合一模块调用另一模块时 被调用模块的输入 输出都是简单的数据 若干参数 属松散耦合 模块设计 数据耦合举例 模块设计 标记耦合如两个模块通过传递数据结构 不是简单数据 而是记录 数组等 加以联系 或都与一个数据结构有关系 则称这两个模块间存在标记偶合 模块设计 标记耦合举例 住户情况 是一个数据结构 图中模块都与此数据结构有关 计算水费 和 计算电费 本无关 由于引用了此数据结构产生依赖关系 它们之间也是标记偶合 模块设计 将标记耦合改为数据耦合 模块设计 控制耦合一模块向下属模块传递的信息 开关量 标志等控制被调用模块决策的变量 控制了被调用模块的内部逻辑 模块设计 控制耦合举例 模块设计 去除模块间控制耦合的方法控制耦合增加了理解和编程的复杂性 调用模块必须知道被调模块的内部逻辑 增加了相互依赖 1 将被调用模块内的判定上移到调用模块中进行 2 被调用模块分解成若干单一功能模块 模块设计 改控制耦合为数据耦合举例 模块设计 外部耦合一组模块均与同一外部环境关联 例如 I O模块与特定的设备 格式和通信协议相关联 它们之间便存在外部耦合 外部偶合必不可少 但这种模块数目应尽量少 模块设计 公共耦合 公共数据区耦合 一组模块引用同一个公用数据区 也称全局数据区 公共数据环境 公共数据区指 全局数据结构共享通讯区内存公共覆盖区等 模块设计 公共耦合举例 模块设计 公共耦合存在的问题 1 软件可理解性降低 2 诊断错误困难 3 软件可维护性差 4 软件可靠性差 公共数据区及全程变量无保护措施 慎用公共数据区和全程变量 模块设计 内容耦合 一模块直接访问另一模块的内部信息 程序代码或数据 最不好的耦合形式 A B A B 模块代码重叠 Entry1 Entry1 多入口模块 模块设计 内聚度 内聚度是模块所执行任务的整体统一性的度量 与耦合度相对应 内聚度是指一个模块本身内部的问题 内聚和耦合是密切相关的 在一个系统中 单个模块的内聚度越高 模块间的耦合度就越低 模块设计 偶然内聚 巧合内聚 A B C M MOVEOTORREADFILEFMOVESTOT 模块M中的三个语句没有任何联系缺点 可理解性差 可修改性差 例 模块设计 逻辑内聚把几种相关功能 逻辑上相似的功能 组合在一模块内 每次调用由传给模块的参数确定执行哪种功能 模块设计 逻辑内聚模块 模块设计 时间内聚 经典内聚 模块完成的功能必须在同一时间内执行 这些功能只因时间因素关联在一起 例如 初始化系统模块 系统结束模块 紧急故障处理模块等均是时间性聚合模块 模块设计 通信内聚模块内各部分使用相同的输入数据 或产生相同的输出结果 模块设计 信息内聚模块完成多个功能 各功能都在同一数据结构上操作 每一功能有唯一入口 模块设计 功能内聚模块仅包括为完成某个功能所必须的所有成分 模块所有成分共同完成一个功能 缺一不可内聚性最强 模块设计 尽力提高模块独立性选择合适的模块规模模块的深度 宽度 扇出和扇入应适当模块的作用范围应该在控制范围之内降低模块接口的复杂程度 三 数据库设计 数据库设计步骤包括 1 需求分析2 概念设计3 逻辑设计4 物理设计 1 数据库逻辑设计 导出初始关系模式 将 图按规则换成关系模式 规范化处理模式评价优化模式PowerDesigner 2 数据库的物理设计 选择合适的 平台建立数据库结构建立数据库完整性规则建立数据库的安全性规则 四 空间数据库的设计 空间实体类型确定空间信息的分类是对地理实体的一种抽象和概括 它决定了数据的质量层次的划分 在确定地理信息的分类时 其分类体系的设计应能包含所有需要的数据和资料信息 常常将地理信息分为地理基础信息 地形 道路 居民点 水系 和专题信息 空间数据库的设计 空间实体属性确定空间实体属性信息包括以下几种 几何类型信息点 线 面 体 空间数据库的设计 分类分级别信息说明物体的类型归属 用地理标识码表示 如地理基础信息可分为水系 地形 道路 居民地等 各大类还可区分为亚类 同一类中还可分级 如道路可分为铁路 公路 人行道 公路又可分为一级 二级公路 空间数据共享 空间数据库的设计 数量特征描述物体的大小或其他可以度量的性能指标 如长度 宽度 高度 深度 密度等 质量描述信息说明物体的质量构成 如岩石的化学成分 名称信息物体或地质体的专有名称 此类信息对某些实体具有标识作用 空间数据库的设计 空间数据的分块管理图块的结构构成空间数据库的基本组成部分 在空间数据库中 用图块来表示地理区域互不重叠的单一要素 图块可以是正方形 也可以是任意形状的 例如一个城市的行政单位 空间数据库的设计 空间数据的分层设计可以从性质 用途 形状 尺度 色彩等方面考虑 分层原则为 数据具有同样的特性 也可以说数据有相同的属性信息 按要素类型分层 性质相同或相近的要素应放在同一层 分层应考虑数据与功能的关系 空间数据库的设计 空间数据的分层设计分层时应考虑更新的问题不同部门的数据的分层问题 数据库中需要不同级别安全性的数据应单独分层 空间数据库的设计 属性数据的逻辑设计与普通数据库设计类似 五 总体设计报告的编写 1引言1 1编写目的该总体设计报告是为了XXXX项目 1 2项目背景项目名称 来源 起因委托单位开发单位1 3定义 专业术语 列出本文件中用到的专门术语的定义和外文首字母组词的原词组 1 4参考资料 列出有关的参考资料 总体设计报告编写 2 任务概述2 1目标2 2运行环境2 3需求概述2 4条件与限制 总体设计报告编写 3 总体设计3 1数据流程设计3 2功能设计3 3软 硬件设计 包括网络设计 3 4其他 包括安全设计 测试方案设计 总体设计报告 数据库设计说明书 1 引言1 1编写目的 说明编写这份数据设计说

温馨提示

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

最新文档

评论

0/150

提交评论