资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
湖南农业大学东方科技学院课程论文学 部:理工学部班 级:2010级信息工程2班姓 名:欧斌学 号:201041919232论文题目:面向对象软件开发方法的特点及方法课程名称:软件工程导论评阅成绩:评阅意见:成绩评定教师签名:日期: 年 月面向对象软件开发方法的特点及发展摘要:面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。 面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数 据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD 技术、人工智能等领域。关键词:面向对象、特点、发展一、面向对象的概念1. 对象和类对象对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看 作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。(2) 对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中(3) 类具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具 体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。(4) 类的结构。在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的 结构关系,即一般一具体结构关系,整体一部分结构关系。般一一具体结构称为分类结构,也可以说是“或”关系,或者是“isa”关 系。整体一一部分结构称为组装结构,它们之间的关系是一种“与”关系,或 者是“hasa”关系。(5) 消息和方法。对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某 个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括 说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还 要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有 对象都知道的全局变量名。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。2. 面向对象的特征(1) 对象唯一性每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象 的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。(2) 分类性分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一 个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关 内容。任何类的划分都是主观的,但必须与具体的应用有关。(3) 继承性继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。 在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这 个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语 言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信 息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码 的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特 性能够共享,提高了软件的重用性。(4)多态性(多形性)多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同 的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。3. 面向对象的要素抽象抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定 如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些 细节。类实现了对象的数据(即状态)和行为的抽象。(2)封装性(信息隐藏)封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口) 与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用 域提供保护。对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。 面向对象的封装比传统语言的封装更为清晰、更为有力。(3)共享性面向对象技术在不同级别上促进了共享同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、 行为特征的共享关系。在同一应用中共享。在同一应用的类层次结构中,存在继承关系的各相似子 类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用 继承来实现代码的共享,这也是面向对象的主要优点之一。在不同应用中共享。面向对象不仅允许在同一应用中共享信息,而且为未来 目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信 息共享。二、面向对象的开发方法目前,面向对象开发方法的研究已日趋成熟,国际上已有不少面向对象产品 出现。面向对象开发方法有Coad方法、Booch方法和OMT方法等。1. Booch 方法Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发 是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对 客观事务的理解,而功能分解只通过问题空间的转换来获得。2. Coad方法Coad方法是1989年Coad和Yourdon提出的面向对象开发方法。该方法的 主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、 结构、属性和操作的认定方面,提出了一套系统的原则。该方法完成了从需求角 度进一步进行类和类层次结构的认定。尽管Coad方法没有引入类和类层次结构 的术语,但事实上已经在分类结构、属性、操作、消息关联等概念中体现了类和 类层次结构的特征。3.OMT方法OMT方法是1991年由JamesRumbaugh等5人提出来的,其经典著作为“面 向对象的建模与设计”。该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的 对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象 的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系 统。该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力 寻求一种问题求解的实际方法。4.UML(UnifiedModelingLanguage )语言软件工程领域在1995年1997年取得了前所未有的进展,其成果超过软件 工程领域过去15年的成就总和,其中最重要的成果之一就是统一建模语言(UML) 的出现。UML将是面向对象技术领域内占主导地位的标准建模语言。UML不仅统一了 Booch方法、OMT方法、OOSE方法的表示方法,而且对其作 了进一步的发展,最终统一为大众接受的标准建模语言。UML是一种定义良好、 易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、 新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求 分析开始的软件开发全过程。三、面向对象的优势1. 它与人习惯的思维方法一致传统的程序设计技术是面向过程的设计方法,这种方法以计算为中心,把数 据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处 理这些数据。而面向对象的方法学是以对象为核心,用这种技术开发出的软件系 统由对象组成的。2. 稳定性好传统的软件开发方法以计算法为核心,开发过程基于功能分析和功能分解, 所以它很不稳定。而面向对象的方法学是基于构造问题邻域的对象模型,以对象 为中心构造软件系统,它的基本做法是对象模拟问题邻域中的实体,以对象间的 联系刻画实体间的联系。由于现实世界中的实体是相对稳定的,因此,以对象为 中心构造的软件系统也是比较稳定的。3. 可重用性好传统的软件重用技术是利用标准函数库,也就是试图用标准函数库中的函数 作为“预制件”来建造新的软件系统,但是,标准函数缺乏必要的“柔性”,不 能适应不同应用场合的不同需要,并不时理想的可重用的软件成分。而在实际开 发一个新的软件系统时,通常多数函数是开发者自己编写的,甚至绝大多数的函 数都是新编的。面向对象的软件技术在利用可用的软件成分构造新的软件系统时,有很大的 灵活性。它有两种方法可以重复使用一个对象类:一种方法是创建该类的实例, 从而直接使用它,另一种方法是从它派生出一个满足当前需要的新类。它所实现 的重用性是自然的和准确的,不像传统的方法是刻意的。4. 较易开发大型软件产品在开发大型软件产品时,组织开发人员的方法不恰当往往是出现问题的主要 原因。用面向对象方法学时,构成软件系统的每一个对象就像一个微型程序,有 自己的数据,操作,功能和用途,因此,可以把一个大型软件产品分解成一系列 本质上相互独立的向产品来处理,故它比较容易开发大型软件。四、面向对象的未来总的来说,面向对象的技术是以前的软件开发技术自然演进的成果,对许多 应用领域的软件开发都极具前途。借用MauriceWilkes在他图灵奖颁奖仪式上的 演讲的话:“对象是软件界从70年代以来最激动人心的革新之一。”然而,面 向对象的开发并非是包医百病的灵丹妙药,其发展还远未成熟。可是尽管OO技 术的未来还未确定,但在90年代初期的一些预言都已实现。类库和应用程序框 架在市场上已经可用。应用和环境之间的透明信息存取业已实现。支持用户在应 用之间通信的的环境以及面向对象的继承多媒体工具包正在涌现。随着经验的积 累,OO的发展将日渐流行,OO技术也将日趋成熟。当然,OO技术也有可能为某 种处理更高一级抽象的开发技术取代或融合。这些都只是猜想。虽然在不远的将 来,谈论对象无疑会显得过时,但现在,还有许多的问题等着我们去付出真正的 热情。参考文献:1庞丽萍著.软件开发基础一一面向对象技术与操作系统虚拟机.高等教育出版社,1999.石峰、宋红著.面向对象方法.高等教育出版社,2008.3郑人杰、殷人昆著.软件工程概论.清华大学出版社,1998.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号