西安工业大学《软件工程》第九章_面向对象技术.docxVIP

西安工业大学《软件工程》第九章_面向对象技术.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第九章面向对象技术

在软件开发与设计中,对一个系统的认识是一个渐进的过程,是在继承了以往的有关知识的基础上,多次迭代往复并逐步深化而形成的。在这种认识的深化过程中,既包括了从一般到特殊的演绎,也包括了从特殊到一般的归纳。而目前用于分析、设计和实现一个系统的过程和方法大部分是瀑布型的,即后一步是为了实现前一步所提出的需求,或者是进一步发展前一步所得出的结果。因此,当越接近系统设计或实现的后期,对系统设计或实现的前期的结果作修改就越困难。同时也只有在系统设计的后期才能发现在前期所形成的一些差错。而且当这个系统越大、问题越复杂时,由于这种对系统的认识过程和对系统的设计或实现过程不一致所引起的困难就越大。

为了解决上述这个问题,就应使分析、设计和实现一个系统的方法尽可能地接近认识一个系统的方法,换言之,就是应使描述问题的问题空间和解决问题的方法空间在结构上尽可能的一致,也就是使分析、设计和实现系统的方法学原理与认识客观世界的过程尽可能的一致。这就是面向对象方法学的出发点和所追求的基本原则。

面向对象方法的形成最初是从面向对象程序设计语言开始的,随之才逐渐形成面向对象分析和设计方法。面向对象方法的出现以20世纪60年代末挪威奥斯陆大学和挪威计算中心共同研制的SIMULA语言为标志,面向对象方法的基本要点首次在SIMULA语言中得到了表达和实现。90年代以后,OOA(Object-OrientedAnalysis)/OOD(Object-OrientedDesign)方法逐渐走向实用。一些专家按照面向对象的思想,对系统分析和系统设计工作的步骤、方法、图形工具等进行了研究,提出了许多不同的实施方案。其中影响较大的有P.Coad和E.Yourdon的方法、G.Booch的方法和J.Rambough的OMT方法等,在实践中使用较多。

面向对象技术是近三十年来蓬勃发展起来的并获得广泛应用的一种具有广阔发展前景的技术。

9.1面向对象的概念

要掌握面向对象的技术和方法,我们必须首先明确“对象”和“面向对象”的概念是什么,为什么要讨论面向对象的方法。对于这些问题,有许多不同的看法。Coad和Yourdon给出了一个简洁的定义:

面向对象(Object-Oriented)=对象(Object)+类(Class)+

继承(Inheritance)+通信(Communication)

如果一个软件系统是使用这样4个概念设计和实现的,则将该软件系统称为面向对象的。下面给出每个概念的具体定义。

9.1.1对象

关键词:对象(object),属性(attribute),服务(service),对象标识(objectidentifier)

从一般意义上讲,对象是现实世界中一个实际存在事物,它可以是有形的(比如一辆汽车),也可以是无形(比如一项计划)。对象构成世界的一个独立单位,它具有自己的静态特征和动态特征。静态特征即可用某种数据来描述的特征,动态特征即对象所表现的行为或对象所具有的功能。

现实世界中的任何事物都可以称作对象,它是大量的、无处不在的。不过,人们在开发一个系统时,通常只是在一定的范围(问题域)内考虑和认识与系统目标有关的事物,并用系统中的对象抽象地表示它们。所以面向对象方法在提到“对象”这个术语时,既可能泛指现实世界中的某些事物,也可能专指它们在系统中的抽象表示,即系统中的对象。我们主要对后一种情况讨论对象的概念,其定义是:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成。

属性和服务,是构成对象的两个主要因素,其定义是:属性是用来描述对象静态特征的一个数据项。服务是用来描述对象动态特征(行为)的一个操作序列。

一个对象可以有多项属性和多项服务。一个对象的属性和服务被结合成一个整体,对象的属性值只能由这个对象的服务存取。

在有些文献中把对象标识(OID)列为对象的另一要素。对象标识也就是对象的名字,有“外部标识”和“内部标识”之分。前者供对象的定义者或使用者用,后者为系统内部惟一的识别对象。

另外需要说明以下两点:第一点是,对象只描述客观事物本质的与系统目标有关的特征,而不考虑那些非本质的与系统目标无关的特征。这就是说,对象是对事物的抽象描述。第二点是,对象是属性和服务的结合体。二者是不可分的。而且对象的属性值只能由这个对象的服务来读取和修改,这就是后文将讲述的封装概念。

根据以上两点,也可以给出如下对象定义:对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用,它是一组属性和有权对这些属性进行操作的一组服务的封装体。

系统中

文档评论(0)

我的文档我做主 + 关注
实名认证
文档贡献者

有偿文档使用

1亿VIP精品文档

相关文档