- 1、本文档共149页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程模型与方法Models Methods of Software Engineering 第八章 面向对象基础 本章内容 8.1 面向对象基本思想 8.2 面向对象的主要概念和基本原则 8.3 几种经典的面向对象的分析和设计方法 8.4 统一建模语言UML简介 8.1 面向对象基本思想 面向对象方法于20世纪60年代末提出,较为完善的面向对象分析和设计方法出现在八十年代中后期。为了克服早期的方法的不足,这时人们已经开始考虑使用面向对象方法来开发系统 早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。 结构化分析和设计集中于将功能作为系统的构造块。 在信息建模方法中(实体关系模型)构造块是实体,但在该方法中用来满足系统需求的功能被完全忽略掉了。 两种方法都没有处理对动态行为的捕获,声明性语义(规则)以及例外处理机制都被完全忽略了。 8.1 面向对象基本思想 为了克服传统开发方法的不足,面向对象方法解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式(抽象、分类、继承、聚合、封装、关联等)来构造软件系统,这与传统的结构化方法从功能入手和建模方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。 8.1 面向对象基本思想 以图书管理信息系统为例来比较结构化开发方法和面向对象方法的思路。 结构化方法: 8.1 面向对象基本思想 8.1 面向对象基本思想 可见,面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系、用什么观点来研究问题并进行问题求解、以及如何进行系统构造的软件方法学。 Coad和Yourdon给出了一个定义: “面向对象=对象+类+继承+通信”。 如果一个软件系统是使用这样 4 个概念设计和实现的,则我们认为这个软件系统是面向对象的。 一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。 8.1 面向对象基本思想 面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。面向对象基本思想可以概括为: 8.1 面向对象基本思想 8.1 面向对象基本思想 8.1 面向对象基本思想 8.2 面向对象的主要概念和基本原则 8.2.1 主要概念 8.2.2 基本原则 8.2.1 主要概念 对象 类 关联和链 继承/泛化 聚合 对象 类 类是具有相同属性、操作、关系和语义的对象集合的描述。类为属于该类的全部对象提供了统一的抽象描述,由类名、属性和服务三个主要部分组成。 对象是类的实例。 关联和链 关联用来描述类之间的静态联系,可以包含关联的名称、关联的方向和多重性等属性。 如上边所示: 关联名称:借阅 关联方向:单向 多重性:7(表示最多借阅7本) 关联和链 链是关联的实例,用于描述具体对象之间的某种联系。 对象之间的链可以通过对象的属性表达出来。例如,用类“学生”的对象的属性来记录该对象具体借阅的“图书”对象。 继承/泛化 继承也称泛化,是面向对象描述类之间相似性的一种重要机制。 继承/泛化 继承简化了人们对事物的认识和描述,非常有益于软件复用,是OO技术提高软件开发效率的重要原因之一。 继承/泛化 继承可分为单继承和多继承。如果一个子类继承了超过一个以上的父类的属性和操作,那么这种继承就是多继承,否则就是单继承。 继承是可传递的,可以跨越任意层次。子类继承其所有祖先类的属性、操作和关联。 聚合 聚合刻画了现实世界事物的构成关系 ,是一种具有整体--部分语义的关联,也就是说,聚合是关联的一种,只是普通关联的语义没有聚合那么强 。 举例,车是一个整体实体,轮胎、发动机、车身、车座等是整辆车的一部分。 8.2.2基本原则 分类 封装和信息隐藏 消息通信 多态性 分类 分类是按照某种原则划分事物的类别,利用它有助于对复杂世界的认识。 在面向对象的方法中,分类就是把具有相同属性和操作的对象划分为一类,用类作为这些对象的抽象描述。 运用分类原则,可以清楚地表示对象和类之间的关系以及特殊类和一般类之间的关系。 封装和信息隐藏 封装是指将属于对象的各种信息(属性)和对象的行为(操作)组织起来,形成一个实体――对象。 接口:定义外部实体能对对象进行的操作方式; 信息隐藏有两方面含义: 对象属性只有通过对象对外发布的接口访问; 外部对象只关心接口的访问方法,不关心接口的内部实现; 降低软件复杂性,让其他对象不用关心它们不必关心的细节; 减少修改对象引起的“波动效应”:对象内部的修改对外部的影响很小,只要接口不变,里面怎么变都没有关系; 实现接口和实现的分离。 消息通信 消息是对象间实现通信的手段。 操作是对象与外界的接口,
文档评论(0)