《3.第四章软件设计概述2014简化版.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《3.第四章软件设计概述2014简化版

第四章 软件设计概述 4.1 软件设计的任务 4.2软件设计的基本原理概念 4.3模块化设计 4.3.1分解和模块化 4.3.2模块独立性 内聚 耦合 需求分析:对目标系统的数据、功能和行为建模 设计:把分析阶段的需求说明转换成设计文档。 根据设计结果可进行下一步的编制代码工作了 将需求-软件的表现形式 输出文档:软件设计文档 两种主流设计方法: 结构化软件设计 面向对象的软件设计 4.1 软件设计的阶段和任务 两阶段四任务: 4.2软件设计的基本概念 模块(module)与构件(component) 模块:定义输入、输出和特性的程序实体 构件:可重复使用的软件组件 抽象(abstract)与细化(refinement) 抽象:分层次考虑和处理问题(数据和过程) 细化:从高到低的逐步分解过程 信息隐藏 对其它模块隐藏模块内部的数据和过程 一个模块内部(信息数据和过程)对于不需要了解这些信息的模块来说,是不能访问的 只有为了完成软件的总体功能而必须在模块间交换的信息,才容许在模块间交换 4)软件复用 充分利用已有的现成构件,不必一切从头开始 Design with reuse, design for reuse 4.3模块化设计(module design) 4.3.1模块化 4.3.2分解(decomposition) 4.3.3模块独立性(module independence) 4.3.4 自顶向下(top—down design) 自底向上(bottom—up design) 4.3.1模块module 模块化: 把大型软件划分成一个个小的,相对独立又互相关联的模块 每个模块完成一个子功能,这些模块集成起来就是构成一个整体 模块: 一个由编辑元素限定的,拥有明确定义的输入,输出特生的程序实体 分解 模块化 4.3.2分解Partitioning 启发: 将一个复杂问题分解为几个小问题,减少问题复杂度 问题的复杂度: C (P1+P2)C (P1)+C (P2) 解题需要的工作量:E (P1+P2)E (P1)+E (P2) 无限制的分解问题,工作量是否越来越小? 分解分为两个方向 水平分解(Horizontal partitioning) 垂直分解(Vertical partitioning) 4.3.2模块独立性 module independence 模块独立性——模块分解所必须遵循的准则! 内涵: 设计软件结构时,使每个模块具有一个相对独立的子功能 且与其他模块没有过多联系 模块独立性的度量 内聚(cohesion)——模块内部各成分之间的联系 耦合(coupling)——模块与其它模块间的联系 模块的独立性高 高内聚,低耦合——块内联系强 块间联系弱 (一)内聚 (a)低级内聚度 偶然性内聚(Coincidental Cohesion)。 模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。例 逻辑性内聚(Logical Cohesion) 把几种相关的或功能相似的成分组成一个模块 每次调用时,由传送给模块的判定参数来确定模块应执行那种功能 例 时间性内聚(Temporal Cohesion) 模块包含的诸任务必须在同一时间段内执行,如一个初始化模块,终止模块 例:偶然性内聚模块 例: 逻辑性内聚模块 (b)中级内聚度 (4)过程性内聚(Procedural Cohesion) 模块具有过程性内聚度指,模块内成分彼此相关,并且必须按特定的次序执行; (5)通信性内聚(Communicational Cohesion) 模块中各成份都将对数据结构的同一区域进行操作,以达到通信的目的。 例 过程化内聚模块 例 通信内聚模块 (c)高级内聚度 (6)顺序性内聚(Sequential Cohesion) 模块内的各处理成份均与同一功能相关 且这些处理必须顺序执行,则称顺序内聚。 (7)功能性内聚(Functional Cohesion) 模块内所有成分形成一个整体,完成单个功能。 模块各成分紧密联系,不可分割!  如:求平方根 设计软件时,应识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性 高内聚,低耦合,一个模块,一个功能! (二)耦合 coupling 耦合度:软件结构中模块间关联程度的一种度量。 耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。 (a)弱耦合 (1)非直接耦合(Nodirect Coupling) 两模块中任一个都不依赖对方能独立工作, 这类耦合度最低。 (2)数据耦合(Data Coupling

文档评论(0)

zhuanyewd + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档