欢迎来到天天文库
浏览记录
ID:43533678
大小:2.43 MB
页数:118页
时间:2019-10-10
《软件工程导论课件之第9章-面向对象方法学引论(第五版)(张海藩编著)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章面向对象方法学引论9.1面向对象方法学概述9.2面向对象的概念9.3面向对象建模9.4对象模型9.5动态模型9.6功能模型9.73种模型之间的关系传统的软件工程方法学应用于大型软件产品的开发时,很少取得成功。自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。9.1面向对象方法学概述面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
2、也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。对象是客观世界中的实体对象不固定行为丰富多彩既有静态属性又有动态行为对象是计算机中的实体取决于程序设计语言行为简单呆板仅描述静态实体属性,必须从外部施加操作才能模拟行为传统方法学的解空间:面向对象方法的解空间:面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。每个对象就像一个微型程序,有自己的数据
3、、操作、功能和目的。面向对象方法具有4个要点:对象:客观世界是由各种对象组成,任何事物都是对象,复杂的对象可以由简单的对象以某种方式组合而成。对象分解取代功能分解。类:把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。继承:按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。消息:对象之间仅能通过传递消息互相联系。对象是进行处理的主体。面向对象方法学的方程:OO=objects+classes+inheritance+communicationwi
4、thmessages基于对象(object-based)=objects+communicationwithmessages基于类(class-based)=objects+classes+communicationwithmessages只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。面向对象方法的发展史:(1)雏形阶段1972年PaloAlno研究中心(PARC)发布了Smalltalk-72,正式使用“面向对象”这个术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成。(2)完善阶段PARC先后发布了Smalltalk-72,7
5、6,78等版本,直至1981年推出该语言最完善的版本Smalltalk-80。Smalltalk-80是第一个完善的、能够实际应用的面向对象语言。(3)繁荣阶段自20世纪80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的OOPL的涌现,例如C++、Objective-C等。(4)当前的状况20世纪90年代,面向对象的分析与设计方法多达数十种,这些方法各有所长,现在趋于统一。统一建模语言UML,其推荐的方法是USDP(UnifiedSoftwareDevelopmentProcess);UML是一种面向对象的建模语言,在软件产业界获得了
6、很大的支持。1.与人类习惯的思维方法一致面向对象的软件技术以对象为核心,软件系统由对象组成。对象由数据,以及可以对这些数据施加的操作,封装在一起所构成的统一体。对象之间通过传递消息互相联系。面向对象的设计方法强调模拟现实世界中的概念而不强调算法。面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型。9.1.2面向对象方法学的优点2.稳定性好面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解。当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。以对象为中心构造的软件系统是比较稳定的。
7、3.可重用性好在面向对象方法所使用的对象中,数据和操作正是作为平等伙伴出现的。因此,对象具有很强的自含性。对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。对象是比较理想的模块和可重用的软件成分。4.较易开发大型软件产品用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据、操作、功能和用途。可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,这就不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易多了。5.可维护性好面向对象的软件稳定性比较好。面向对象的软件比较容易修改。面向对象的软件比
8、较容易理解
此文档下载收益归作者所有