- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[SW12第十二章-面向对象的设计
SW12面向对象的设计 目标 软件设计可表示成一组互相交互的对象,这些对象管理自己的状态和操作 面向对象的设计过程中的重要活动 面向对象设计中所用的模型 模型的表示(统一建模语言UML) 内容 面向对象 对象和对象类 面向对象的设计过程 设计进化 1.2 OOD的特性 对象是真实世界或系统实体的抽象化,对象管理他们自己 对象是独立的并且隐藏了状态信息 系统功能表达为对象服务 共享数据区被除去。对象通过消息传递来彼此通信 由交互的对象构成的系统 1.3 OOD的优点 对象是独立存在的实体,面向对象的系统具有好的可维护性 可复用性:对象是很适合于重复使用的组件 对于一些系统,可能存在从真实世界实体到系统实体的显式映射(设计直观) 1.4 面向对象的开发 面向对象的分析、设计和编码是有关系的,但是也是不同的 面向对象分析OOA 建立应用领域的对象模型 面向对象设计OOD 建立软件系统的面向对象的系统模型,来实现需求 面向对象的程序设计OOP 所关心的是实现 OOD ,使用 OO 程序设计语言例如 Java或 C++ 语言 2.1 对象和对象类 对象是由状态和在此状态上的一组操作构成的一个实体,是软件系统中的实体,表现真实世界中的实例 对象类是对象的模板。它们用来创建对象。 对象类可能从其他的对象类继承属性和操作(服务) 对象和对象类 职员对象类 (1) 对象通信 对象通信通过向其他对象请求服务,对象通信是通过消息传递完成的 信息 调用对象所请求的服务的名字 必需运行服务的数据副本和为服务的结果持有人的名字 在实际中,信息通常实现为过程调用 名字=过程命名 信息=参数列表 对象通信 //Call a method associated with a buffer //object that returns the next value //in the buffer v = circularBuffer.Get () ; //Call the method associated with a//thermostat object that sets the //temperature to be maintained thermostat.setTemp (20) ; (2) 泛化和继承 对象类定义属性和操作 类可能在一个类层次结构中,其中一个类 (超类) 是其他类(子类)的一个泛化 类从它的超类继承属性和操作,也可能增加它自己的新操作或属性 泛化在 UML 中用 OO编程语言实现为继承 实例:泛化和继承 继承的特点 优点 继承是用来对实体进行分类的抽象机制 继承在设计和编码阶段是一种复用机制 继承图是对领域和系统结构化知识认识的桥梁 缺点 对象类在不知道其超类的情况下是不能够真正理解的 编码、测试困难 (3) 对象关联 不同类对象之间存在着一定的关系 在 UML 中,用关联来描述一个对象是另外一个对象的属性或者一个对象方法的实现依赖于相关联的对象 关联可与注解一起描述关联的信息 关联模型 3.1 面向对象的设计过程 定义上下文和系统的使用模式 设计系统体系结构 识别主要的系统对象 开发设计模型 描述对象接口 实例:气象系统描述 气象台描述 气象制图系统的分层体系结构 (1) 系统上下文和使用模型 系统上下文是系统和外部环境之间存在的关系 系统上下文 系统上下文是一个静态模型,描述环境中的其他系统. 系统的使用模型 系统的使用模型是一个动态模型,描述系统如何与实际环境相互交互 气象制图系统的子系统 气象台用例 用例描述 体系结构设计 当设计完软件系统中的交互和定义好系统的环境后,就可以用它来设计系统的体系结构 分层体系结构对气象台是适当的 接口层 数据收集层 仪器层 气象台体系结构 (3) 对象识别 识别对象(或对象类)是面向对象设计的最困难的部分 对象识别没有 灵丹妙药。它依赖于系统设计者的技巧,经验和领域知识 对象识别是一个反复的过程。你不太可能经过一遍就能完成 识别方法 对系统的自然语言描述作文法分析 使用应用领域中的真实实体 使用行为方法 实例:气象台对象类 地面上的温度计,风速计,气压计 是应用领域对象,是与仪器相关的对象 气象台 是气象台与其它环境的基本接口 气象数据 封装了经过整理的数据 气象台对象类 对象进一步细化 使用应用领域的知识识别更多的对象和操作 采集数据的气象台应该有一个唯一的表示 气象台可能位于很远的地方,因此仪器失败必须被自动地报告。因此关于子检测的属性和操作就是需要的了 (4) 开发设计模型 静态模型是通过系统对象类及其之间的关系描述系统的静态结构。UML中常用分析模型的类图、用例图、构件图等描述系统中元素的关系。 动态模型是描述系统对象之间的
文档评论(0)