文档详情

软件工程课件之第9章_面向对象方法学引论(第6版)(张海潘编著)讲述.pptx

发布:2017-04-04约5.72千字共55页下载文档
文本预览下载声明
第9章 面向对象方法学引论 面向对象方法学概述 面向对象概念 面向对象建模 对象模型 动态模型 功能模型 三种模型之间的关系 引入 软件工程发展的两个重要阶段 传统软件工程 面向对象软件的工程 传统软件工程 以面向过程的结构化程序设计为基础; 遵循“程序=数据结构+算法”的思路; 缺点: 不太适应规模大、特别复杂的项目; 难以解决软件重用的问题; 难以适应需求的变化; 难以彻底解决维护问题。 面向对象软件工程 按人类习惯的思维方法,以现实世界中客观存在的事物(即对象)为中心来思考和认识问题。 采用的思想方法与原则:抽象、分类、继承、聚合、封装等。 以易于理解的方式表达软件系统,建立问题域模型,使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性 面向对象软件工程 软件工程学家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 ) ,对象是对象类的一个实例。 ③ 类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。子类与父类形成类的层次结构。 ④ 对象之间通过消息传递相互联系。 面向对象方法学的优点 与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好 面向对象的概念 对象( object ) 在现实世界中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,包括具体的物理实体的抽象、人为的概念、任何有明确边界和意义的东西。 如:一名职工、一本图书、贷款、生产计划、一场演出等。 对象既有静态的属性,又有动态的行为(操作)。 面向对象的概念 从软件开发的角度定义对象 系统中用来描述客观事物的实体,是构成系统的基本单位。 由一组属性和相关操作组成的服务组成。 属性:用来描述对象静态特征的一个数据项; 服务:用来描述对象动态特征(行为)的一个操作序列。 对象的属性和所有操作封装在一起,构成一个统一体。 属性一般只能通过执行对象的操作来改变。 面向对象的概念 表示内部状态的数据、实现各操作的代码及局部数据,被隐藏,无法从外面看见、访问或修改; 使用对象的时候,只能通过对象与外界的界面来操作; 操作时,只需知道该操作的名字和所需要的参数,不需要知道这些操作是如何实现的; 简单、方便,安全性和可靠性高。 面向对象的概念 类( Class ) 具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。 “类”好比是一个对象模板,用它可以产生多个对象。 学生对象1 类名 学生对象2 姓名:张三 属性 姓名:李四 年龄24 年龄20 性别:男 性别:女 选课 服务 选课 考试 考试 面向对象的概念 实例是某个特定类所描述的一个具体对象。 如:“张三”“李四”是类“学生”的实例。 对象:可以是一个具体的对象,也可以泛指一般的对象。 实例:必然是指一个在客观世界中存在的具体对象。 面向对象的概念 消息(message) 对象之间通信的手段,是一个对象要求另一对象执行类中定义的某个操作的规格说明。 通常一个消息由三部分组成: 接收消息的对象 消息标识符(即消息名) 零个或多个变元 例如: MyCircle.Show (Green ) MyCircle是接收消息的对象的名字, Show 是消息名,Green是消息的变元。 面向对象的概念 方法(method) 对象所能执行的操作称为方法,也就是类中所定义的服务。方法描述了对象执行的功能、响应消息的操作。 在 C + +中称为成员函数。 面向对象的概念 属性(attribute) 属性是对客观世界实体所具有的性质的抽象,是类中所定义的数据。 如:学生类属性有姓名、年龄、性别等。 不同对象的同一
显示全部
相似文档