大厂业务开发面试必问的UML你都会了吗?(上)

简介: 大厂业务开发面试必问的UML你都会了吗?(上)

0 简介

统一建模语言(Unified Modeling Language,UML ),非专利的第三代建模和规约语言。一种用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法。

UML展现了一系列最佳工程实践,这些最佳实践在对大规模复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

UML2.2共定义了14种图示,分类如下:

结构式图形

系统式的建模:

  • 静态图(类图,对象图,包图)
  • 实现图(组件图,部署图)
  • 剖面图
  • 复合结构图

行为式图形

系统模型中触发的事件:

  • 活动图
  • 状态图
  • 用例图

交互式图形

属于行为式图形子集合,强调系统模型中资料流程:

  • 通信图
  • 交互概述图( UML2.0 )
  • 时序图( UML2.0 )
  • 时间图( UML2.0 )

UML 类图

  • Class Diagram:用于表示类、接口、实例等之间相互的静态关系
  • 虽然名字叫类图,但类图中并不只有类

UML 全用例

8.png

UML箭头方向:子类=》父类

可能会认为子类是以父类为基础的,箭头应从父类指向子类。定义子类时需要通过extends关键字指定父类。子类一定是知道父类定义的,但父类并不知道子类的定义。只有知道对方信息时才能指向对方。

所以箭头方向是从子类指向父类

三角箭头

9.png

实线-继承

10.png

is-a关系,扩展目的,不虚,很结实。

虚线-实现

11.png

虚线代表”虚”,无实体。

实线-关联 虚线-依赖

12.png

◆虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无

表示一种使用关系,一个类需要借助另一个类来实现功能

一般是一个类使用另-个类做为参数使用, 或作为返回值


◆实线-关联关系:关系稳定,实打实的关系,铁哥们

表示一个类对象和另一个类对象有关联

通常是一个类中有另一个类对象做为属性


如下两种用菱形表示,像一个盛东西的器皿(如盘子):

空心菱形 - 聚合

  • 聚合:代表空器皿里可以放很多相同东西,聚在一起(箭头方向所指的类)
  • image.png
  • 整体和局部的关系,两者有独立生命周期,has a关系
  • 弱关系
  • 消极的词:弱-空

实心菱形 - 组合

14.png

15.png

16.png

整体与局部的关系,和聚合关系相比,关系更加强烈

二者有相同的生命周期,contains-a关系

强关系,积极的词:强 - 满

常见数字表达及含义,假设有A类和B类,数字标记在A类侧

0..1:0或1个实例.

0..*:0或多个实例.

1..1:1个实例.

1 : 只能有一个实例.

1.. * : 至少有一个实例.

时序图

Sequence Diagram :是显示对象之间交互的图,这些对象是按时间顺序排列的。

时序图中包括的建模元素主要有:

  • 对象( Actor)
  • 生命线( Lifeline )
  • 控制焦点( Focus of control)
  • 消息( Message )
  • 17.png
目录
相关文章
|
JavaScript 前端开发 应用服务中间件
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
这篇文章分析了Vue项目在服务器部署后出现404错误的原因,主要是由于history路由模式下服务器缺少对单页应用的支持,并提供了通过修改nginx配置使用`try_files`指令重定向所有请求到`index.html`的解决方案。
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
|
存储 安全 Java
每日大厂面试题大汇总 —— 今日的是“美团-后端开发-一面”
文章汇总了美团后端开发一面的面试题目,内容涉及哈希表、HashMap、二叉树遍历、数据库索引、死锁、事务隔离级别、Java对象相等性、多态、线程池拒绝策略、CAS、设计模式、Spring事务传播机制及RPC序列化工具等。
300 0
|
存储 消息中间件 NoSQL
每日大厂面试题大汇总 —— 今日的是“京东-后端开发-一面”
文章汇总了京东后端开发一面的面试题目,包括ArrayList与LinkedList的区别、HashMap的数据结构和操作、线程安全问题、线程池参数、MySQL存储引擎、Redis性能和线程模型、分布式锁处理、HTTP与HTTPS、Kafka等方面的问题。
488 0
|
NoSQL 前端开发 关系型数据库
第四次面试总结 — 嘉和智能 - 全栈开发
本文是作者对嘉和智能全栈开发岗位的第四次面试总结,主要围绕对各种技术栈的了解程度进行提问,包括数据库的使用经验、对Redis和nginx的理解以及前端技能水平。
129 1
|
SQL 安全 关系型数据库
第三次面试总结 - 吉云集团 - 全栈开发
本文是作者对吉云集团全栈开发岗位的第三次面试总结,面试结果非常好,内容全面覆盖了Java基础、MySQL和项目经验,作者认为自己的MySQL基础知识稍弱,需要加强。
151 0
第三次面试总结 - 吉云集团 - 全栈开发
|
消息中间件 存储 前端开发
资深Android开发的5个经典面试题
本文首发于公众号“AntDream”,欢迎关注。文章详细解答了五个常见的Android面试题,涵盖内存泄漏与溢出、Binder机制、MVC/MVP/MVVM架构、Handler机制及Context对象等内容,帮助读者深入了解Android开发的核心概念。
297 0
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
185 0
|
存储 Java 数据库
每日大厂面试题大汇总 —— 今日的是“顺丰-后端开发-一面”
文章汇总了顺丰后端开发一面的面试题目,涵盖了Java虚拟机内存模型、HashMap与ConcurrentHashMap的区别、Spring框架设计模式、SpringBoot与SpringMVC差异、Nacos注册中心原理、Seata分布式架构、MySQL事务隔离级别、数据库死锁问题解决方法、乐观锁实现方式、HBASE底层设计、BIO与NIO区别、以及为何不使用现有开源框架而选择自建平台等问题。
156 0
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
1234 0
|
Java 编译器 开发工具
JDK vs JRE:面试大揭秘,一文让你彻底解锁Java开发和运行的秘密!
【8月更文挑战第24天】JDK(Java Development Kit)与JRE(Java Runtime Environment)是Java环境中两个核心概念。JDK作为开发工具包,不仅包含JRE,还提供编译器等开发工具,支持Java程序的开发与编译;而JRE仅包含运行Java程序所需的组件如JVM和核心类库。一个简单的"Hello, World!"示例展示了两者用途:需借助JDK编译程序,再利用JRE或JDK中的运行环境执行。因此,开发者应基于实际需求选择安装JDK或JRE。
207 0