1、什么是UML?

UML是统一建模语言(Unified Modeling Language),是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。UML语义定义了静态模型和动态模型。结构模型强调系统的对象结构,入对象的类、接口、属性和关系;行为模型关注的是系统对象的行为动作,如对象的方法、交互、协作和状态。UML表示符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。重要内容由9种图来定义,包括用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。

UML的特点是:

(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效地消除了各种建模语言之间不必要的差异,它实际上是一种通用的建模语言。

(2)UML建模能力比其他面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。

(3)UML是一种建模语言,而不是一个开发过程

UML的构成是:

2、UML图之类图

怎么画类图?用什么工具?

使用工具:Visio或者processon在线作图

在类图中一共包含了以下几种模型元素,分别是:类(Class)、接口(Interface)以及类之间的关系。

2.1类(Class)

在面向对象编程中,类是对现实世界中一组具有相同特征的物体的抽象。

2.2 接口(Interface)                                             

  接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。在UML中,接口使用一个带有名称的小圆圈来进行表示。

2.3、类图中关系(relation)

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

1. 泛化(Generalization)

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

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

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

2. 实现(Realization)

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

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

3.关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,

丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

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

4.聚合(Aggregation)                         

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

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

【代码体现】:成员变量

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

5.组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。

如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,

它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

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

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,

所以要尽量不使用双向的互相依赖.

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

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

各种关系的强弱顺序:

泛化(类与继承关系) = 实现(类与接口关系) > 组合(整体与部分的关系) > 聚合(整体与部分的关系) > 关联(拥有的关系) > 依赖(使用的关系

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

什么是UML、UML类图相关推荐

  1. [UML]UML系列——类图class的关联关系(聚合、组合)

    关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...

  2. java中类图概念,程序员眼中的UML(4)--类图释疑之一,Attribute和Property之区别

    程序员眼中的UML(4) --类图释疑之一,Attribute和Property之区别 上一篇中提出了很多问题,其中最令人费解的可能就是Attribute和Property之区别了吧.我在网络上寻找良 ...

  3. Eclipse 答疑:Eclipse 使用 Amateras UML 创建类图点击 Finish 没反应解决方式汇总

    文章目录 前言 一.问题产生场景 1.1.Amateras UML 创建类图没反应 二.问题原因分析 三.问题定位及解决 3.1.定位检查版本支持信息 3.2.问题确认过程 3.3.解决方式验证 四. ...

  4. UML软件工程--类图

    UML 基础:类图 选自:IBM 这是关于统一建模语言.即UML 里采用的基本图的一系列文章的一部分.在我 先前关于序列图的文章 里,我把重点从 UML 1.4 版,转移到 OMG的采用UML 2.0 ...

  5. 建立对象模型即使用UML画类图

    UML类图画法及其之间的几种关系 最近复习软件工程的考试,大题需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多, 上百度进行搜索,发现了一篇学习笔记,整理总结的不错哦 自我总结: 看见建 ...

  6. 使用Visio—UML画类图

    在一个VS工程中,由于类的个数较多,而参数描述不是特别清晰.若此工程的生命周期较长,则有必要对工程进行完整分析,给出完整的文档.需要画出类图,并对每个成员进行详细描述. 一.画出类图 在VIsio中, ...

  7. UML学习——类图(三)

    1.类图 UML类图是用来描述类.接口.协作及它们之间的关系的图.用来显示系统中各个类的静态结构. 2.类图的组成元素 类图由以下六种元素组成:类,接口,泛化关系,关联关系,依赖关系,实现关系. 3. ...

  8. UML学习-----类图

    1.什么是类图 类图(Class diagram)主要用于描述系统的结构化设计.类图也是最常用的UML图,用类图可以显示出类.接口以及它们之间的静态结构和关系. 2.类图的元素 在类图中一共包含了以下 ...

  9. 图书馆的uml概念类图怎么画_设计模式:UML?设计原则?

    设计模式:UML是怎么回事?设计原则? 还未毕业,想着至少大学毕业前,设计模式多多了解,所以做相关笔记. UML相关概念 UML(Unified *统一* Modeling *建模* Language ...

  10. 【UML】类图Class diagram(转)

    http://blog.csdn.net/sds15732622190/article/details/48860711 前言 说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例 ...

最新文章

  1. Kafka:分布式消息队列的抽象模型
  2. js替换iframe的内容
  3. 从EXCEL文件将数据导入数据库的向导程序设计!
  4. Ice_cream's world I HDU - 2120(并查集判环)
  5. JAVA中注解controller_SpringMVC之基于注解的Controller
  6. 远程连接:hive 报错:Permission denied: user=anonymous, access=EXECUTE
  7. python常用代码大全-Python常用库大全,看看有没有你需要的
  8. 数据结构和算法——八种常用的排序算法----选择排序
  9. ie-此更新不适应于此电脑
  10. 团队管理(二)-敏捷开发最佳团队协作管理平台(TAPD)
  11. html如何设置自动点击事件,html 如何设置打开网页时自动触发按钮的单击事件
  12. 推荐几个选择时间.日期的免费插件 js
  13. 七夕节程序员应有的表白方式
  14. 用卷积神经网络(CNN)识别文字
  15. 早期微处理器相关的中文翻译书籍
  16. WebApp最佳实践用户体验篇之如何针对多种屏幕尺寸设计合理的移动应用
  17. 预言机理解:A Scalable Architecture for On-Demand, Untrusted Delivery of Entropy
  18. VB中If与ElseIf的区别
  19. 【2018可信云大会】太平洋保险丰隽玮:微服务架构实施与治理
  20. 1-10 Burpsuite 暴力破解用户密码

热门文章

  1. LVDS接口和LVDS技术
  2. 16春季计算机应用基础,西交16春季《计算机应用基础》在线作业及答案
  3. spring常见面试题(2023最新)
  4. 跟着iMeta学做图|NMDS分析展示群落beta多样性
  5. C语言简单递归实现字符串逆序输出
  6. Java开发花三个月狂刷“面试宝典”成功从小厂35K跳槽到阿里50K
  7. 用python做线性规划
  8. 用VUE实现注册页(短信验证码登录)
  9. linux模糊查找目录文件,详解Linux查找目录下的按时间过滤的文件
  10. EasyRecovery2022数据恢复软件稳定版及版本区别对比