Class Diagram-UML类图几种关系总结

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

         1. 泛化(Generalization

        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

        【箭头指向】:带三角箭头的实线,箭头指向父类

UML类图几种关系的总结 

        2. 实现(Realization

        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

        【箭头指向】:带三角箭头的虚线,箭头指向接口

UML类图几种关系的总结 

        3. 关联(Association)

        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

        【代码体现】:成员变量

        【箭头及指向】:带普通箭头的实心线,指向被拥有者

UML类图几种关系的总结 

        上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 

        下图为自身关联: 

UML类图几种关系的总结

        4. 聚合(Aggregation

        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

        【代码体现】:成员变量

        【箭头及指向】:带空心菱形的实心线,菱形指向整体

UML类图几种关系的总结 

        5. 组合(Composition)

        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

UML类图几种关系的总结

        6. 依赖(Dependency)

        【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

        【代码表现】:局部变量、方法的参数或者对静态方法的调用

        【箭头及指向】:带箭头的虚线,指向被使用者

UML类图几种关系的总结 

        各种关系的强弱顺序:

        泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 

        下面这张UML图,比较形象地展示了各种类图关系:

UML类图几种关系的总结

转自:http://blog.csdn.net/tianhai110/article/details/6339565
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UML 2.0中共有14种图,以下仅针对主要的几种进行介绍。 1. 用例图(Use Case Diagram):用于表示系统的功能需求和参与者之间的关系,描述系统的用例和参与者以及它们之间的交互。 2. 类图(Class Diagram):用于表示系统中的类及其之间的关系和属性,描述系统的静态结构。 3. 对象图(Object Diagram):用于展示某一特定时间下系统的对象及其之间的关系,描述系统的静态结构。 4. 组件图(Component Diagram):展示软件系统中组件的结构和关系,描述系统的组件和它们之间的通信。 5. 部署图(Deployment Diagram):描述系统中物理设备和软件的部署情况,展示系统的物理结构。 6. 顺序图(Sequence Diagram):用于描述对象之间的交互,强调时间顺序。 7. 通信图(Communication Diagram):描述对象之间的交互,强调对象之间的消息传递。 8. 引用图(Timing Diagram):展示对象的状态和消息在时间上的变化,描述时间顺序和对象状态的变化。 9. 交互概述图(Interaction Overview Diagram):描述多个时序图、活动图和通信图之间的交互。 10. 状态图(State Machine Diagram):用于描述对象在其生命周期中状态的变化和触发这些变化的事件。 11. 活动图(Activity Diagram):用于描述系统的业务流程,显示业务流程的流转顺序和各种操作的控制流程。 12. 混合结构图(Composite Structure Diagram):展示系统中复杂对象的结构和关系,描述对象的复合结构。 13. 包图(Package Diagram):用于组织和管理UML模型的组件,展示模型元素的层次结构。 14. 剖面图(Profile Diagram):用于扩展或自定义UML元模型,表示模型元素的语义扩展。 ### 回答2: UML(Unified Modeling Language)是一种用于软件开发的建模语言,旨在帮助开发人员设计和构建高质量的软件系统。UML 2.0 版本提供了14种不同类型的图形,每种图像都有其特定的用途,如下所示: 1. 用例图(Use Case Diagram):用于描述系统的功能和用户之间的关系,显示系统中的不同角色和用例之间的交互。 2. 类图(Class Diagram):用于表示系统中的类、接口和它们之间的关系,显示类的属性、方法和关联关系。 3. 对象图(Object Diagram):用于展示类的实例以及它们之间的关系。 4. 顺序图(Sequence Diagram):用于展示对象之间的交互和消息传递的顺序。 5. 协作图(Collaboration Diagram):类似于顺序图,用于展示对象之间的合作和消息传递。 6. 状态图(State Machine Diagram):用于表示对象的不同状态以及状态之间的转换。 7. 活动图(Activity Diagram):用于展示系统中的工作流程、行为和控制流程。 8. 构件图(Component Diagram):用于展示系统的物理组成部分以及它们之间的依赖关系。 9. 部署图(Deployment Diagram):用于展示系统的物理架构和组件之间的部署关系。 10. 包图(Package Diagram):用于组织和管理类、包和其他模型元素之间的层次关系。 11. 通信图(Communication Diagram):类似于协作图,用于展示对象之间的通信和消息传递。 12. 交互概览图(Interaction Overview Diagram):用于展示多个交互图的概览,可以简化复杂的交互图。 13. 定时图(Timing Diagram):用于展示对象之间的时序关系,表示不同对象的活动和事件的发生顺序。 14. 位置图(Composite Structure Diagram):用于展示系统中的组合结构,显示组合部分和整体之间的关系。 通过使用这些不同类型的UML图,开发人员可以更好地理解和描述软件系统的各个方面,从而实现更加高效和可靠的软件开发过程。 ### 回答3: UML 2.0是一种软件工程领域常用的建模语言,它提供了一系列的图表来描述软件系统的不同方面。以下是UML 2.0中的14种常见图表: 1. 用例图:用于描述系统中不同角色(actor)与系统功能(use case)之间的交互。 2. 类图:用于描述系统中的各个类、类之间的关系和属性、方法等。 3. 对象图:用于展示系统中对象及其关系,具体到某个时间点的对象实例。 4. 序列图:用于描述对象之间的交互顺序,显示消息在对象之间的传递和响应。 5. 协作图:也称为协作图表,描述多个对象之间的协作结构和消息交互。 6. 状态图:用于描述对象在其生命周期内各种状态和转换的图表。 7. 活动图:用于描述系统中的工作流程、业务流程,显示活动之间的流转和并发。 8. 组件图:用于展示系统中的组件及其关系,显示组件间的依赖、接口和部署等信息。 9. 部署图:用于展示系统中的物理部署架构,显示软件和硬件组件的布局。 10. 通信图:也称为协作图,描述不同对象间的交互和消息传递。 11. 包图:用于组织和展示系统中各个元素(如类、包)之间的层次和依赖关系。 12. 构件图:用于描述系统内部的构建组件和构建关系。 13. 时间图:用于描述系统中事件的发生和顺序。 14. 概览图:是一个综合图表,用于概述系统中各个图表之间的关系和结构。 这些图表在软件开发中起到了重要的作用,帮助开发团队更好地理解和设计系统。不同的图表适用于不同的场景,通过这些图表的使用,可以提高团队的沟通和协作效率,同时也可以提高软件质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值