- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基本概念模块化设计-read
软件设计的任务 软件设计基本概念 模块化设计 其他设计问题的处理 设计文档及其复审 主要内容 介绍软件设计的一般概念,包括软件设计的任务、基本原理、模块化设计和设计文档等内容。 这些概念适用于任何开发方法和开发过程,可以为后面两章的教学奠定基础。 重点掌握 软件设计的任务、基本概念,模块化设计,设计文档。 难点 模块与构件,抽象与细化,信息隐藏等 4.1 软件设计的任务 软件设计的任务 把分析阶段产生的软件需求说明转换为用适当手段表示的软件设计文档。----解决“如何做” 的问题 内容 数据设计:信息模型 软件数据结构; 体系结构设计:定义软件主要组成部件之间的关系; 接口设计:软件内部、外部及与人之间的通信 (数据流和控制流) 过程设计:将软件体系结构的组成部件转变为对软 件组件的过程性描述。 传统的设计任务的两阶段 概要设计阶段 结构设计 接口设计 编写概要设计说明书 详细设计阶段 确定各个软件组件的数据结构和操作 产生描述各软件组件的详细设计文档 软件设计工作流程 软件设计目标 4.2 软件设计基本概念 模块与构建 抽象与细化 信息隐藏 软件复用 4.2.1 模块与构件 模块(Module) 是一个拥有明确定义的输入、输出和特征的程序实体。如函数、过程、子程序、宏等 若模块的所有输入都是实现功能必不可少的,所有输出都有动作产生,即成为定义明确的模块。 软件构件(Software Component) 可重复使用的软件组件。 现有的可复用构件,大多是在对象的基础上创建。 4.2.2 抽象与细化 抽象 提取客观世界中一群事物的某些本质共性,而暂时忽略他们的非本质的细节,是一个从特殊到一般的过程。 分层次考虑和处理问题(数据和过程) 过程抽象:把完成一个特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。 数据抽象:把一个数据对象的定义抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。 细化 从高到低的逐步分解过程。 4.2.3 信息隐藏 定义 把系统分解为模块时应遵守的指导思想。 基本思想 模块内部的数据和过程,不需要这些信息的模块不可访问; 每一个模块只完成一个相对独立的特定功能; 模块之间仅仅交换那些完成系统功能必须交换的信息。 目的 提高模块的独立性,当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。 4.2.4 软件复用 Design with reuse, design for reuse 4.3 模块化设计 定义 把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。 指导思想 分解 模块独立性 内容 分解 模块独立性 自顶向下与由底向上 4.3.1 分解 分解是处理复杂问题的常用方法 传统软件工程:利用分解画分层DFD图; 设计阶段:利用分解实现模块化设计; OO软件工程:利用分解划分类和对象。 将复杂问题分解可以降低解题的总工作量和复杂度 4.3.2 模块独立性 概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。坚持模块的独立性,是获得良好设计的关键。 衡量标准 模块本身的内聚 模块内部各个成分之间的联系 又称块内联系或模块强度 模块间的耦合 一个模块与其他模块之间的联系 又称块间联系 模块独立性越高,块内联系越强,块间联系越弱。 1. 内聚 cohesion 低内聚 偶然性模块 块内各组成部分在功能上是互不相关的。 模块内部成分的组合纯属偶然。 时间性模块 模块所包含的成分,是由相同的执行时间将他们连接到一起。 要求在同一时间内执行。 逻辑性模块 由若干个逻辑功能相似的成分组成。 执行时须从模块外引入判断量,增大块间耦合。 中内聚 过程化模块 模块中包含的一组任务必须按照某一个特定的次序执行。 通信性模块 模块内部的各成分使用同一种数据输入,或产生同一个数据输出。 他们靠公用数据连接在一起。 高内聚 顺序性模块 模块中各组成部分是顺序执行的。 通常上一个处理框的输出就是下一个处理框的输入。 功能性模块 模块中的所有的成分结合在一起,用于完成一个单一的功能。 块内联系最强的一类模块。 “一个模块,一个功能” 功能性模块内聚强,与其他模块联系少,最优 其他的高内聚和中内聚模块也可以使用 低内聚模块尽量避免使用 2. 耦合 coupling 耦合是对软件内部块间联系的度量。 弱耦合 中耦合 控制耦合 在模块间传递的信息是用作控制信号的开关值或标志量。 控制模块必须知道被控制模块的内部逻辑,从而增强了模块间的相互依赖。 较强耦合 外部耦合 允许一组模块访问同一个全局变量 公共耦合 允许一组模块访问铜一个全局
文档评论(0)