《软件工程第章面向对象的概念与模型.ppt》由会员分享,可在线阅读,更多相关《软件工程第章面向对象的概念与模型.ppt(63页珍藏版)》请在金锄头文库上搜索。
1、第三篇第三篇 面向对象方法学面向对象方法学Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第第6章章 面向对象的概念与模型面向对象的概念与模型退出退出6.1 面向对象方法学概述面向对象方法学概述6.2 面向对象方法学的主要优点面向对象方法学的主要优点6.3 面向对象的概念面向对象的概念6.4 面向对象建模面向对象建模6.5 对象模型对象模型6.6 动态模型动态模型6.7 功能模型功能模型6.8 小结小结Evaluat
2、ion only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象面向对象(Object-Oriented,(Object-Oriented,缩写为缩写为OO)OO)方法学的出发点和基方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题
3、空间使描述问题的问题空间( (也称为问题域也称为问题域) )与实现解法的解空间与实现解法的解空间( (也称也称为求解域为求解域) )在结构上尽可能一致。在结构上尽可能一致。 6.1 6.1 面向对象方法学概述面向对象方法学概述Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 通常,客观世界中的实体既具有静态的属性又具通常,客观世界中的实体既具有静态的属性又具有动态的行为。然而传统语言提供的解空间对象实质有动态的行为。
4、然而传统语言提供的解空间对象实质上却仅是描述实体属性的数据,必须在程序中从外部上却仅是描述实体属性的数据,必须在程序中从外部对它施加操作,才能模拟它的行为。对它施加操作,才能模拟它的行为。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 众所周知,软件系统本质上是信息处理系统。数众所周知,软件系统本质上是信息处理系统。数据和处理原本是密切相关的,把数据和处理人为地分据和处理原本是密切相关的,把数据和处理人为地分离成两
5、个独立的部分,会增加软件开发的难度。与传离成两个独立的部分,会增加软件开发的难度。与传统方法相反,面向对象方法是一种以数据或信息为主统方法相反,面向对象方法是一种以数据或信息为主线,把数据和处理相结合的方法。面向对象方法把对线,把数据和处理相结合的方法。面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成象作为由数据及可以施加在这些数据上的操作所构成的统一体。对象与传统的数据有本质区别,它不是被的统一体。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,主体。
6、必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能从外界直接对它的私有数处理它的私有数据,而不能从外界直接对它的私有数据进行操作。据进行操作。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象方法学所提供的面向对象方法学所提供的“对象对象”概念,是让软概念,是让软件开发者自己定义或选取解空间对象,然后把软件系件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该
7、使这些统作为一系列离散的解空间对象的集合。应该使这些解空间对象与问题空间对象尽可能一致。这些解空间解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题对象彼此间通过发送消息而相互作用,从而得出问题的解。也就是说,面向对象方法是一种新的思维方法,的解。也就是说,面向对象方法是一种新的思维方法,它不是把程序看作是工作在数据上的一系列过程或函它不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。每个对象就像一个微型程序,有自己的对象的集合。每个对象就像一个微型程序
8、,有自己的数据、操作、功能和目的。这样做就向着减少语义的数据、操作、功能和目的。这样做就向着减少语义断层的方向迈了一大步,在许多系统中解空间对象都断层的方向迈了一大步,在许多系统中解空间对象都可以直接模拟问题空间的对象,解空间与问题空间的可以直接模拟问题空间的对象,解空间与问题空间的结构十分一致,因此,这样的程序易于理解和维护。结构十分一致,因此,这样的程序易于理解和维护。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Lt
9、d. 概括地说,面向对象方法具有下述四个要点。概括地说,面向对象方法具有下述四个要点。 认为客观世界是由各种对象组成的,任何事物认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。软件对象由比较简单的对象组合而
10、成。 由此可见,面向对象方法用对象分解取代了传统由此可见,面向对象方法用对象分解取代了传统方法的功能分解。方法的功能分解。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 把所有对象都划分成各种对象类把所有对象都划分成各种对象类( (简称为类,简称为类,Class)Class),每个对象类都定义了一组数据和一组方法。,每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。数据用于表示对象
11、的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。例如,荧光屏上不同以便描述该对象独特的属性值。例如,荧光屏上不同位置显示的半径不同的几个圆,虽然都是位置显示的半径不同的几个圆,虽然都是CircleCircle类的类的对象,但是,各自都有自己专用的数据,以便记录各对象,但是,各自都有自己专用的数据,以便记录各自的圆心位置、半径等等。自的圆心位置、半径等等。 类中定义的方法,是允许施加于该类对象上的操类中定
12、义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。复制操作的代码。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 按照子类按照子类( (或称为派生类或称为派生类) )与父类与父类( (或称为基类或称为基类) )的关系,把若干个对象类组成一个层次结构的系统的关系,把若干个对象类组成一个层次结构的系统( (也也称为类等级称为类
13、等级) )。在这种层次结构中,通常下层的派生类。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性具有和上层的基类相同的特性( (包括数据和方法包括数据和方法) ),这,这种现象称为继承种现象称为继承(Inheritance)(Inheritance)。但是,如果在派生类。但是,如果在派生类中对某些特性又做了重新描述,则在派生类中的这些中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准,也就是说,低层的特性将屏蔽特性将以新描述为准,也就是说,低层的特性将屏蔽高层的同名特性。高层的同名特性。 对象彼此之间仅能通过传递消息互相联系。对象彼此之间仅能通过传递消息互相联系。Ev
14、aluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 对象与传统的数据有本质区别,它不是被动地等对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。数据,而不能从外界直接对它的私有数据进行操作。也就是说,一切
15、局部于该对象的私有信息,都被封装也就是说,一切局部于该对象的私有信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,更不能直接使用,这子中一样,在外界是看不见的,更不能直接使用,这就是就是“封装性封装性”。 综上所述,面向对象的方法学可以用下列方程来综上所述,面向对象的方法学可以用下列方程来概括:概括: OO=Objects+Classes+Inheritance+Communication OO=Objects+Classes+Inheritance+Communication with messageswit
16、h messages 也就是说,面向对象就是既使用对象又使用类和继承也就是说,面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通等机制,而且对象之间仅能通过传递消息实现彼此通信。信。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.2面向对象方法学的主要优点面向对象方法学的主要优点 1. 1. 与人类习惯的思维方法一致与人类习惯的思维方法一致 面向对象的软件技术以对象面向对象的软件技
17、术以对象(Object)(Object)为核心,用为核心,用这种技术开发出的软件系统由对象组成。对象是对现这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作态属性的数据,以及可以对这些数据施加的操作( (表示表示对象的动态行为对象的动态行为) ),封装在一起所构成的统一体。对象,封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。事物彼此之间的联系。Evaluation onl
18、y.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象的设计方法与传统的面向过程的方法有面向对象的设计方法与传统的面向过程的方法有本质不同,这种方法的基本原理是,使用现实世界的本质不同,这种方法的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的
19、概念去思软件开发的绝大部分过程中都用应用领域的概念去思考。在面向对象的设计方法中,计算机的观点是不重考。在面向对象的设计方法中,计算机的观点是不重要的,现实世界的模型才是最重要的。面向对象的软要的,现实世界的模型才是最重要的。面向对象的软件开发过程从始至终都围绕着建立问题领域的对象模件开发过程从始至终都围绕着建立问题领域的对象模型来进行:对问题领域进行自然的分解,确定需要使型来进行:对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级,在对象之间传递用的对象和类,建立适当的类等级,在对象之间传递消息实现必要的联系,从而按照人们习惯的思维方式消息实现必要的联系,从而按照人们习惯的思
20、维方式建立起问题领域的模型,模拟客观世界。建立起问题领域的模型,模拟客观世界。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 2. 2. 稳定性好稳定性好 面向对象方法基于构造问题领域的对象模型,以面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的拟问题领域中的实体,以对象间的联系刻画实
21、体间的联系。因为面向对象的软件系统的结构是根据问题领联系。因为面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当对系统的功能需求变化时并不会能的分解,所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性引起软件结构的整体变化,往往仅需要作一些局部性的修改。例如,从已有类派生出一些新的子类以实现的修改。例如,从已有类派生出一些新的子类以实现功能扩充或修改,增加或删除某些对象等。总之,由功能扩充或修改,增加或删除某些对象等。总之,由于现实世界中的实体是相对稳定的,因此,以对
22、象为于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。中心构造的软件系统也是比较稳定的。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 3. 3. 可重用性好可重用性好 事实上,离开了操作数据便无法处理,而脱离了事实上,离开了操作数据便无法处理,而脱离了数据的操作也是毫无意义的,我们应该对数据和操作数据的操作也是毫无意义的,我们应该对数据和操作同样重视。在面向对象方法所使用的对象中,数
23、据和同样重视。在面向对象方法所使用的对象中,数据和操作正是作为平等伙伴出现的。因此,对象具有很强操作正是作为平等伙伴出现的。因此,对象具有很强的自含性,此外,对象所固有的封装性和信息隐藏机的自含性,此外,对象所固有的封装性和信息隐藏机理,使得对象的内部实现与外界隔离,具有较强的独理,使得对象的内部实现与外界隔离,具有较强的独立性。由此可见,对象类提供了比较理想的模块化机立性。由此可见,对象类提供了比较理想的模块化机制和比较理想的可重用的软件成分。制和比较理想的可重用的软件成分。Evaluation only.Created with Aspose.Slides for .NET 3.5 Cli
24、ent Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象的软件技术在利用可重用的软件成分构面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。有两种方法可造新的软件系统时,有很大的灵活性。有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。继承性机制使得子类不仅可以重用当前需要的新类。继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且
25、可以在父类代码其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。由于可以像使用集成电路有类的使用。由于可以像使用集成电路(IC)(IC)构造计算构造计算机硬件那样,比较方便地重用对象类来构造软件系统,机硬件那样,比较方便地重用对象类来构造软件系统,因此,有人把对象类称为因此,有人把对象类称为“软件软件ICIC”。 面向对象的软件技术所实现的可重用性是自然的面向对象的软件技术所实现的可重用性是自然的和准确的,在软件重用技术中它是最成功的一个。和准确的,在软件重用技术中它是最成功的一个。Evalua
26、tion only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 4. 4. 较易开发大型软件产品较易开发大型软件产品 当开发大型软件产品时,组织开发人员的方法不当开发大型软件产品时,组织开发人员的方法不恰当往往是出现问题的主要原因。用面向对象范型开恰当往往是出现问题的主要原因。用面向对象范型开发软件时,可以把一个大型产品看作是一系列本质上发软件时,可以把一个大型产品看作是一系列本质上相互独立的小产品来处理,这就不仅降低了开发的技相互独立的小产
27、品来处理,这就不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易多了。术难度,而且也使得对开发工作的管理变得容易多了。这就是为什么对于大型软件产品来说,面向对象范型这就是为什么对于大型软件产品来说,面向对象范型优于结构化范型的原因之一。许多软件开发公司的经优于结构化范型的原因之一。许多软件开发公司的经验都表明,当把面向对象技术用于大型软件开发时,验都表明,当把面向对象技术用于大型软件开发时,软件成本明显地降低了,软件的整体质量也提高了。软件成本明显地降低了,软件的整体质量也提高了。Evaluation only.Created with Aspose.Slides for .NET
28、3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 5. 5. 可维护性好可维护性好 由于下述因素的存在,使得用面向对象方法所开由于下述因素的存在,使得用面向对象方法所开发的软件可维护性好。发的软件可维护性好。 面向对象的软件稳定性比较好。面向对象的软件稳定性比较好。 面向对象的软件比较容易修改。面向对象的软件比较容易修改。 面向对象的软件比较容易理解。面向对象的软件比较容易理解。 易于测试和调试。易于测试和调试。Evaluation only.Created with Aspose.Slides for .NET 3.
29、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.3 面向对象的概念面向对象的概念 6.3.1 6.3.1 对象对象 在应用领域中有意义的、与所要解决的问题有关在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象系的任何事物都可以作为对象(Object)(Object),它既可以是,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、
30、一本图书、贷款一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息并具与它进行交互的能力。系统保存有关它的信息并具与它进行交互的能力。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.1 对象的形象表示Evaluati
31、on only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 1. 1. 对象的形象表示对象的形象表示 2. 2. 对象的定义对象的定义 (1) (1) 定义定义1 1 对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。 这个定义主要是从面向对象程序设计的角度看这个定义主要是从面向对象程序设计的角度看“对象对象”。 (2) (2) 定义定义2 2 对象是对问题域中某个东西的抽象,这种抽象反对象是对问题域中某个东西的抽象,这
32、种抽象反映了系统保存有关这个东西的信息或与它交互的能力。映了系统保存有关这个东西的信息或与它交互的能力。也就是说,对象是对属性值和操作的封装。也就是说,对象是对属性值和操作的封装。 这个定义着重从信息模拟的角度看待这个定义着重从信息模拟的角度看待“对象对象”。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3) (3) 定义定义3 3对象对象=ID=MI其中,其中,IDID是对象的标识或名字是对象的标识或名字MSM
33、S是对象中的操作集合是对象中的操作集合DSDS是对象的数据结构是对象的数据结构MIMI是对象受理的消息名集合是对象受理的消息名集合( (即对外接口即对外接口) )这个定义是一个形式化的定义。这个定义是一个形式化的定义。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 总之,对象是封装了数据结构及可以施加在这些总之,对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一数据结构上的操作的封装
34、体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务地标识它的名字,而且向外界提供一组服务( (即公有的即公有的操作操作) )。对象中的数据表示对象的状态,一个对象的状。对象中的数据表示对象的状态,一个对象的状态只能由该对象的操作来改变。每当需要改变对象的态只能由该对象的操作来改变。每当需要改变对象的状态时,只能由其他对象向该对象发送消息。对象响状态时,只能由其他对象向该对象发送消息。对象响应消息时,按照消息模式找出与之匹配的方法,并执应消息时,按照消息模式找出与之匹配的方法,并执行该方法。行该方法。 从动态角度或对象的实现机制来看,对象是一台从动态角度或对象的实现机制来看,对象是一
35、台自动机。具有内部状态自动机。具有内部状态S S,操作,操作f fi i(i=1,2,(i=1,2,n),n),且与,且与操作操作f fi i对应的状态转换函数为对应的状态转换函数为g gi i(i=1,2,(i=1,2,n),n)的一个对的一个对象,可以用图象,可以用图6.26.2所示的自动机来模拟。所示的自动机来模拟。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.2 用自动机模拟对象Evaluation
36、only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3. 3. 对象的特点对象的特点 以数据为中心。以数据为中心。 对象是主动的。对象是主动的。 实现了数据封装。实现了数据封装。 本质上具有并行性。本质上具有并行性。 模块独立性好。模块独立性好。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 A
37、spose Pty Ltd. 6.3.2 6.3.2 其他概念其他概念 1. 类类(Class) 在面向对象的软件技术中,在面向对象的软件技术中,“类类”就是对具有相就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的通常在这种描述中也包括对怎样创建该类的新对象的说明。说明。 2. 2. 实例实例(Instance)(Instance) 实例就是由某个特定的类所描述的一个具体的对实例就是由某个特定的
38、类所描述的一个具体的对象。象。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 3. 3. 消息消息(Message)(Message) 消息,就是要求某个对象执行在定义它的那个类消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由中所定义的某个操作的规格说明。通常,一个消息由下述三部分组成:下述三部分组成: 接收消息的对象;接收消息的对象; 消息选择符消息选择符( (也称为消息名
39、也称为消息名) ); 零个或多个变元。零个或多个变元。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 4. 4. 方法方法(Method)(Method) 方法,就是对象所能执行的操作,也就是类中所方法,就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算定义的服务。方法描述了对象执行操作的算法,响应法,响应消息的方法。消息的方法。 5. 5. 属性属性(Attribute)(Attribut
40、e) 属性,就是类中所定义的数据,它是对客观世界属性,就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都实体所具有的性质的抽象。类的每个实例都有自己特有自己特有的属性值。有的属性值。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6. 6. 封装封装(Encapsulation)(Encapsulation) 从字面上理解,所谓封装就是把某个事物包起来,从字面上理解,所谓封装就是把某个事物包
41、起来,使外界不知道该事物的具体内容。使外界不知道该事物的具体内容。 综上所述,具有封装性的条件如下。综上所述,具有封装性的条件如下。 有一个清晰的边界。所有私有数据和实现操作有一个清晰的边界。所有私有数据和实现操作的代码都被封装在这个边界内,从外面看不见更不能的代码都被封装在这个边界内,从外面看不见更不能直接访问。直接访问。 有确定的接口有确定的接口( (即协议即协议) )。这些接口就是对象可。这些接口就是对象可以接受的消息,只能通过向对象发送消息来使用它。以接受的消息,只能通过向对象发送消息来使用它。 受保护的内部实现。实现对象功能的细节受保护的内部实现。实现对象功能的细节( (私私有数据和
42、代码有数据和代码) )不能在定义该对象的类的范围外进行访不能在定义该对象的类的范围外进行访问。问。封装性也就是信息隐藏,通过封装把对象的实现细节封装性也就是信息隐藏,通过封装把对象的实现细节对外界隐藏起来了。对外界隐藏起来了。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 7. 7. 继承继承(Inheritance)(Inheritance) 广义地说,继承是指能够直接获得已有的性质和广义地说,继承是指能够直接获
43、得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法中,继承是子类自动地共享基类中定义的数据和方法的机制。的机制。 当一个类只允许有一个父类时,也就是说,当类当一个类只允许有一个父类时,也就是说,当类等级为树形结构时,类的继承是单继承;当等级为树形结构时,类的继承是单继承;当允许一个允许一个类有多个父类时,类的继承是多重继承。类有多个父类时,类的继承是多重继承。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profi
44、le 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.3 实现继承机制的原理Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 8. 8. 多态性多态性(Polymorphism)(Polymorphism) 多态性一词来源于希腊语,意思是多态性一词来源于希腊语,意思是“有许多形态有许多形态”。 在面向对象的软件技术中,多态性是指子类对象在面向对象的软件技术中,多态性是指子类
45、对象可以像父类对象那样使用,同样的消息既可以发送给可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。也就是说,在类等父类对象也可以发送给子类对象。也就是说,在类等级的不同层次中可以共享级的不同层次中可以共享( (公用公用) )一个行为一个行为( (方法方法) )的名的名字,然而不同层次中的每个类却各自按自己的需要来字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。当对象接收到发送给它的消息时,根实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算据该对象所属于的类动态选用在该类中定义的实现算法。法。Evaluation
46、 only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 9. 9. 重载重载(Overloading)(Overloading) 有两种重载:函数重载是指在同一作用域内的若有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或被操作数的类操
47、作数上面。当然,当参数特征不同或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同型不同时,实现函数的算法或运算符的语义是不相同的。的。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.4 面向对象建模面向对象建模 为了更好地理解问题,人们常常采用建立问题模为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物作型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象,是对
48、事物的一种无歧义的书面描述。出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可更进一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。以把知识规范地表示出来。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 As
49、pose Pty Ltd. 用面向对象方法开发软件,通常需要建立三种形用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是描述系统数据结构的对象模型,式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能描述系统控制结构的动态模型和描述系统功能的功能模型。这三种模型都涉及到数据、控制和操作等共同模型。这三种模型都涉及到数据、控制和操作等共同的概念,只不过每种模型描述的侧重点不同。这三种的概念,只不过每种模型描述的侧重点不同。这三种模型从三个不同但又密切相关的角度模拟目标系统,模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了
50、系统的实质性内容,综合它们各自从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的需求。一个典型的起来则全面地反映了对目标系统的需求。一个典型的软件系统组合了上述三方面内容:它使用数据结构软件系统组合了上述三方面内容:它使用数据结构( (对对象模型象模型) ),执行操作,执行操作( (动态模型动态模型) ),并且完成数据值的变,并且完成数据值的变化化( (功能模型功能模型) )。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 As
51、pose Pty Ltd.6.5 对象模型对象模型 对象模型表示静态的、结构化的系统的对象模型表示静态的、结构化的系统的“数据数据”性质。它是对模拟客观世界实体的对象以及性质。它是对模拟客观世界实体的对象以及对象彼此对象彼此间的关系的映射,描述了系统的静态结构。间的关系的映射,描述了系统的静态结构。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6.5.1 6.5.1 表示类表示类& &对象的图形符号对象的图形符号
52、 1. 1. 类类& &对象对象 “类类& &对象对象”是一个专用术语,它的含义是是一个专用术语,它的含义是“一个类及属于该类的对象一个类及属于该类的对象”。图。图6.4(a)6.4(a)是表示类是表示类& &对象的图形符号,图对象的图形符号,图6.4(b)6.4(b)是表示类的图形符号。是表示类的图形符号。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.4 表示符号Evaluation only.Create
53、d with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 2. 2. 命名命名 类名是一类对象的名字。命名是否恰当对系统的类名是一类对象的名字。命名是否恰当对系统的可理解性影响相当大,因此,命名时应该遵守以下几可理解性影响相当大,因此,命名时应该遵守以下几条准则。条准则。 (1) (1) 使用标准术语使用标准术语 (2) (2) 使用具有确切含义的名词使用具有确切含义的名词 (3) (3) 必要时用名词短语作名字必要时用名词短语作名字 总总之之,名名字字应应该该是是富
54、富于于描描述述性性的的、简简洁洁的的而而且且无无二二义性的。义性的。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6.5.2 6.5.2 表示结构的图形符号表示结构的图形符号 在面向对象分析和面向对象设计中,结构表示了在面向对象分析和面向对象设计中,结构表示了问题域中的复杂关系,是对客观世界实体相互间关系问题域中的复杂关系,是对客观世界实体相互间关系的抽象。结构与目标系统的任务直接相关,也就是说,的抽象。结构与目
55、标系统的任务直接相关,也就是说,目标系统的任务决定了系统的结构。类目标系统的任务决定了系统的结构。类& &对象间的对象间的关系可以概括为归纳关系、组合关系及关联关系。关系可以概括为归纳关系、组合关系及关联关系。 1. 1. 归纳关系归纳关系 归纳关系就是归纳关系就是“一般一般特珠特珠”关系,它反映了一关系,它反映了一个类与若干个互不相容的子类之间的分类关系。高层个类与若干个互不相容的子类之间的分类关系。高层类类( (即基类即基类) )说明一般性的属性,低层类说明一般性的属性,低层类( (即派生类即派生类) )说说明特殊属性。低层类对象明特殊属性。低层类对象“即是即是(ISA)(ISA)”某种特
56、殊的高某种特殊的高层类对象,它继承了在高层类中定义的属性和服务。层类对象,它继承了在高层类中定义的属性和服务。 图图6.5是表示归纳关系的图形符号是表示归纳关系的图形符号。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 2. 2. 组合关系组合关系 组合关系就是组合关系就是“整体整体部分部分”关系,它反映了对关系,它反映了对象之间的构成关系。组合关系也称为聚集关系。象之间的构成关系。组合关系也称为聚集关系。 图图6
57、.6是表示组合关系的图形符号。是表示组合关系的图形符号。 组合关系具有的最重要的性质是传递性。也就是组合关系具有的最重要的性质是传递性。也就是说,如果说,如果A A是是B B的一部分,的一部分,B B是是C C的一部分,则的一部分,则A A也是也是C C的的一部分。一部分。 当组合关系有多个层次时,可以用一棵简单的聚当组合关系有多个层次时,可以用一棵简单的聚集树来表示它。聚集树是多级组合关系的一集树来表示它。聚集树是多级组合关系的一种简化表种简化表示形式。示形式。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro
58、file 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.5 表示归纳关系的Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.6 表示组合关系的Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.
59、图6.7 描绘教材结构的聚集树Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 3. 3. 关联关系关联关系 关联关系反映对象之间相互依赖、相互作用的关关联关系反映对象之间相互依赖、相互作用的关系。通常把两类对象之间的二元关系再细分为一对一系。通常把两类对象之间的二元关系再细分为一对一(11)(11)、一对多、一对多(1M)(1M)和多对多和多对多(MN)(MN)等三种等三种基本类基本类型,类型的划分依据参与关联的对
60、象的数目。型,类型的划分依据参与关联的对象的数目。 (1) (1) 表示符号表示符号 (2) (2) 阶阶 所谓阶就是参与关联的对象的个数。所谓阶就是参与关联的对象的个数。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. (3) (3) 链属性链属性 链属性就是关联链的性质。链属性就是关联链的性质。 (4) (4) 限定限定 一个受限的关联由两个对象及一个限定词组成。一个受限的关联由两个对象及一个限定词组成。可以把限
61、定词看作是一种特殊的链属性。利可以把限定词看作是一种特殊的链属性。利用限定词用限定词通常能有效地减少关联的阶数。通常能有效地减少关联的阶数。 (5) (5) 消息连接消息连接 消息连接的表示符号,是从消息发送者指向消息消息连接的表示符号,是从消息发送者指向消息接收者的箭头线,如图接收者的箭头线,如图6.116.11所示。所示。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.8 教师与属于他的书之间的关联关系Ev
62、aluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.9 链属性的表示方法Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.10 一个受限的关联Evaluation only.Created with Aspose.Slides for .
63、NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.11 消息连接的表示符Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.5.3 6.5.3 对象模型之例对象模型之例Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Cop
64、yright 2004-2011 Aspose Pty Ltd.图6.12 一家公司的对象模型Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.图6.13 与图6.12对应的ER图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.6 动态模
65、型动态模型 动态模型表示瞬时的、行为化的系统的动态模型表示瞬时的、行为化的系统的“控制控制”性质,它规定了对象模型中的对象的合法变化序列。性质,它规定了对象模型中的对象的合法变化序列。 通常,用状态图来描绘对象的状态、触发状态转通常,用状态图来描绘对象的状态、触发状态转换的事件、以及对象的行为换的事件、以及对象的行为( (对事件的响应对事件的响应) )。 每个类的动态行为用一张状态图来描绘,各个类每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动的状态图通过共享事件合并起来,从而构成系统的动态模型。也就是说,动态模型是基于事件共享而互相态模型。也就是说,动
66、态模型是基于事件共享而互相关联的一组状态图的集合。关联的一组状态图的集合。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6.6.1 6.6.1概念概念 1. 1. 事件事件 事件是某个特定时刻所发生的事情,它是对引起事件是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事对象从一种状态转换到另一种状态的现实世界中的事件的抽象。事件没有持续时间,是瞬间完成的。件的抽象。事件没有持续时
67、间,是瞬间完成的。 2. 2. 状态状态 状态就是对象在其生命周期中的某个特定阶段所状态就是对象在其生命周期中的某个特定阶段所具有的行为模式,它是对影响对象行为的属性值的一具有的行为模式,它是对影响对象行为的属性值的一种抽象。种抽象。 状态规定了对象对输入事件的响应方式。状态规定了对象对输入事件的响应方式。 3. 3. 行为行为 所谓行为,是指对象达到某种状态时所做的一系所谓行为,是指对象达到某种状态时所做的一系列处理操作。这些操作是需要耗费时间的。列处理操作。这些操作是需要耗费时间的。Evaluation only.Created with Aspose.Slides for .NET 3.
68、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6.6.2 6.6.2 符号符号 状态图中使用的主要表示符号如下所述:状态图中使用的主要表示符号如下所述: 状态用圆形框或椭圆框表示,框内可标上状态名状态用圆形框或椭圆框表示,框内可标上状态名也可以不给状态起名字,行为在框内用关键字也可以不给状态起名字,行为在框内用关键字do(do(后接后接冒号冒号) )标明。标明。 从一个状态到另一个状态的转换用箭头线表示,从一个状态到另一个状态的转换用箭头线表示,线上标以事件名。必要时可在事件名后面加一个方括线上标以事件名。必要时可在事
69、件名后面加一个方括号,括号内写上状态转换的条件。也就是说,仅当方号,括号内写上状态转换的条件。也就是说,仅当方括号内所列出的条件为真时,括号内所列出的条件为真时,该事件的发生才引起箭该事件的发生才引起箭头所示的状态转换。头所示的状态转换。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.7 功能模型功能模型 功能模型表示变化的系统的功能模型表示变化的系统的“功能功能”性质,它指性质,它指明了系统应该明了系统应该“做
70、什么做什么”,因此更直接地反映了用户,因此更直接地反映了用户对目标系统的需求。对目标系统的需求。 6.7.1 6.7.1 表示方法表示方法 通常,功能模型由一组数据流图组成。通常,功能模型由一组数据流图组成。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 6.7.2 6.7.2 三种模型之间的关系三种模型之间的关系 在面向对象方法学中,对象模型是最基本最重要在面向对象方法学中,对象模型是最基本最重要的,它为其他两种
71、模型奠定了基础,我们依靠对象模的,它为其他两种模型奠定了基础,我们依靠对象模型完成三种模型的集成。型完成三种模型的集成。 下面扼要地叙述三种模型之间的关系。下面扼要地叙述三种模型之间的关系。 针对每个类建立的动态模型,描述了类实例的针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。生命周期或运行周期。 状态转换驱使行为发生,这些行为在数据流图状态转换驱使行为发生,这些行为在数据流图中被映射成处理,它们同时与对象模型中的服务相对中被映射成处理,它们同时与对象模型中的服务相对应。应。Evaluation only.Created with Aspose.Slides for .NET 3
72、.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 功能模型中的处理,对应于对象模型中类功能模型中的处理,对应于对象模型中类& &对象所提供的服务。通常,在顶层数据流图中的处对象所提供的服务。通常,在顶层数据流图中的处理,对应于复杂对象提供的服务;在低层数据流图中理,对应于复杂对象提供的服务;在低层数据流图中的处理,对应于更基本的对象的处理,对应于更基本的对象( (基本对象是复杂对象的基本对象是复杂对象的组成部分组成部分) )的服务。有时一个处理对应多个服务,也有的服务。有时一个处理对应多个服务,也有一个服务对应多个处理的
73、时候。一个服务对应多个处理的时候。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 功能模型中的数据存储,以及数据的源点功能模型中的数据存储,以及数据的源点/ /终终点点( (在功能模型中称为动作对象在功能模型中称为动作对象) ),通常是对象模型中,通常是对象模型中的对象。的对象。 功能模型中的数据流,往往是对象模型中的属功能模型中的数据流,往往是对象模型中的属性值,也可能是整个对象。性值,也可能是整个对象。 功能模
74、型中的处理可能产生动态模型中的事件。功能模型中的处理可能产生动态模型中的事件。 对象模型描述了功能模型中的动作对象、数据对象模型描述了功能模型中的动作对象、数据存储以及数据流的结构。存储以及数据流的结构。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6.8 小结小结 近年来,面向对象方法学日益受到人们的重视,近年来,面向对象方法学日益受到人们的重视,特别是在用这种方法开发大型软件产品时,可以把该特别是在用这种方法开
75、发大型软件产品时,可以把该产品看作是一系列本质上相互独立的小产品,这就不产品看作是一系列本质上相互独立的小产品,这就不仅降低了开发工作的技术难度,而且也使得对开发工仅降低了开发工作的技术难度,而且也使得对开发工作的管理变得容易了。因此,对于大型软件产品来说,作的管理变得容易了。因此,对于大型软件产品来说,面向对象范型明显优于结构化范型。此外,使用面向面向对象范型明显优于结构化范型。此外,使用面向对象范型能够开发出稳定性好、可重用性好和可维护对象范型能够开发出稳定性好、可重用性好和可维护性好的软件,这些都是面向对象方法学的突出优点。性好的软件,这些都是面向对象方法学的突出优点。Evaluatio
76、n only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象方法学比较自然地模拟了人类认识客观面向对象方法学比较自然地模拟了人类认识客观世界的思维方式,它所追求的目标和遵循的基本原则,世界的思维方式,它所追求的目标和遵循的基本原则,就是使描述问题的问题空间和在计算机中解决问题的就是使描述问题的问题空间和在计算机中解决问题的解空间,在结构上尽可能一致。解空间,在结构上尽可能一致。Evaluation only.Created with A
77、spose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 面向对象方法学认为,客观世界由对象组成。任面向对象方法学认为,客观世界由对象组成。任何事物都是对象,每个对象都有自己的内部状态和运何事物都是对象,每个对象都有自己的内部状态和运动规律,不同对象彼此间通过消息相互作用、相互联动规律,不同对象彼此间通过消息相互作用、相互联系,从而构成了我们所要分析和构造的系统。系统中系,从而构成了我们所要分析和构造的系统。系统中每个对象都属于一个特定的对象类。类是对具有相同每个对象都属于一个特定的
78、对象类。类是对具有相同属性和行为的一组相似对象的定义。应该按照子类、属性和行为的一组相似对象的定义。应该按照子类、父类的关系,把众多的类进一步组织成一个层次系统,父类的关系,把众多的类进一步组织成一个层次系统,这样做了之后,如果不加特殊描述,则处于下一层次这样做了之后,如果不加特殊描述,则处于下一层次上的对象可以自动继承位于上一层次的对象的属性和上的对象可以自动继承位于上一层次的对象的属性和行为。行为。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-201
79、1 Aspose Pty Ltd. 用面向对象观点建立系统的模型,能够促进和加用面向对象观点建立系统的模型,能够促进和加深对系统的理解,有助于开发出更容易理解、更容易深对系统的理解,有助于开发出更容易理解、更容易维护的软件。通常,人们从三个互不相同然而又密切维护的软件。通常,人们从三个互不相同然而又密切相关的角度建立起三种不同的模型。它们分别是描述相关的角度建立起三种不同的模型。它们分别是描述系统静态结构的对象模型、描述系统控制结构的动态系统静态结构的对象模型、描述系统控制结构的动态模型、以及描述系统计算结构的功能模型。其中,对模型、以及描述系统计算结构的功能模型。其中,对象模型是最基本、最核
80、心、最重要的。象模型是最基本、最核心、最重要的。 本章所讲述的面向对象方法及定义的概念和表示本章所讲述的面向对象方法及定义的概念和表示符号,可以适用于整个软件开发过程。软件开发人员符号,可以适用于整个软件开发过程。软件开发人员无须像用结构分析、设计技术那样,在开发过程的不无须像用结构分析、设计技术那样,在开发过程的不同阶段转换概念和表示符号。实际上,用面向对象方同阶段转换概念和表示符号。实际上,用面向对象方法开发软件时,阶段的划分是十分模糊的,通常在分法开发软件时,阶段的划分是十分模糊的,通常在分析、设计和实现等阶段间多次迭代。析、设计和实现等阶段间多次迭代。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.