面向对象开发方法.ppt
《面向对象开发方法.ppt》由会员分享,可在线阅读,更多相关《面向对象开发方法.ppt(146页珍藏版)》请在三一办公上搜索。
1、信息系统分析、设计与开发方法,第3章 面向对象开发方法,3.1 面向对象方法的基本含义 3.2 面向对象的基本概念 3.3 面向对象方法的特点 3.4 面向对象方法的优点3.5 典型的面向对象开发方法,目录,面向对象方法(Object Oriented Method)是一种把面向对象的思想应用于软件开发法过程,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。定义一:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。定义二:面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(系统责任)的方法。面向对象的
2、分析过程就是认识客观世界的过程。,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,3.1.1 面向对象方法的基本含义,面向对象本质内涵面向对象的思想以对象为基础,辩证唯物主义以物质为基础。让我们通过对两者基本思想的类比来加深对面向对象本质内涵的理解。辩证唯物主义认为世界是物质的,物质是运动的,物质是普遍联系的,物质具有特殊性和普遍性。物质既有静态的一面又有动态的一面,外因通过内因作用于物质。,3.1 面向对象方法的基本含义,面向对象的思想 问题域是由对象构成的,每个对象拥有各自的属性和方法,属性用于描述对象的物理特征,而方法用于描述对象的行为,对象是属性和行为的统一体。从对
3、象出发构造软件系统。强调直接以问题域中的对象为中心来认识问题和解决问题,软件系统对象是问题域对象的抽象。,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,软件系统处理的基本单元是类,类是具有相同属性和方法的对象集合。从软件系统对象到类是一个抽象的过程,符合人们通常的思维方式。软件系统中类的实例化对象可以直接映射到问题域中的对象,1.面向对象的本质内涵及基本概念,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,1.1 面向对象的本质内涵(4),1.面向对象的本质内涵及基本概念,问题域对象,系统责任对象,对象类,抽象,抽象,软件系统,类的实例化,抽象与实例化
4、,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,消息、接口、对象,1.1 面向对象的本质内涵(5),1.面向对象的本质内涵及基本概念,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,1.面向对象的本质内涵及基本概念,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,面向对象方法的基本思想 尽可能地运用人类的自然思维方式来建立问题空间的模型,构造尽可能直观、自然地表达求解方法的软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,对象(Object)就是客观实体的抽象。面向对象方法将属性和方法放在一起,作为一个相互依存、不可分割的
5、整体来处理。,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,面向对象方法的基本观点如下:客观世界是由各种各样的对象组成的。任何客观的事物或实体都是对象,每种对象有自己的内部状态和运动规律,复杂的对象可以由简单的对象组成。可以用对象和消息来表示事物及事物之间的相互联系。具有相同的内部状态和运动规律的对象可以抽象为一个类(Class),对象是类的一个实例。从一个类可以产生许多对象。类可以派生出子类,子类继承父类的全部特征,又可以有自己的新特征。类和继承作为描述人类一般思维方式的范式,继承可以表达类与类之间的层次关系。对象之间通过消息传递互相联系。类具有封装性,它的状态和操作等
6、对于外界是不可见的,外界只能通过消息请求进行某些操作,或请求提供所需的服务。,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,特点 特点1:认为客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象都属于某个对象“类”。复杂的对象可以是由相对比较简单的对象以某种方式而构成的。,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,特点2:通过类比,发现对象间的相似性,即对象间的共同属性和行为,这就是构成对象类的依据。特点3:对象间的相互联系是通过传递“消息”来完成的,消息就是通知对象去完成一个允许作用于该对象的操
7、作。,面向对象=对象+类+继承+消息,3.1.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,3.1.2 面向对象方法和结构化方法的比较,3.1 面向对象方法的基本含义,3.1.2 面向对象方法和结构化方法的比较,3.1 面向对象方法的基本含义,3.1.2 面向对象方法和结构化方法的比较,3.1 面向对象方法的基本含义,对象的基本概念对象是建立面向对象系统所依赖的基本单元。在现实世界中,可以将任何客观存在的事物看作一个对象,如一个人、一辆汽车、一张光盘,一台电脑,甚至一个星球。,现实世界中的对象,对象的基本概念,3.2 面向对象的基本概念,对象的属性部分又称为数据部分,用来描述它的
8、某些特征,对象的方法部分又称为程序部分,通常是一段程序代码,定义了一个操作,每个操作决定对象的一种功能或行为。,3.2.1 对象的基本概念,3.2 面向对象的基本概念,汽车对象的属性和方法,类的基本概念类是一组具有相同属性和相同操作的对象的集合。类看作是对象的模板(Template),抽象地描述了属于该类的全部对象共有的属性和方法。类与对象的关系是抽象与具体的关系,类是多个对象的综合抽象,对象是类的个体实例。,学生类,3.2.2 类的基本概念,3.2 面向对象的基本概念,消息传递对象与对象之间并不是彼此孤立的,它们之间存在联系,在面向对象的系统中,对象之间的联系是通过消息传递进行的。消息是对象
9、之间相互请求和相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。对象内有属性和方法,外部的对象向该对象提出服务请求,可以称为向该对象发送信息。通过发送消息实现对对象的操纵。,3.2.3 消息传递,3.2 面向对象的基本概念,面向对象的方法特点,3.3 面向对象方法的特点,面向对象基本特征,继承,封装,多态,继承(泛化),组合(聚合),覆盖,重载,抽象抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象包括两个方面,一是过程抽象,二是数据抽象过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体。数据抽象定义了数据类型和施加于该类型对象
10、上的操作,并限定了对象的值只能通过这些操作来访问和修改。,3.3.1 抽象,3.3 面向对象方法的特点,封装封装是面向对象的特征之一。封装是指把对象的属性和方法包围起来,避免外界的干扰和不确定性,对数据的访问只能通过接口进行。封装保证模块具有良好的独立性,便于系统维护,对系统的修改仅限于类的内部。封装是继承的前提,没有封装就没有继承。,3.3.2 封装,3.3 面向对象方法的特点,继承是面向对象的特征之一。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中已定义的属性和方法。通过继承创建的新类称为“子类”或“派生类”。被继承的
11、类称为“基类”、“父类”或“超类”。继承是多态的前提,没有继承就没有多态。,3.3.3 继承,3.3 面向对象方法的特点,3.3 面向对象方法的特点,类的继承关系,3.3.3 继承,多态性是面向对象的特征之一。多态是指允许不同类的对象对同一消息作出不同的响应。实现多态,有二种方式:覆盖,重载。覆盖:是指子类重新定义父类的函数;重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。,多态,3.3 面向对象方法的特点,从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。面向对象方法开发的系统易于维护,其体系结构易于理解、扩充和修改。
12、面向对象方法开发的软件系统有对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。当对象的接口确定以后,实现细节的修改不会影响其他对象,易于维护。面向对象方法中的继承机制有力支持软件的复用。在同一应用领域的不同应用系统中,往往会涉及到许多相同或相似的实体,这些实体在不同的应用系统中存在许多相同的属性和操作,也存在着一些不同的应用系统所特有的属性和操作。可以通过继承来复用公共的属性和操作。,3.4 面相对象方法的优点,OMT是Object Modeling Technology的缩写,意为对象建模技术。面向对象建模方法有很多种,OMT法是目前最为成熟和实用的方法之一。OMT方法由James
13、Rambough建立,它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。对象模型的描述手段是对象图。对象模型表示静态的,结构化的“数据”性质,它是对模拟客观世界实体的对象及对象间的关系映射,描述了系统的静态及结构。动态模型主要采用状态转换图(Statecharts)来描述。动态模型表示瞬间的,行为化的系统控制性质,他规定了对象模型中的对象合法化变化序列。功能模型主要表达系统内部数据流的传递和处理的过程。功能模型表示变化的系统的功能性质,它指明了系统应该做什么,直接地反映了用户对目标系统的需求,通常用数据流图表示。,3.5 典型的面相对象
14、开发方法,OMT 方法面向对象建模,OMT是一种软件工程方法学,支持整个软件生存周期。它覆盖了问题构成、分析、设计和实现等阶段。以对象模型为指导,系统可由多个子系统组成。对象设计阶段要精心考虑和细化分析模型,然后优化地生成一个实际设计。OMT方法的基础是开发系统的3个模型,再细化这3种模型,并优化以构成设计。对象模型由系统中的对象及其关系组成,动态模型描述系统中对象对事件的响应及对象间的相互作用,功能模型则确定对象值上的各种变换及变换上的约束。,OMT 方法面向对象建模,一、系统分析 分析的目的是确定一个系统“干什么”的模型,该模型通过使用对象、关联、动态控制流和功能变换等来描述。分析过程是一
15、个不断获取需求及不断与用户磋商的过程。1.问题陈述:问题陈述为记下或获取对问题的初步描述。2.构造对象模型(1)确定对象类。(2)编制描述类、属性及关联的数据词典。(3)在类之间加入关联。(4)给对象和链加入属性。(5)使用继承来构造和简化对象类。(6)将类组合成模块,这种组合在紧耦合和相关功能上进行。最后得到:对象模型=对象模型图+数据词典。,OMT 方法面向对象建模,3.构造动态模型(1)准备典型交互序列的脚本。(2)确定对象间的事件并为各脚本安排事件跟踪。(3)准备系统的事件流图。(4)开发具有重要动态行为的各个类的状态图。(5)检查状态图中共享事件的一致性和完整性。最后得到:动态模型=
16、状态图+全局事件流图。,OMT 方法面向对象建模,4.构造功能模型(1)确定输入、输出值。(2)需要时使用数据流图来表示功能依赖关系。(3)描述各功能“干什么”。(4)确定约束。(5)详细说明优化标准。最后得到:功能模型=数据流图+约束。,OMT 方法面向对象建模,二、系统设计 在系统设计阶段建立系统的高层结构,有各种标准结构可以用作设计的起点。面向对象的开发方法对系统设计没有什么特殊的限制,但覆盖了完整的软件开发阶段,开发步骤如下:(1)将系统分解为各子系统。(2)确定问题中固有的并发性。(3)将各子系统分配给处理器及任务。(4)根据数据结构、文件及数据库来选择实现存储的基本策略。(5)确定
17、全局资源和制定控制资源访问的机制。(6)选择实现软件控制的方法。(7)考虑边界条件。最后得到:系统设计文档=系统的基本结构+高层次决策策略。,OMT 方法面向对象建模,三、对象设计 对象设计时,对分析模型进行详细分析和阐述并且奠定实现的基础,从分析模型的面向客观边界的观点转到面向实现的计算机观点上来,其步骤如下:(1)从其他模型获取对象模型上的操作 在功能模型中寻找各个操作,为动态模型中的各个事件定义一个操作,与控制的实现有关。(2)设计实现操作的算法 指选择开销最小的算法,选择适合于算法的数据结构,定义新的内部类和操作。给那些与单个类联系不太清楚的操作分配内容。,OMT 方法面向对象建模,(
18、3)优化数据的访问路径:指增加冗余联系以减少访问开销,提高方便性,重新排列运算以获得更高效率。为防止重复计算复杂表达式,保留有关派生值。(4)实现系统设计中的软件控制。(5)为提高继承而调整类体系:是为提高继承而调整和重新安排类和操作,从多组类中把共同行为抽取出来。(6)设计关联的实现。分析关联的遍历,使用对象来实现关联或者对关联中的 1、2 个类增加值对象的属性。(7)确定对象属性的明确表示:是将类、关联封装成模块。最后得到:对象设计文档=细化的对象模型+细化的动态模型+细化的功能模型。,OMT 方法面向对象建模,四、对象模型 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构
19、,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。该模型主要关心系统中对象的结构、属性和操作,使用了对象图的工具来刻划,它是分析阶段三个模型的核心,是其他两个模型的框架。1、对象和类 1)对象:是应用领域中有意义的事物。对象建模的目的就是描述对象,把对象定义成问题域的概念、抽象或者具有明确边界和意义的事物。对象有两种用途:一是促进对客观世界的理解,二是为计算机实现提供实际基础。问题分解为对象依赖于对问题判断和问题的性质。对象的符号表示如图所示。,OMT 方法面向对象建模,2)类 对象类描述具有相似或相同性质(属性)的一组对象,这组对象具有一般行为(操作)、一般关系(对象之间的)及
20、一般语义。类是对象类的略写,类中对象有相同的属性、行为模式。通过将对象聚集成类,可以使问题抽象化,抽象增强了模型的归纳能力。类的图形表示如图所示,图中的属性和操作可写可不写,这取决于所需的详细程度。,OMT 方法面向对象建模,3)属性 属性指的是类中对象所具有的数据值。如人的属性是姓名、年龄及地址等。对每个对象来说,其中每一属性都具有一个值,不同对象的同一属性可以具有相同或不同的属性值。类中的各属性名是唯一的。属性的表示如上图中间区域所示,每个属性名后可附加一些说明,即为属性的类型及缺省值,冒号后紧跟着类型,等号后紧跟着缺省值。,OMT 方法面向对象建模,4)操作和方法 操作是类中对象所使用的
21、一种功能或变换,类中的各对象可以共享操作,每个操作都有一个目标对象作为其隐含参数。操作的行为取决于其目标所归属的类,对象“知道”其所归属的类,因而能正确地实现该操作。方法是类的操作的实现步骤。例如:文件这个类,可有打印操作,可设计不同的方法来实现ASCII文件的打印、二进制文件的打印及数字图像文件的打印,所有这些方法逻辑上均是做同一工作,即打印文件。因此可用类中print操作去执行它们,但每个方法均是由不同的一段代码来实现。操作的表示如图底部区域所示,操作名后可跟参数表,用圆括号括起来,各个参数之间用逗号分开,参数名后可跟类型,用冒号与参数名分开,参数表后面用冒号来分隔结果类型,结果类型不能省
22、略。结果类型是指该操作的返回值的类型。,OMT 方法面向对象建模,2.关联和链 关联和链是建立对象及类之间关系的一种手段。1)关联和链的含义 链表示对象间的物理与概念的联结,如张三为通达公司工作。关联表示类之间的一种关系,就是一些可能的链的集合。正如对象与类的关系一样,对象是类的实例,类是对象的抽象。而链是关联的实例,关联是链的抽象。两个类之间的关联称为二元关联,三个类之间的关联称为三元关联,关联的表示是在类之间画一连线。下图表示了二元关联:,OMT 方法面向对象建模,例:下图表示一种三元关联,说明程序员使用计算机语言来开发项目。角色为关联的端点,说明类在关联中的作用和角色。不同类的关联角色可
23、有可无,同类的关联角色不能省,角色的表示如图所示。,OMT 方法面向对象建模,2)受限关联 受限关联由两个类及一个限定词组成,限定词是一种特定的属性,用来有效地减少关联的重数,限定词在关联的终端对象集中说明。受限关联的表示如图所示。图中有目录和文件两个类,一个文件只属于一个目录,在目录的内容中,文件名唯一确定一个文件,目录与文件名合并即可得到一个文件。一个文件与目录及文件名有关,限定减少了一对多的重数,一个目录下含有多份文件,各文件都有唯一的文件名。限定提高了语义的精确性,增强了查询能力。,OMT 方法面向对象建模,3)关联的多重性 关联的多重性是指类中有多少个对象与关联的类的一个对象相关。重
24、数常描述为“一”或“多”。但更常见的情况是非负整数的子集。如轿车的车门数目为24的范围,关联重数可用对象图关联线连的末端的特定符号来表示。小实心圆表示“多个”,从零到多。小空心圆表示零或一,没有符号表示的是一对一关联。下图表示了各种关联的重数。,OMT 方法面向对象建模,4)链属性 链属性是关联的链的性质,如同属性是类中对象的性质一样。链属性的表示如图所示。在两个类的连线上用一弧与方框相连。方框有两个区域,第二个区域表示一个或多个属性。这种表示强调了对象属性与链属性的相似性。可以把“一对一”或“一对多”的关联的链属性放入一方的类中,但对多对多的关联而言,这是不可能的,从原则上来说,链属性不应当
25、并入类中。因为一旦改变关联的重数,系统未来的灵活性将会降低。,OMT 方法面向对象建模,3.类的层次结构1)聚集关系 聚集是一种“整体成员”关系,在这种关系中,有整体类和成员类之分。聚集最重要的性质是传递性,也具有逆对称性。聚集的符号表示与关联相似,不同的只是在关联的整体类端多了一个菱形框,图中的例子说明了一个字处理应用的对象模型的一部分。文件中有多个段,每个段又有多个句子,每个句子又有多个词。,OMT 方法面向对象建模,聚集可以有不同层次,可以把成员类聚集起来得到一棵简单的聚集树,聚集树是一种简单表示,比画很多线来将成员类联系起来简单得多,对象模型应该容易地反映各级层次,下图表示一个关于微机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 开发 方法
链接地址:https://www.31ppt.com/p-6034369.html