版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 面向对象方法与UML 面向对象的概念与开发方法面向对象的概念与开发方法 UML简介简介 UML的事物的事物 UML的关系的关系 UML的图的图 使用和扩展使用和扩展UML 5.1 面向对象的概念与开发方法 现实世界就是由各种对象组成的,如建筑物、人现实世界就是由各种对象组成的,如建筑物、人、汽车、动物、植物等。、汽车、动物、植物等。 复杂的对象可以由简单的对象组成。复杂的对象可以由简单的对象组成。 在研究对象时主要考虑对象的属性和行为,有些在研究对象时主要考虑对象的属性和行为,有些不同的对象会呈现相同或相似的属性和行为,如不同的对象会呈现相同或相似的属性和行为,如轿车、卡车、面包车。轿
2、车、卡车、面包车。 通常将属性及行为相同或相似的对象归为一类。通常将属性及行为相同或相似的对象归为一类。 类可以看成是对象的抽象,代表了此类对象所具类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。有的共有属性和行为。 5.1 面向对象的概念与开发方法 Coad和和Yourdon给出了给出了“面向对象面向对象”的一的一个定义:个定义: 面向对象对象类继承消息通信面向对象对象类继承消息通信 如果一个系统是使用这样如果一个系统是使用这样4 4个概念设计和实个概念设计和实现的,则可认为这个系统是面向对象的。现的,则可认为这个系统是面向对象的。 对象 对象是包含现实世界物体特征的抽象实体,
3、它反映了系统对象是包含现实世界物体特征的抽象实体,它反映了系统为之保存信息和(或)与它交互的能力。为之保存信息和(或)与它交互的能力。 例如,例如,StudentStudent对象的数据可能有姓名、性别、出生日期对象的数据可能有姓名、性别、出生日期、家庭住址、电话号码等,其操作可能是对这些数据值的、家庭住址、电话号码等,其操作可能是对这些数据值的赋值及更改。赋值及更改。 对象 对象与后面讲的类具有几乎完全相同的表示形式对象与后面讲的类具有几乎完全相同的表示形式,主要差别是对象的名字下面要加一条下划线。,主要差别是对象的名字下面要加一条下划线。对象名有下列三种表示格式:对象名有下列三种表示格式:
4、(1) (1) 第一种格式是对象名在前,类名在后,中间用冒号连接第一种格式是对象名在前,类名在后,中间用冒号连接。形如:。形如: 对象名:类名对象名:类名(2) (2) 第二种格式形如:第二种格式形如: :类名:类名 这种格式用于尚未给对象命名的情况,注意,类名前的冒这种格式用于尚未给对象命名的情况,注意,类名前的冒号不能省略。号不能省略。(3) (3) 第三种格式形如:第三种格式形如: 对象名对象名对象 对象有两个层次的概念:对象有两个层次的概念:(1) (1) 现实生活中对象指的是客观世界的实体。可以现实生活中对象指的是客观世界的实体。可以是可见的有形对象,如人、学生、汽车、房屋等;是可见
5、的有形对象,如人、学生、汽车、房屋等;也可以是抽象的逻辑对象,如银行帐号,生日。也可以是抽象的逻辑对象,如银行帐号,生日。(2) (2) 程序中对象就是一组变量和相关方法的集合,程序中对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的其中变量表明对象的状态,方法表明对象所具有的行为。行为。对象可以将程序中的对象分为可以将程序中的对象分为5类:类:物理对象,角物理对象,角色,事件,交互,规格说明色,事件,交互,规格说明。 (1)(1) 物理对象(物理对象(Physical ObjectsPhysical Objects) 物理对象是最易物理对象是最易识别的对象,通常可
6、以在问题领域的描述中找到,它识别的对象,通常可以在问题领域的描述中找到,它们的属性可以标识和测量。们的属性可以标识和测量。 例如,大学课程注册系统中的学生对象;一个网络管例如,大学课程注册系统中的学生对象;一个网络管理系统中各种网络物理资源对象(如开关、理系统中各种网络物理资源对象(如开关、CPUCPU和打印和打印机)都是物理对象。机)都是物理对象。对象(2) 角色(角色(Roles) 一个实体的角色也可一个实体的角色也可以抽象成一个单独的对象。角色对象的操以抽象成一个单独的对象。角色对象的操作是由角色提供的技能。作是由角色提供的技能。 例如,一个面向对象系统中通常有例如,一个面向对象系统中通
7、常有“管理器管理器”对象,它履对象,它履行协调系统资源的角色。一个窗口系统中通常有行协调系统资源的角色。一个窗口系统中通常有“窗口管窗口管理器理器”对象,它扮演协调鼠标器按钮和其他窗口操作的角对象,它扮演协调鼠标器按钮和其他窗口操作的角色。特别地,一个实际的物理对象可能同时承担几个角色色。特别地,一个实际的物理对象可能同时承担几个角色。 例如,一个退休教师同时扮演退休者和教师的角色。例如,一个退休教师同时扮演退休者和教师的角色。对象(3) 事件(事件(Events) 一个事件是某种活动一个事件是某种活动的一次的一次“出现出现”。 例如例如“鼠标鼠标”事件。一个事件对象通常是一个数事件。一个事件
8、对象通常是一个数据实体,它管理据实体,它管理“出现出现”的重要信息。事件对象的重要信息。事件对象的操作主要用于对数据的存取。的操作主要用于对数据的存取。 如如“鼠标鼠标”事件对象有诸如光标坐标、左右键、事件对象有诸如光标坐标、左右键、单击,双击等信息。单击,双击等信息。对象(4) 交互(交互(Interactions) 交互表示了在两个对交互表示了在两个对象之间的关系,这种类型的对象类似于在数据库象之间的关系,这种类型的对象类似于在数据库设计时所涉及的设计时所涉及的“关系关系”实体。实体。 当实体之间是多对多的关系时,利用交互对象可当实体之间是多对多的关系时,利用交互对象可将其简化为两个一对多
9、的关系。将其简化为两个一对多的关系。 例如,在大学课程注册系统中,学生和课程之间例如,在大学课程注册系统中,学生和课程之间的关系是多对多的关系,可设置一个的关系是多对多的关系,可设置一个“选课选课”交交互对象来简化它们之间的关系。互对象来简化它们之间的关系。类与封装 类。类。可以将现实生活中的对象经过抽象,映射为程序中可以将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(,这种抽象数据类型称为类(ClassClass)。)。 为了让计算机创建对象,必须先提供对象的定义,也就是为了
10、让计算机创建对象,必须先提供对象的定义,也就是先定义对象所属的类。例如,可以将学生对象所属的类定先定义对象所属的类。例如,可以将学生对象所属的类定义为义为StudentStudent。类的图形表示如图所示。类的图形表示如图所示。 类与封装 封装。封装。面向对象的封装特性与其抽象特性密切相关。封面向对象的封装特性与其抽象特性密切相关。封装是一种信息隐蔽技术,就是利用抽象数据类型将数据和装是一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起。用户只能看到对象的封装界基于数据的操作封装在一起。用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的。面信息,对象的内部细节对用
11、户是隐蔽的。 封装的定义是:封装的定义是:(1) (1) 清楚的边界,所有对象的内部信息被限定在这个边界内;清楚的边界,所有对象的内部信息被限定在这个边界内;(2) (2) 接口,即对象向外界提供的方法,外界可以通过这些方法接口,即对象向外界提供的方法,外界可以通过这些方法与对象进行交互;与对象进行交互;(3) (3) 受保护的内部实现,即软件对象功能的实现细节,实现细受保护的内部实现,即软件对象功能的实现细节,实现细节不能从类外访问。节不能从类外访问。继承 继承继承。继承是一种联结类的层次模型,为类的重用提供继承是一种联结类的层次模型,为类的重用提供了方便,它提供了明确表述不同类之间共性的方
12、法。了方便,它提供了明确表述不同类之间共性的方法。 我们将公共类称为超类我们将公共类称为超类(superclass)(superclass)、父类(、父类(father father classclass)、祖先()、祖先(ancestorancestor)或基类()或基类(base classbase class),而),而从其继承的类称为子类从其继承的类称为子类(subclasses)(subclasses)、后代(、后代(deslendanedeslendane)或导出类()或导出类(derived classderived class)。)。 消息是一个对象与另一个对象的通信单元,是要
13、消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。求某个对象执行类中定义的某个操作的规格说明。 发送给一个对象的消息定义了一个发送给一个对象的消息定义了一个方法名方法名和一个和一个参数表参数表(可能是空的),并(可能是空的),并指定某一个指定某一个对象对象。 一个对象接收到消息,则调用消息中指定的一个对象接收到消息,则调用消息中指定的方法方法,并将并将形式参数与参数表中相应的值结合起来形式参数与参数表中相应的值结合起来。面向对象的开发方法面向对象的开发方法即方法是对软件开发过程所有阶段进行综合即方法是对软件开发过程所有阶段进行综合考虑而得到的。考虑而得到的。
14、即生存期后一阶段的成果只是在前一即生存期后一阶段的成果只是在前一阶段成果的补充和修改。阶段成果的补充和修改。将面向对象分析将面向对象分析(OOA)(OOA)、面向对象设计、面向对象设计(OOD)(OOD)和面向对象程序设计和面向对象程序设计(OOP)(OOP)集成到生存期的相集成到生存期的相应阶段。应阶段。 RumbaughRumbaugh和他的同事提出的和他的同事提出的用于分析、系统设计和对象级设计。分析用于分析、系统设计和对象级设计。分析活动建立三个模型:活动建立三个模型:( (描述对象、类、层次和关系描述对象、类、层次和关系););( (描述对象和系统的行为描述对象和系统的行为););(
15、 (类似于高层的类似于高层的DFDDFD,描述穿越系统的,描述穿越系统的信息流信息流) )。面向对象的开发方法面向对象的开发方法CoadCoad和和YourdonYourdon方法常常被认为是最容易学习的方法常常被认为是最容易学习的OOAOOA方法。建模符号相当简单,其方法。建模符号相当简单,其OOAOOA过程如下:过程如下:(1) (1) 使用使用“要找什么要找什么”准则标识对象;准则标识对象;(2) (2) 定义对象之间的一般化定义对象之间的一般化/ /特殊化结构(又称为分类结特殊化结构(又称为分类结构);构);(3) (3) 定义对象之间的整体定义对象之间的整体/ /部分结构(又称为组合
16、结构);部分结构(又称为组合结构); (4) (4) 标识主题;标识主题;(5) (5) 定义对象的属性及对象之间的实例连接;定义对象的属性及对象之间的实例连接;(6) (6) 定义服务及对象之间的消息连接。定义服务及对象之间的消息连接。面向对象的开发方法面向对象的开发方法 包含包含“微开发过程微开发过程”和和“宏开发过程宏开发过程”两个过程。两个过程。 OOA OOA 宏观开发过程如下:宏观开发过程如下:标识类和对象;标识类和对象;标识类和对象的语义;标识类和对象的语义;标识类和对象间的关系;标识类和对象间的关系;进行一系列精化;进行一系列精化;实现类和对象。实现类和对象。面向对象的开发方法
17、面向对象的开发方法 也称为也称为OOSE(OOSE(面向对象软件工程面向对象软件工程) ),其特点是特,其特点是特别强调使用别强调使用用例用例用以描述用户和产品或系用以描述用户和产品或系统间如何交互的场景。统间如何交互的场景。过程如下:过程如下:标识系统的用户和他们的整体责任标识系统的用户和他们的整体责任构造需求模型构造需求模型构造分析模型构造分析模型面向对象的开发方法面向对象的开发方法5.2 UML简介 面向对象的建模语言很多,目前使用最广面向对象的建模语言很多,目前使用最广泛的是统一建模语言泛的是统一建模语言(UML(UML,Unified Unified Modeling Languag
18、e)Modeling Language); 它将它将BoochBooch、RumbaughRumbaugh和和JacobsonJacobson等各自独等各自独立的立的OOAOOA和和OODOOD方法中最优秀的特色组合成方法中最优秀的特色组合成一个统一的方法。一个统一的方法。 UMLUML的产生和发展的产生和发展 UML(Unified Modeling Language)的概念于1996年由面向对象方法领域的三位著名专家Grady Booch,James Rumbaugh和Ivar Jacobson提出的。1996年6月和10月分别发布了UML0.9, UML0.911997年1月,UML1.
19、0被提交给对象管理组织OMG1997年9月,提交UML1.1,1997年11月被OMG采纳作为基于面向对象技术的标准建模语言1998、2000、2001、2003、2005年分别发布了UML1.2、UML1.3、UML1.4、 UML1.5、 UML2.02011年发布了UML2.4,UML2.4.12013年发布了UML2.5UMLUML的产生和发展的产生和发展(1)(1)统一标准统一标准 UMLUML不仅统一了不仅统一了BoochBooch、OMTOMT和和OOSEOOSE等方法中的基等方法中的基本概念,还吸取了面向对象技术领域中其他流派的本概念,还吸取了面向对象技术领域中其他流派的长处,
20、其中也包括非长处,其中也包括非OOOO方法的影响。已经成为方法的影响。已经成为OMGOMG的的标准。标准。 (2)(2)面向对象面向对象 UMLUML支持面向对象技术的主要概念,它提供了一支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了批基本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。地表达面向对象的各种概念和模型元素。UMLUML的特点的特点(3)(3)可视化,表达能力强大可视化,表达能力强大UMLUML是一种图形化语言,用是一种图形化语言,用UMLUML的模型图形能清晰地的模型图形能清晰地表示系统的逻辑模型或实现模型。表示系统
21、的逻辑模型或实现模型。UMLUML还提供了语言还提供了语言的扩展机制,用户可以根据需要增加定义自己的构的扩展机制,用户可以根据需要增加定义自己的构造型、标记值和约束等。造型、标记值和约束等。 (4)(4)独立于过程独立于过程 UMLUML是系统建模的语言,不依赖特定的开发过程。是系统建模的语言,不依赖特定的开发过程。UMLUML的特点的特点(5) (5) 容易掌握使用容易掌握使用 UMLUML概念明确,建模表示法简洁明了,图形结构概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。清晰,容易掌握使用。 (6)(6)与编程语言的关系与编程语言的关系 支持支持UMLUML的一些的一些CASE
22、CASE工具(如工具(如RoseRose)可以根据)可以根据 UMLUML所建立的系统模型自动产生所建立的系统模型自动产生JavaJava、C+ C+ 等代码框等代码框架。架。 UMLUML的特点的特点UMLUML的基本模型的基本模型 UML UML符号为开发者或开发工具使用这些图形符号符号为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。和文本语法为系统建模提供了标准。 这些图形符号和文字所表达的是应用级的模型,这些图形符号和文字所表达的是应用级的模型,在语义上它是在语义上它是UMLUML元模型的实例。元模型的实例。UMLUML模型由事物、关系和图组成模型由事物、关系和图组成
23、 。 UMLUML的基本模型的基本模型5.3 UML的事物 事物是对模型中最具代表性成分的抽象,在事物是对模型中最具代表性成分的抽象,在UMLUML中,可以中,可以分为结构事物、行为事物、分组事物和注释事物分为结构事物、行为事物、分组事物和注释事物4 4类。类。 结构事物结构事物 结构事物是结构事物是UMLUML模型的静态部分,主要用来模型的静态部分,主要用来描述概念的或物理的元素,包括类、主动类、描述概念的或物理的元素,包括类、主动类、接口、对象、用例、参与者、协作、构件和接口、对象、用例、参与者、协作、构件和节点等。节点等。(1 1)类()类(classclass) 类用带有类名、属性和操
24、作类用带有类名、属性和操作的矩形框来表示。的矩形框来表示。结构事物结构事物(2 2)主动类()主动类(active classactive class) 主动类的实例主动类的实例应具有一个或多个进程或线程,能够启动控制活应具有一个或多个进程或线程,能够启动控制活动。动。(3 3)接口()接口(interfaceinterface) 描述了一个类或构描述了一个类或构件的一组外部可用的服务(操作)集。件的一组外部可用的服务(操作)集。 接口定义的是一组操作的描述,而不是操作的实接口定义的是一组操作的描述,而不是操作的实现。现。 一般将接口画成从实现它的类或构件引出的圆圈,一般将接口画成从实现它的类
25、或构件引出的圆圈,接口体现了使用与实现分离的原则。接口体现了使用与实现分离的原则。结构事物结构事物结构事物结构事物(4 4)对象()对象(objectobject) 对象是类对象是类的实例,其名字下边加下划线,对的实例,其名字下边加下划线,对象的属性值需明确给出。象的属性值需明确给出。(5 5)用例()用例(use caseuse case) 也称用也称用况,用于表示系统想要实现的行为,况,用于表示系统想要实现的行为,即描述一组动作序列(即场景)。即描述一组动作序列(即场景)。而系统执行这组动作后将产生一个而系统执行这组动作后将产生一个对特定参与者有价值的结果。对特定参与者有价值的结果。结构事
26、物结构事物(6 6)参与者()参与者(actoractor) 也称角也称角色,是指与系统有信息交互关系的色,是指与系统有信息交互关系的人、软件系统或硬件设备,在图形人、软件系统或硬件设备,在图形上用简化的小木头人表示。上用简化的小木头人表示。(7 7)协作()协作(collaborationcollaboration) 用例仅描述要实现的行为,不描述用例仅描述要实现的行为,不描述这些行为的实现。这种实现用协作这些行为的实现。这种实现用协作描述。描述。 协作定义交互,描述一组角色实体协作定义交互,描述一组角色实体和其他实体如何通过协同工作来完和其他实体如何通过协同工作来完成一个功能或行为。类可以
27、参与几成一个功能或行为。类可以参与几个协作。个协作。结构事物结构事物(8 8)构件()构件(componentcomponent) 也称组也称组件,是系统中物理的、可替代的部件,是系统中物理的、可替代的部件。它通常是描述一些逻辑元素的件。它通常是描述一些逻辑元素的物理包。物理包。(9 9)节点()节点(nodenode) 是在运行时是在运行时存在的物理元素。它代表一种可计存在的物理元素。它代表一种可计算的资源,通常具有一定的记忆能算的资源,通常具有一定的记忆能力和处理能力。力和处理能力。行为事物行为事物 行为事物是行为事物是UML模型的动态部分,包括两类:模型的动态部分,包括两类:(1 1)交
28、互()交互(interactioninteraction) 交互由在特定的上下文环交互由在特定的上下文环境中共同完成一定任务的一组对象之间传递的消息组成。境中共同完成一定任务的一组对象之间传递的消息组成。如图所示。交互涉及的元素包括消息、动作序列(由一个如图所示。交互涉及的元素包括消息、动作序列(由一个消息所引起的行为)和链(对象间的连接)。消息所引起的行为)和链(对象间的连接)。对象之间的交互对象之间的交互行为事物行为事物(2 2)状态机()状态机(state machinestate machine) 描述了一个描述了一个对象或一个交互在生存周期内响应事件所经历的对象或一个交互在生存周期内
29、响应事件所经历的状态序列,单个类或者一组类之间协作的行为都状态序列,单个类或者一组类之间协作的行为都可以用状态机来描述。可以用状态机来描述。 状态机涉及到状态、变迁和活动,其中状态用圆状态机涉及到状态、变迁和活动,其中状态用圆角矩形来表示。角矩形来表示。 分组事物分组事物 分组事物是分组事物是UMLUML模型的组织部分。它的作用是为了模型的组织部分。它的作用是为了降低模型复杂性。降低模型复杂性。 UMLUML中的分组事物是包(中的分组事物是包(packagepackage)。)。 包是把模型元素组织成组的机制,结构事物、行包是把模型元素组织成组的机制,结构事物、行为事物甚至其他分组事物都可以放
30、进包内。为事物甚至其他分组事物都可以放进包内。 注释事物注释事物 注释事物是注释事物是UMLUML模型的解释部分,它们用来描述和模型的解释部分,它们用来描述和标注模型的任何元素。标注模型的任何元素。 通常可以用注释修饰带有约束或者解释的图。通常可以用注释修饰带有约束或者解释的图。 5.4 UML的关系依赖关系依赖关系 依赖依赖(Dependency)(Dependency)是两个事物之间的语义关系,是两个事物之间的语义关系,其中一个事物发生变化会影响到另一个事物的语其中一个事物发生变化会影响到另一个事物的语 义,它用一个虚线箭头表示。义,它用一个虚线箭头表示。 虚线箭头的方向从源事物指向目标事
31、物,表示源虚线箭头的方向从源事物指向目标事物,表示源事物依赖于目标事物。事物依赖于目标事物。 依赖关系依赖关系依赖关系依赖关系关联关系关联关系 关联关联(association)(association)是一种结构关系,它描述了两是一种结构关系,它描述了两个或多个类的实例之间的连接关系,是一种特殊个或多个类的实例之间的连接关系,是一种特殊的依赖。的依赖。 关联分为关联分为普通关联普通关联、限定关联限定关联、关联类关联类,以及,以及聚聚合与复合合与复合。关联关系关联关系普通关联普通关联 普通关联是最常见的关联关系,只要类与类之间普通关联是最常见的关联关系,只要类与类之间存在连接关系就可以用普通关
32、联表示。普通关联存在连接关系就可以用普通关联表示。普通关联又分为又分为二元关联二元关联和和多元关联多元关联。 二元关联描述两个类之间的关联,用两个类之间二元关联描述两个类之间的关联,用两个类之间的一条直线来表示,直线上可写上关联名。的一条直线来表示,直线上可写上关联名。 关联关系关联关系普通关联普通关联 多重性多重性(multiplicitymultiplicity):多重性表明在一个关联):多重性表明在一个关联的两端连接的类实例个数的对应关系,即一端的类的两端连接的类实例个数的对应关系,即一端的类的多少个实例对象可以与另一端的类的一个实例相的多少个实例对象可以与另一端的类的一个实例相关。关。
33、 如果图中没有明确标出关联的多重性,则默认的多如果图中没有明确标出关联的多重性,则默认的多重性为重性为1 1。 关联关系关联关系普通关联普通关联 角色角色:关联端点上还可以附加角色名,表示类的:关联端点上还可以附加角色名,表示类的实例在这个关联中扮演的角色。实例在这个关联中扮演的角色。UMLUML还允许一个类还允许一个类与它自身关联。与它自身关联。 关联关系关联关系普通关联普通关联 多元关联多元关联:多元关联是指:多元关联是指3 3个或个或3 3个以上类之间的个以上类之间的关联。关联。 多元关联由一个菱形,以及由菱形引出的通向各多元关联由一个菱形,以及由菱形引出的通向各个相关类的直线组成,关联
34、名可标在菱形的旁边,个相关类的直线组成,关联名可标在菱形的旁边,在关联的端点也可以标上多重性等信息。在关联的端点也可以标上多重性等信息。 关联关系关联关系限定关联限定关联 限定关联通常用在一对多或多对多的关联关系中,限定关联通常用在一对多或多对多的关联关系中,可以把模型中的多重性从一对多变成一对一,或可以把模型中的多重性从一对多变成一对一,或将多对多简化成多对一。将多对多简化成多对一。 在类图中把限定词(在类图中把限定词(qualifierqualifier)放在关联关系末)放在关联关系末端的一个小方框内。端的一个小方框内。 关联关系关联关系关联类关联类 在关联关系比较简单的情况下,关联关系的
35、语义用关联关在关联关系比较简单的情况下,关联关系的语义用关联关系的名字来概括。系的名字来概括。 但在某些情况下,需要对关联关系的语义做详细的定义、但在某些情况下,需要对关联关系的语义做详细的定义、存储和访问,为此可以建立存储和访问,为此可以建立关联类关联类(association association classclass),用来描述关联的属性。),用来描述关联的属性。 关联中的每个链与关联类的一个实例相联系。关联类通过关联中的每个链与关联类的一个实例相联系。关联类通过一条虚线与关联连接。一条虚线与关联连接。 关联关系关联关系聚合聚合 聚合聚合(AggregationAggregation)
36、也称为)也称为聚集聚集,是一种特殊的,是一种特殊的关联。它描述了整体和部分之间的结构关系。关联。它描述了整体和部分之间的结构关系。 两种特殊的聚合关系:两种特殊的聚合关系:共享聚合共享聚合(shared shared aggregationaggregation)和)和复合聚合复合聚合(composition composition aggregationaggregation)。)。 如果在聚合关系中处于部分方的实例可同时参与如果在聚合关系中处于部分方的实例可同时参与多个处于整体方实例的构成,则该聚合称为多个处于整体方实例的构成,则该聚合称为共享共享聚合聚合。 关联关系关联关系聚合聚合 如果
37、部分类完全隶属于整体类,部分类需要与整如果部分类完全隶属于整体类,部分类需要与整体类共存,一旦整体类不存在了,则部分类也会体类共存,一旦整体类不存在了,则部分类也会随之消失,或失去存在价值,则这种聚合称为随之消失,或失去存在价值,则这种聚合称为复复合聚合合聚合。 关联关系关联关系导航导航 导航导航(navigabilitynavigability)是关联关系的一种特性,)是关联关系的一种特性,它通过在关联的一个端点上加箭头来表示导航的它通过在关联的一个端点上加箭头来表示导航的方向。方向。泛化关系泛化关系 泛化泛化(generalization)(generalization)关系就是一般类和特
38、殊类关系就是一般类和特殊类之间的继承关系。之间的继承关系。 在在UMLUML中,中,一般类一般类亦称亦称泛化类泛化类,特殊类特殊类亦称亦称特化类特化类。 泛化针对类型而不针对实例,因为一个类可以继泛化针对类型而不针对实例,因为一个类可以继承另一个类,但一个对象不能继承另一个对象。承另一个类,但一个对象不能继承另一个对象。 泛化可进一步划分成泛化可进一步划分成普通泛化普通泛化和和受限泛化受限泛化两类。两类。泛化关系泛化关系普通泛化普通泛化 普通泛化与前面讲过的继承基本相同。但在泛化普通泛化与前面讲过的继承基本相同。但在泛化关系中常遇到关系中常遇到抽象类抽象类。 一般称没有具体对象的类为抽象类。抽
39、象类通常一般称没有具体对象的类为抽象类。抽象类通常作为父类,用于描述其他类(子类)的公共属性作为父类,用于描述其他类(子类)的公共属性和行为。和行为。泛化关系泛化关系普通泛化普通泛化 普通泛化可以分为多重继承和单继承。普通泛化可以分为多重继承和单继承。多重继承多重继承是指一个子类可同时继承多个上层父类。是指一个子类可同时继承多个上层父类。泛化关系泛化关系受限泛化受限泛化 受限泛化关系是指泛化具有约束条件。受限泛化关系是指泛化具有约束条件。 一般有一般有4 4种约束:种约束:交叠交叠(overlappingoverlapping)、)、不相交不相交(disjointdisjoint)、)、完全完
40、全(completecomplete)和)和不完全不完全(incomplateincomplate)。)。 实现关系实现关系 实现实现(implement)(implement)是泛化关系和依赖关系的结合,是泛化关系和依赖关系的结合,也是类之间的语义关系,通常在以下两种情况出也是类之间的语义关系,通常在以下两种情况出现实现关系:现实现关系:(1)(1)接口和实现它们的类或构件之间;接口和实现它们的类或构件之间;(2)(2)用例和实现它们的协作之间。用例和实现它们的协作之间。5.5 UML的图1. 1. 用例模型用例模型 用例模型描述的是外部执行者用例模型描述的是外部执行者(actor)(act
41、or)所理解的系统所理解的系统功能。用例模型用于需求分析阶段,它的建立是系功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,描述了开发者和统开发者和用户反复讨论的结果,描述了开发者和用户对需求规格达成的共识。用户对需求规格达成的共识。 在在UMLUML中,一个用例模型由若干个用例图来描述,用中,一个用例模型由若干个用例图来描述,用例图的主要元素是例图的主要元素是用例用例和和执行者执行者。用例图是包括执行者、由系统边界(一个矩形)封用例图是包括执行者、由系统边界(一个矩形)封闭的一组用例,执行者和用例之间的关联、用例间闭的一组用例,执行者和用例之间的关联、用例间关系以及执
42、行者的泛化的图。关系以及执行者的泛化的图。用例图用例图用例图用例图用例图的建模元素用例图的建模元素2. 2. 用例之间的关系用例之间的关系 用例之间可以有用例之间可以有泛化泛化、扩展扩展、使用(包含)使用(包含)三种三种关系。关系。(1)(1) 泛化关系泛化关系 用例泛化是指一个用例可以被特别列举为一个或用例泛化是指一个用例可以被特别列举为一个或多个子用例。多个子用例。用例图用例图(2)(2) 扩展关系扩展关系 向一个用例中加入一些新的动作后构成了另一个用例,这向一个用例中加入一些新的动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者通过继承前者的两个用例之间的关系就是扩展关系,后
43、者通过继承前者的一些行为得来,通常把后者称为扩展用例。一些行为得来,通常把后者称为扩展用例。(3) (3) 使用(包含)关系使用(包含)关系 当一个用例使用另一个用例时,这两个用例之间就构成了当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。使用关系。 当有一大块相似的动作存在于几个用例,又不想重复描述当有一大块相似的动作存在于几个用例,又不想重复描述该动作,将重复的部分分离为一个用例,两用例间关系称该动作,将重复的部分分离为一个用例,两用例间关系称为使用关系。为使用关系。用例图用例图银行储蓄系统的用例图银行储蓄系统的用例图 类图类图类图描述类和类与类之间的静态关系,它是从静态类图描
44、述类和类与类之间的静态关系,它是从静态角度表示系统的,因此类图属于一种静态模型。类角度表示系统的,因此类图属于一种静态模型。类图是构建其他图的基础,没有类图就没有状态图、图是构建其他图的基础,没有类图就没有状态图、协作图等其他图,也就无法表示系统其他方面的特协作图等其他图,也就无法表示系统其他方面的特性。性。 类图显示了类(及其接口)、类的内部结构以及与类图显示了类(及其接口)、类的内部结构以及与其他类的联系。联系是指类元之间的联系,在类的其他类的联系。联系是指类元之间的联系,在类的建模中可以使用建模中可以使用关联关联、聚合聚合和和泛化泛化(继承)关系。(继承)关系。银行储蓄系统的核心类图教学
45、管理系统的类图关联类 关联类是指表示其他类之间关联关系的类。当一个关联具关联类是指表示其他类之间关联关系的类。当一个关联具有自己的属性并需要存储它们时,就需要用关联类建模。有自己的属性并需要存储它们时,就需要用关联类建模。关联类用虚线连接在两个类之间的联系上。关联类用虚线连接在两个类之间的联系上。 交互图 UMLUML中有两种类型的交互图:顺序图和协作图。中有两种类型的交互图:顺序图和协作图。 顺序图描述对象之间的动态交互关系,着重表现对顺序图描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序。顺序图中的符号如下象间消息传递的时间顺序。顺序图中的符号如下: : 消息的类型交互图 通信
46、图是顺序图的一种变化形式,用于描述相互协作的对通信图是顺序图的一种变化形式,用于描述相互协作的对象间的交互关系和链接关系。象间的交互关系和链接关系。 支票对象的状态图中间状态电梯的状态图电梯的状态图(本状态图没有终点本状态图没有终点)带有事件说明的状态转换带有事件说明的状态转换加上属性的状态转换加上属性的状态转换活动图用来捕捉用例的活动,使用框图的方式显活动图用来捕捉用例的活动,使用框图的方式显示动作及其结果。示动作及其结果。活动图是一个流图,描述了从活动到活动的流。活动图是一个流图,描述了从活动到活动的流。它是另一种描述交互的方式,它描述采取何种动它是另一种描述交互的方式,它描述采取何种动作
47、,动作的结果是什么作,动作的结果是什么( (动作状态改变动作状态改变) ),何时发,何时发生生( (动作序列动作序列) ),以及在何处发生,以及在何处发生( (泳道泳道) )。 活动图中的符号活动图中的符号取款用例的活动图取款用例的活动图构件图描述软件构件及构件之间的依赖关系,显构件图描述软件构件及构件之间的依赖关系,显示代码的静态结构。示代码的静态结构。构件是逻辑架构中定义的概念和功能构件是逻辑架构中定义的概念和功能( (例如,类、例如,类、对象及它们之间的关系对象及它们之间的关系) )在物理架构中的实现。在物理架构中的实现。典型情况下,构件是开发环境中的实现文件。典型情况下,构件是开发环境
48、中的实现文件。软件构件可以是下述的任何一种构件。软件构件可以是下述的任何一种构件。 源构件源构件:源构件仅在编译时才有意义。典型情况:源构件仅在编译时才有意义。典型情况下,它是实现一个或多个类的源代码文件。下,它是实现一个或多个类的源代码文件。 二进制构件二进制构件:典型情况下,二进制构件是对象代:典型情况下,二进制构件是对象代码,它是源构件的编译结果。码,它是源构件的编译结果。 可执行构件可执行构件:可执行构件是一个可执行的程序文:可执行构件是一个可执行的程序文件,它是链接所有二进制构件所得到的结果。一件,它是链接所有二进制构件所得到的结果。一个可执行构件代表在处理器个可执行构件代表在处理器
49、( (计算机计算机) )上运行的可上运行的可执行单元。执行单元。画图系统的构件图画图系统的构件图银行储蓄系统的构件图银行储蓄系统的构件图 部署图描述处理器、设备和连接,它显示系统硬件部署图描述处理器、设备和连接,它显示系统硬件的物理拓扑结构及在此结构上执行的软件。的物理拓扑结构及在此结构上执行的软件。 部署图可以显示计算节点的拓扑结构和通信路径、部署图可以显示计算节点的拓扑结构和通信路径、节点上运行的软件以及软件包含的逻辑单元。节点上运行的软件以及软件包含的逻辑单元。 典型的部署图典型的部署图5.6 使用和扩展UML使用使用UMLUML的准则的准则1.1.不要试图使用所有的图形和符号不要试图使
50、用所有的图形和符号 应该根据项目的特点,选用最适用的图形和符号。一般来应该根据项目的特点,选用最适用的图形和符号。一般来说,应该优先选用简单的图形和符号,例如,用例、类、说,应该优先选用简单的图形和符号,例如,用例、类、关联、属性和继承等概念是最常用的。关联、属性和继承等概念是最常用的。2.2.不要为每个事物都画一个模型不要为每个事物都画一个模型 应该把精力集中于关键的领域。最好只画几张关键的图,应该把精力集中于关键的领域。最好只画几张关键的图,经常使用并不断更新、修改这几张图。经常使用并不断更新、修改这几张图。5.6 使用和扩展UML3. 3. 应该分层次地画模型图应该分层次地画模型图 根据项目进展的不同阶段,用正确的观点画模型图。根据项目进展的不同阶段,用正确的观点画模型图。如果处于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演艺队内部管理制度
- 深圳技术大学《精细化学品合成》2024-2025学年第二学期期末试卷
- 景区内部医院管理制度
- 机关内部人员管理制度
- 机关内部招标管理制度
- 机关内部运营制度
- 机构内部财务管理制度
- 林业内部管理制度
- 某物业小区内部规章制度
- 检察院内部同堂培训制度
- 中国航空油料集团有限公司2026 届校园招聘笔试备考题库及答案解析
- XX区实验初级中学2026年春季学期校园意识形态工作方案
- 基于遥感技术的生态监测智能方案
- 2026黑龙江省交通运输厅所属事业单位招聘86人考试参考题库及答案解析
- 2026及未来5年中国银行资产托管行业市场运营态势及投资前景研判报告
- 城市供水管网巡检与维修操作手册(标准版)
- 2026年荆门市急需紧缺人才引进1502人笔试备考题库及答案解析
- 2026年春季北师大版小学数学二年级下册教学计划(含进度表)
- (新教材)2026年春期人教版三年级下册数学教学计划+教学进度表
- 火电厂热控培训课件内容
- 沥青路面施工监理实施细则
评论
0/150
提交评论