第05章:总体设计精读.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 总体设计 5.1 软件设计概述 从工程管理和技术两个不同的角度对软件设计的认识: 5.1 软件设计概述    从工程管理的角度来看,软件设计通常分为两步,即概要设计和详细设计。 概要设计 回答“怎样实现目标系统”,又称为总体设计、逻辑设计、高层设计; 确定软件的总体结构,即确定软件系统的组成成份(子系统或模块)以及各组成成份之间的相互关系; 详细设计 回答“怎样具体实现这个系统”,又称为模块设计、物理设计、底层设计; 确定软件系统各组成成份内部的数据结构和算法过程。 5.1 软件设计概述    从技术的角度来看,根据用信息域表示的软件需求,以及功能和性能需求,进行数据设计、系统结构设计、过程设计。 数据设计 侧重数据结构的定义; 系统结构设计 系统按功能划分模块层次结构; 确定每个模块的功能、模块间的调用关系、模块间的接口; 建立与已确定的软件需求的对应关系; 评估模块划分的质量; 5.1 软件设计概述 过程设计 确定为满足系统的性能需求所必须的算法和模块间的控制方式; 确定外部信号的接收发送形式; 5.1 软件设计概述 5.2 软件设计原理 模块化 抽象化 自顶向下,逐步细化 信息隐蔽 模块独立 5.2.1 模块化 模块的定义 又称“组件“,它一般具有如下三个基本属性: 功能 描述该模块实现什么功能 逻辑 描述模块内部怎么做 状态 该模块使用时环境和条件 在描述一个模块时,必须按模块的外部特性和内部特性分别描述。 5.2.1 模块化 模块的定义 外部特性 模块的名称、参数表,其中输入参数和输出参数,以及程序返回的状态; 内部特性 完成功能的程序代码和仅供该模块内部使用的数据; 5.2.1 模块化 模块的分类 传入模块 从下属模块取得数据,经过处理,再将其传送给上级模块,它传送的数据流叫逻辑输入数据流; 5.2.1 模块化 模块的分类 传出模块 从上级模块获得数据,进行处理,再将其传送给下属模块,它传送的数据流叫逻辑输出数据流; 5.2.1 模块化 模块的分类 变换模块 从上级模块取得数据,进行特定的处理,转换成其它形式再返回给上级模块,它加工的数据流叫变换数据流 ; 5.2.1 模块化 模块的分类 协调模块 对所有下属模块进行协调和管理的模块 ; 5.2.1 模块化 模块化 把程序划分成独立命名且可以独立访问的模块,每个模块完成一个子功能。再把他们组成一个集体,可以完成指定的功能,满足问题的要求。 作用 使软件结构清晰; 使软件容易测试和调试,从而提高软件的可靠性; 提高软件的可修改性; 模块数与开发工作量的关系 5.2.1 模块化 5.2.1 模块化 Meyer五条标准:用以评价定义模块系统设计方法的有效能力 模块可分解性 模块可组装性:能把现有的(可重用的)设计构件组装成新系统; 模块连续性:系统需求的微小修改只修改对个别模块,而不是整体; 模块可理解性:理解模块无需参考其他模块; 模块保护性:模块内出现异常情况时,它的影响局限在该模块内部; 5.2.2 模块的独立性 定义  模块的独立性指软件系统中每个模块只涉及软件要求的具体的子功能; 与软件系统中其他模块的接口简单,接口指传递数据的方式,传递数据的结构,传递数据的量; 5.2.2 模块的独立性 衡量独立性准则  独立性好的模块具有易于开发、组合、易修改以及测试的特点,衡量模块的独立程度的两个准则: 耦合性 模块之间的互相连接的紧密程度的度量; 内聚性 模块内部各个元素之间结合的紧密程度的度量 ;   模块独立性比较强的模块应是松散耦合高度内聚的模块。 5.2.2 模块的独立性 模块间的耦合性 耦合性对软件结构内不同模块之间的联系程度的度量。 耦合强度依赖的因素: 一模块对另一模块的引用; 一模块向另一模块传递的数据量; 一模块施加到另一模块的控制的数量; 模块间接口的复杂程度; 5.2.2 模块的独立性 模块间的耦合性 模块之间可能的连接方式有7种,构成耦合性的7种类型; 5.2.2 模块的独立性 模块间的耦合性 非直接耦合(模块独立性最强) 两个模块没有直接关系; 模块之间的联系完全是通过主模块的控制和调用来实现的;  5.2.2 模块的独立性 模块间的耦合性 数据耦合 模块之间通过简单数据参数来交换输入、输出的信息,不是控制参数、公共数据结构或外部变量。  5.2.2 模块的独立性 模块间的耦合性 特征耦合(标记耦合) 两个模块都与同一个数据结构有关,被调用的模块只需要使用其中一部分数据元素。 5.2.2 模块的独立性 模块间的耦合性 控制耦合 一个模块通过传送开关、标志、名字等控制

文档评论(0)

yy558933 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档