- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程 第九章 面向对象方法学引论 第九章 面向对象方法学引论 9 . 1 面向对象方法学概述 9 . 2 面向对象概念 9 . 3 面向对象建模 9 . 4 对象模型 9 . 5 动态模型 9 . 6 功能模型 9 . 7 三种模型之间的关系 学习重点和难点 理解面向对象技术中的基本思想、概念和原理等;理解面向对象建立的三种模型的功能和相互关系。 9 . 1 面向对象方法学概述 软件工程发展的两个重要阶段 传统软件工程 面向对象软件的工程 传统软件工程 以面向过程的结构化程序设计为基础; 遵循“程序=数据结构+算法”的思路; 由“追求技巧与效率”到“清晰第一,效率第二” 缺点: 不太适应规模大、特别复杂的项目; 难以解决软件重用的问题; 难以适应需求的变化; 难以彻底解决维护问题。 面向对象软件工程 按人类习惯的思维方法,以现实世界中客观存在的事物(即对象)为中心来思考和认识问题。 采用的思想方法与原则:抽象、分类、继承、聚合、封装等。 以易于理解的方式表达软件系统,建立问题域模型,使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性 软件工程学家Codd 和Yourdon认为: 面向对象=对象+类+继承+通信 如果一个软件系统采用这些概念来建立模型并予以实现,那么它就是面向对象的。 面向对象技术发展概述 初始阶段:上世纪 60 年代,挪威奥斯陆大学和挪威计算中心开发的 Simula67 的语言; 70 年代中期, Xerox 研究中心开发的 Smallta Ik 语言,具备了面向对象语言的各种特征。 发展阶段:涌现大批面向对象编程语言(OOPL )。如 C ++、 objective-C 、 ob j ect Pascal 、 Eiffel 、 Actor 等。 成熟阶段:面向对象分析(OOA )和面向对象设计( OOD )的研究。出现各种著名的面向对象分析设计的方法,如: Coad/ Yourdon 的方法、 Booch 的方法、 OMT方法、 wirtf-Brock 的 RDD 方法、 Jacobson 的 OOSE 方法 … … 等。 面向对象技术的基本观点 ① 任何客观的事物或实体都是对象。对象组成客观世界,复杂的对象可以由简单的对象组成。 ② 具有相同数据和操作的对象可以归并为一个类(class ) ,对象是对象类的一个实例。 ③ 类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。子类与父类形成类的层次结构。 ④ 对象之间通过消息传递相互联系。 面向对象方法学的优点 详见教材 P205 一 P208 页 1 、与人类习惯的思维方法一致 2 、稳定性好 3 、可重用性好 4 、较易开发大型软件产品 5 、可维护性好 传统的开发方法与面向对象的开发方法比较 9 . 2 面向对象的概念 9 . 2 . 1 对象( objoct ) 在现实世界中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,包括具体的物理实体的抽象、人为的概念、任何有明确边界和意义的东西。 如:一名职工、一本图书、贷款、生产计划、一场演出等。 对象既有静态的属性,又有动态的行为(操作)。 从软件开发的角度定义对象 系统中用来描述客观事物的实体,是构成系统的基本单位。 由一组属性和相关操作组成的服务组成。这是对象的两个基本要素: 属性:用来描述对象静态特征的一个数据项; 服务:用来描述对象动态特征(行为)的一个操作序列。 对象的属性和所有操作封装在一起,构成一个统一体。 属性一般只能通过执行对象的操作来改变。 表示内部状态的数据、实现各操作的代码及局部数据,被隐藏,无法从外面看见、访问或修改; 使用对象的时候,只能通过对象与外界的界面来操作; 操作时,只需知道该操作的名字和所需要的参数,不需要知道这些操作是如何实现的; 简单、方便,安全性和可靠性高。 9.2.2 其他概念 1、类( Class ) 具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。 “类”好比是一个对象模板,用它可以产生多个对象。 例: 类(class):是对象的“类型”(type) 一般用关键字class来表示。 Class CPeople{ long ID; string name; void DoSomething(); } 对象是类的实例:CPeople Tom 2、实例(instance) 实例是某个特定类所描述的一个具休对象。 如:“张三”“李四”是类“学生”的实例。 对象:可以是一个具体的对象,也可以泛指一般的对象。 实例:必然是指一个在客观世界中存在的具体对象。 3、消息(message) 对象之间通信的手段,
文档评论(0)