欢迎来到天天文库
浏览记录
ID:34450474
大小:242.39 KB
页数:14页
时间:2019-03-06
《西安工业大学《软件工程》第九章 面向对象技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章面向对象技术在软件开发与设计中,对一个系统的认识是一个渐进的过程,是在继承了以往的有关知识的基础上,多次迭代往复并逐步深化而形成的。在这种认识的深化过程中,既包括了从一般到特殊的演绎,也包括了从特殊到一般的归纳。而目前用于分析、设计和实现一个系统的过程和方法大部分是瀑布型的,即后一步是为了实现前一步所提出的需求,或者是进一步发展前一步所得出的结果。因此,当越接近系统设计或实现的后期,对系统设计或实现的前期的结果作修改就越困难。同时也只有在系统设计的后期才能发现在前期所形成的一些差错。而且当这个系统越大
2、、问题越复杂时,由于这种对系统的认识过程和对系统的设计或实现过程不一致所引起的困难就越大。为了解决上述这个问题,就应使分析、设计和实现一个系统的方法尽可能地接近认识一个系统的方法,换言之,就是应使描述问题的问题空间和解决问题的方法空间在结构上尽可能的一致,也就是使分析、设计和实现系统的方法学原理与认识客观世界的过程尽可能的一致。这就是面向对象方法学的出发点和所追求的基本原则。面向对象方法的形成最初是从面向对象程序设计语言开始的,随之才逐渐形成面向对象分析和设计方法。面向对象方法的出现以20世纪60年代末挪威
3、奥斯陆大学和挪威计算中心共同研制的SIMULA语言为标志,面向对象方法的基本要点首次在SIMULA语言中得到了表达和实现。90年代以后,OOA(Object-OrientedAnalysis)/OOD(Object-OrientedDesign)方法逐渐走向实用。一些专家按照面向对象的思想,对系统分析和系统设计工作的步骤、方法、图形工具等进行了研究,提出了许多不同的实施方案。其中影响较大的有P.Coad和E.Yourdon的方法、G.Booch的方法和J.Rambough的OMT方法等,在实践中使用较多。面
4、向对象技术是近三十年来蓬勃发展起来的并获得广泛应用的一种具有广阔发展前景的技术。9.1面向对象的概念要掌握面向对象的技术和方法,我们必须首先明确“对象”和“面向对象”的概念是什么,为什么要讨论面向对象的方法。对于这些问题,有许多不同的看法。Coad和Yourdon给出了一个简洁的定义:面向对象(Object-Oriented)=对象(Object)+类(Class)+继承(Inheritance)+通信(Communication)如果一个软件系统是使用这样4个概念设计和实现的,则将该软件系统称为面向对象的
5、。下面给出每个概念的具体定义。9.1.1对象关键词:对象(object),属性(attribute),服务(service),对象标识(objectidentifier)从一般意义上讲,对象是现实世界中一个实际存在事物,它可以是有形的(比如一辆汽车),也可以是无形(比如一项计划)。对象构成世界的一个独立单位,它具有自己的静态特征和动态特征。静态特征即可用某种数据来描述的特征,动态特征即对象所表现的行为或对象所具有的功能。现实世界中的任何事物都可以称作对象,它是大量的、无处不在的。不过,人们在开发一个系统时,
6、通常只是在一定的范围(问题域)内考虑和认识与系统目标有关的事物,并用系统中的对象抽象地表示它们。所以面向对象方法在提到“对象”这个术语时,既可能泛指现实世界中的某些事物,也可能专指它们在系统中的抽象表示,即系统中的对象。我们主要对后一种情况讨论对象的概念,其定义是:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成。属性和服务,是构成对象的两个主要因素,其定义是:属性是用来描述对象静态特征的一个数据项。服务是用来描述对象动态特征(行为)的
7、一个操作序列。一个对象可以有多项属性和多项服务。一个对象的属性和服务被结合成一个整体,对象的属性值只能由这个对象的服务存取。在有些文献中把对象标识(OID)列为对象的另一要素。对象标识也就是对象的名字,有“外部标识”和“内部标识”之分。前者供对象的定义者或使用者用,后者为系统内部惟一的识别对象。另外需要说明以下两点:第一点是,对象只描述客观事物本质的与系统目标有关的特征,而不考虑那些非本质的与系统目标无关的特征。这就是说,对象是对事物的抽象描述。第二点是,对象是属性和服务的结合体。二者是不可分的。而且对象的
8、属性值只能由这个对象的服务来读取和修改,这就是后文将讲述的封装概念。根据以上两点,也可以给出如下对象定义:对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用,它是一组属性和有权对这些属性进行操作的一组服务的封装体。系统中的一个对象,在软件生命周期的各个阶段可能有不同的表示形式。例如,在分析与设计阶段是用某种OOD/OOA方法所提供的表示法给出比较粗略的定义,而在编程阶段则要用
此文档下载收益归作者所有