- 1、本文档共161页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国防科技大学计算机学院 第7章 面向对象设计 软件设计概述 面向对象设计建模 系统架构设计 系统元素设计 面向对象设计示例 7.1软件设计概述7.1.1软件设计的概念 模块与构件 抽象与细化 信息隐藏 软件复用 1.模块与构件 模块(Module) 是一个拥有明确定义的输入、输出和特征的程序实体。如函数、过程、子程序、宏等 若模块的所有输入都是实现功能必不可少的,所有输出都有动作产生,即成为定义明确的模块。 软件构件(Software Component) 可重复使用的软件组件。 现有的可复用构件,大多是在对象的基础上创建。 2、抽象与细化 抽象 提取客观世界中一群事物的某些本质共性,而暂时忽略他们的非本质的细节,是一个从特殊到一般的过程。 分层次考虑和处理问题(数据和过程) 过程抽象:把完成一个特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。 数据抽象:把一个数据对象的定义抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。 细化 从高到低的逐步分解过程。 3、信息隐藏 定义 把系统分解为模块时应遵守的指导思想。 基本思想 模块内部的数据和过程,不需要这些信息的模块不可访问; 每一个模块只完成一个相对独立的特定功能; 模块之间仅仅交换那些完成系统功能必须交换的信息。 目的 提高模块的独立性,当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。 4、软件复用 Design with reuse, design for reuse 7.1.2 软件设计的任务 软件设计的任务 把分析阶段产生的软件需求说明转换为用适当手段表示的软件设计文档。----解决“如何做” 的问题 内容 数据设计:信息模型 软件数据结构; 体系结构设计:定义软件主要组成部件之间的关系; 接口设计:软件内部、外部及与人之间的通信 (数据流和控制流) 过程设计:将软件体系结构的组成部件转变为对软 件组件的过程性描述。 7.1.3模块化设计 定义 把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。 指导思想 分解 模块独立性 内容 分解 模块独立性 自顶向下与由底向上 1.分解 分解是处理复杂问题的常用方法 传统软件工程:利用分解画分层DFD图; 设计阶段:利用分解实现模块化设计; OO软件工程:利用分解划分类和对象。 将复杂问题分解可以降低解题的总工作量和复杂度 2.模块独立性 概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。坚持模块的独立性,是获得良好设计的关键。 衡量标准 模块本身的内聚 模块内部各个成分之间的联系 又称块内联系或模块强度 模块间的耦合 一个模块与其他模块之间的联系 又称块间联系 模块独立性越高,块内联系越强,块间联系越弱。 1. 内聚 cohesion 低内聚 偶然性内聚 块内各组成部分在功能上是互不相关的。 模块内部成分的组合纯属偶然。 偶然内聚(Coincidental Cohesion) 一些无任何联系语句可能在多个模块中重复多次,为节省存储,把它们抽出来组成一个新的模块。 缺点(1)不易修改和维护 (2) 模块的内容不易理解,很难描述所完成的功能,增加程序的模糊。 (3)可能会把一个完整的程序段分割到许多模块内,在程序运行过程中将会频繁地互相调用和访问数据。 偶然内聚(巧合内聚) 低内聚 逻辑性内聚 由若干个逻辑功能相似的成分组成。 执行时须从模块外引入判断量,增大块间耦合。 逻辑内聚模块 低内聚 时间性内聚 模块所包含的成分,是由相同的执行时间将他们连接到一起。 要求在同一时间内执行。 例如:初始化系统模块、 系统结束模块、 紧急故障处理模块等均是时间性聚合模块. 中内聚 过程性内聚 模块中包含的一组任务必须按照某一个特定的次序执行。 中内聚 通信性内聚 模块内部的各成分使用同一种数据输入,或产生同一个数据输出。 他们靠公用数据连接在一起。 高内聚 顺序性内聚/信息内聚 各个功能都在同一数据结构上操作,每项功能有唯一的入口点。如对符号表有查找、登录、删除、修改等操作,把查找、登录、删除、修改等功能设计在一个模块中,以实现信息的隐蔽。 功能性内聚 模块中的所有的成分结合在一起,用于完成一个单一的功能。 块内联系最强的一类模块。 信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。 注:信息内聚和逻辑内聚的区别 信息内聚各个功能代码是完全独立的,
您可能关注的文档
最近下载
- 广西桂林市2025年中考化学模拟联考试题含答案.pptx VIP
- 2025年武汉民政职业学院高职单招职业技能考试题库及参考答案解析.docx VIP
- 河南省2021年中考英语试题真题(Word版+答案+解析).doc VIP
- 新人教版高中数学必修第一册第一章集合与常用逻辑用语全套导学案PPT课件及配套WORD讲义.ppt VIP
- 【基于51单片机电子打铃器定时控制系统设计与实现6200字】.docx
- Deepseek高手写材料提示词手册_00.pdf VIP
- 变电站建筑结构设计技术规定.doc VIP
- 《GBT 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验》最新解读.pptx
- 入党发展对象思想汇报及纪检干部入党积极分子思想汇报两篇.doc VIP
- 2024年教材解读——新课标、新教材赋能新教学.docx
文档评论(0)