- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1). 模块的表示符号 2). 简单调用 3). 选择调用 4). 循环调用 三.设计复审( Design Review ) 概要设计复审应该把重点放在系统的总体结构, 模块划分,内外接口等方面。例如软件的结构 能否满足需求?结构的形态是否合理,层次是 否清晰?模块的划分是不是符合模块化和信息 隐藏的思想等优化原则?系统的人机界面、各 模块的接口以及出错处理是否恰当?模块的设 计能否满足功能与性能要求?选择的算法与数 据结构是否合理,能否适应编程语言等? 复审包括软件总体结构、数据结构、界面以及模 块过程细节四个方面。 §4 .5 面向数据流的设计方法 面 向 数 据 流 的 设 计 方 法 (Data Flow- oriental Design) 也 称 结 构 设 计 方 法 (Structured Design -- SD) ,是根据需求 阶段对数据流的分析(用数据流图和数据 字典表示)设计软件结构。 一.概念和设计过程 为了有效地实现从 DFD 图到 SD 图的映射, SD 方法规 定了下列五个步骤: 1.用 SD 方法将数据流图转换为软件结构,其过程为: 2). 事务流 这 种 类 型 至 少 有 一 条 接 受 路 径 ( Reception Path ) ; 一个事物中心 (Transaction Center); 与若干条动作路径 (Action Path); 2 . 划定流界; 3. 将数据流图映射为程序结构; 4. 提取层次控制结构; 5 . 通过设计复审和使用启发式策 略进一步精化所得到的结构。 ( 如 下图 ) 第四章 总体设计(概要设计) 软件设计的任务是把分析阶段产生的软 件需求说明转换为用适当手段表示的软件 设计文档。 软件设计可分为概要设计( Preliminary Design )和详细设计( Detail Design )。 概要设计确定软件的结构,即软件的组成 及各子系统之间的相互联系;详细设计确 定模块内部的算法和数据结构,产生描述 各模块程序过程的详细设计的文档。 § 4.1 总体设计的过程 总体设计过程通常由两个主要阶段组成: 1. 系统设计,确定系统的具体实现方案; 2. 结构设计,确定软件结构。 总体设计的过程: 确定方案 确定结构 一、设想供选择的方案 二、选择合理的方案 三、推荐最佳方案 四、功能分解 五、设计软件结构 六、数据库设计 七、制定测试计划 八、书写文档 九、审查复审 概要设计的任务 1 .将系统划分成模块; 2 .确定每个模块的功能; 3 .确定模块的调用关系; 4 .确定模块的界面,即模块间传递的数据。 §4 .2 软件设计基本概念 一 . 模 块 化 与 信 息 隐 藏 ( Modularization, Information Hiding ) 1 .分解( Decomposition ) 设 C(x) 为问题 x 的复杂程度 ,E(x) 为解决 x 的工作量 ( 时间 ) 。 若 C(p1)C(p2) ,则 E(p1)E(p2) 实践证明: C(p1+p2)C(p1)+C(p2) ∴ E(p1+p2)E(p1)+E(p2) ∴ 模块化 2 .信息隐藏 模块内部的数据与过程,应该对 不需要了解这些数据与过程的模块 隐藏起来,只有为了完成软件的总 体功能而必需在模块间交换的信息, 才允许在模块间进行传递。 3.模块独立性 ( Module Independence ) 模块独立的概念是模块化、抽象、信息隐藏 和局部化的直接结果。 开发具有独立功能而且和其他模块之间没有 过多的相互作用的模块,就可以做到模块独 立。 为什么模块独立性很重要呢? ■有效的模块化的软件比较容易开发出来; ■独立的模块比较容易测试和维护。 (1). 内聚( Cohesion ) 内聚标志一个模块内各个元素彼此结合的紧 密程度。它是信息隐藏和局部化概念的自然 扩展。内聚度越高越好。 1 . 偶然性内聚( Coincidental Cohesion ) 所谓偶然性内聚是指一个模块内各成分为完成一组 功能而组合在一起,它们相互之间即使有关系,也很 松散。 2 . 逻辑性内聚( Logical Cohesion ) 如果一个模块完成的任务逻辑上相关(例如,一个产 生所有与类型无关的输出),则称为逻辑性内聚。 3 . 时间性内聚 (Temporal Cohesion) 如果一个模块内包含的任务必须在一个时间段内执行 (例如一个初始化模块),则称之为时间性内聚。 4 . 过程性内聚 (Procedural Cohesion) 模块的过程性内聚是指,模块内成分彼此相关,并 且必须按特定的次序执行。 5. 通讯性内聚 (Communicational Cohesion) 模
原创力文档


文档评论(0)