九 UML类图

迅速掌握统一建模语言UML图 统一建模语言 是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。   这个语言由葛来迪·布区,伊瓦尔·雅各布森与詹姆士·兰宝于1994年至1995年间,在Rational Software公... 阅读详情

1 UML基本介绍

  • UML——Unified modeling language UML
    (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
  • UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图:
    在这里插入图片描述

1.1 UML 类图的分类

画UML图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,UML图分类:

  • 用例图(use case)
  • 静态结构图:类图、对象图、包图、组件图、部署图
  • 动态行为图:交互图(时序图与协作图)、状态图、活动图

说明:
类图是描述类与类之间的关系的,是UML图中最核心的

在讲解设计模式时,我们必然会使用类图,为了让学员们能够把设计模式学到位,需要先给大家讲解类图

  • 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。
  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合

2 画UML类图的工具

使用UML来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模.
用什么软件来画类图不重要.主要是自己觉得好用就可以了.我们学习画类图是用eclipse 的插件AmaterasUML来画的.主要是安装简单,如果你们喜欢用其它的软件来画也是可以的.下面我们来说一下AmaterasUML怎么安装.

2.1 AmaterasUML安装

安装AmaterasUML 之前请确保你们的eclipse已经安装成功并且可以成功运行.安装
第一步 : 下载 AmaterasUML官网地址:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML
但官网有时候不能下载.我这里有一份百度云的:
链接:https://pan.baidu.com/s/1W8-08XCmT_filIMHDX4f3A
提取码:y6az

第二步: 解压压缩包,把三个jar包复制到eclipse的安装目录下的plugins 文件夹下:
在这里插入图片描述
第三步 : 重启eclipse

第四步 : 测试:
1 随便在一个java工程下点击 File -> New -> other,选择如图:
在这里插入图片描述
创建MULfile成功.说明安装成功.(有些教程说要设置http,但我是不安装也成功了,所以你们先不设置看一下,如果不成功在设置)

MULfile视图说明如图:
在这里插入图片描述
上面的按钮的含义一定要记住,很重要!

3 依赖关系(Dependence)

3.1 介绍

只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。

3.2 实例

public class PersonServiceBean {
	private PersonDao personDao;//类
	public void save(Person person){}
               public IDCard getIDCard(Integer personid){}
	public void modify(){
		Department department = new Department();
               }
}
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}

用UML类图来表示上面的类的关系如下图:
在这里插入图片描述
注意: 看线头的方向不要弄反了.

3.3 小结

依赖关系是一个很通用的关系,里面包含了很多其他的依赖关系(后面会介绍),以下的几种情况都是依赖关系:

  • 类中用到了对方
  • 如果是类的成员属性
  • 如果是方法的返回类型
  • 是方法接收的参数类型
  • 方法中使用到

4 泛化关系(generalization)

4.1 介绍

泛化关系实际上就是继承关系,他是依赖关系的特例.

4.2 实例

public abstract class DaoSupport{
	public void save(Object entity){
	}
	public void delete(Object id){
	}
}

public class PersonServiceBean extends Daosupport{
}

**UML类图表示 : **
在这里插入图片描述

4.3 小结

  • 泛化关系实际上就是继承关系
  • 如果A类继承了B类,我们就说A和B存在泛化关系

5 实现关系(Implementation)

5.1 介绍

实现关系实际上就是A类实现B接口,他是依赖关系的特例

5.2 实例

public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}

UML类图:
在这里插入图片描述

6 关联关系(Association)

6.1 介绍

  • 关联关系实际上就是类与类之间的联系,他是依赖关系的特例.
  • 关联具有导航性:即双向关系或单向关系.
  • 关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到 m个都可以),“m…*”(表示至少m个)。

6.2 实例

单向一对一关系
public class Person {
     private IDCard card;
}
public class IDCard{}


//双向一对一关系
public class Person {
     private IDCard card;
}
public class IDCard{
     private Person person
}

UML类图:
在这里插入图片描述

7 聚合关系(Aggregation)

7.1 介绍

聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性.

7.2 实例

一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示.

public class Computer{
	private Mouse mouse;
	private Monitor monitor;

	public void setMouse(Mouse mouse){
		this.mouse = mouse;
	}
	public void  setMonitor(Monitor monitor){
		this.monitor = monitor;
	}
}

对应UML类图:
在这里插入图片描述

8 组合关系(Composition)

8.1 介绍

组合关系:也是整体与部分的关系,但是整体与部分不可以分开。

8.2 实例

在程序中我们定义实体:Person与IDCard、Head, 那么 Head 和 Person 就是 组合,IDCard 和 Person 就是聚合.
但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard 和 Person 就是组合了.

public class Person{
private IDCard card;
private Head head = new Head();
}

public class IDCard {}
public class Head{}

UML类图:
在这里插入图片描述

UML统一建模语言,类图、时序图等详解 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行与分布式系统的建模。 阅读详情

相关推荐

统一建模语言 UML

统一建模语言 UML

xinyuan的专栏 6123

UML 常用九种图

UML(UnifiedModelingLanguage),统一建模语言,是面向对象软件的标准化建模语言。由于面向对象开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)三个阶段,每个阶段都需要统一的符号设计描述和交流,而UML 就是在这种统一的符号表示。 如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。 静态...

努力变得不菜的菜鸡的博客 1345

CMU动作捕捉数据集实战:从AMC文件到Python可视化的完整流程

本文提供了CMU动作捕捉数据集的完整实战指南,详细解析了AMC文件格式,并对比了MATLAB转换、Python原生解析及转换为BVH格式三种数据解析策略。重点介绍了如何构建Python数据处理与可视化管道,包括将数据转换为Pandas DataFrame、绘制时间序列与相关性热力图,以及实现3D骨架动画,帮助开发者高效利用这一经典动作捕获数据集进行运动分析与模型训练。

android的专栏 716

UML类图的 绘制标准 及 绘制工具

讲解绘制类图的标准,以及如何使用ProcessOn(在线工具 无需下载)轻松绘制类图

Fearless____的博客 8565

UOS系统手动添加1920x1080分辨率:xrandr命令详解与持久化配置

本文详细介绍了在UOS系统中使用xrandr命令手动添加1920x1080分辨率的方法。针对系统设置中缺失该选项的常见问题,文章提供了从识别显示设备、使用cvt生成模式、添加并切换分辨率,到通过修改.profile文件实现持久化配置的完整步骤。同时涵盖了虚拟机环境、设备名识别及排错等进阶内容,帮助用户彻底解决UOS分辨率配置难题。

weixin_29300931的博客 499

手把手拆解UCIe协议层:从Raw Mode到Flit Mode,数据包到底经历了什么?

本文深入解析UCIe协议层的数据包处理机制,从Raw Mode到Flit Mode的三大变体(Standard 256B、68B-Enhanced、Latency-Optimized),详细揭示数据包在不同模式下的封装与转换过程。通过工程师视角,展示协议层如何实现多模式动态切换、错误恢复及与D2D Adapter的协同设计,为芯片级互连技术提供实践指导。

weixin_28728495的博客 239

UML九种标准图详解

UML九种标准图详解

深圳市多克创新科技有限公司 2万+

中断向量表配置不当引发Default_Handler死循环问题解析

本文深入解析STM32开发中因中断向量表配置不当导致的Default_Handler死循环问题。以STM32F407VET6为例,详细阐述中断向量表的工作原理、常见触发场景及系统化排查方法,并提供使用STM32CubeMX的正确姿势和手动配置的注意事项,帮助开发者快速定位并解决这一常见难题。

grafana6viz的博客 179

UML图(9种图)

1.类图(Class Diagram) 2.对象图(Object Diagram) 3. 时序图(Sequence Diagram) 4. 通信图(Communication Diagram) 5. 活动图(Activity Diagram) 6. 状态图(State Diagram) 7. 组件图(Component Diagram) 8. 部署图(Deployment Diagram) 9. 用例图(Use Case Diagram)

三万少女的梦中刺客的博客 9518

基于STM32L4XX的环境光传感器(VCNL4040M3OE)应用程序设计

• 集成模块:红外发射器(IRED)、环境光传感器(ALS)、接近传感器(PS)及信号调理IC。#define VCNL4040_I2C_ADDR (0x60 << 1) // 7位地址左移一位。// 组合成16位值。// I2C总线句柄。// 设置参数:ALS集成时间160ms,中断禁止,ALS功能开启。// 设置参数:PS工作频率80Hz,开红外二极管,PS功能开启。// 初始化I2C外设。• 输出类型:I2C总线(ALS/PS)// 2. 配置环境光传感器 (ALS) 并启动。

myron6688的博客 143

AMS TMF8820/21/28 SPAD 掩码和模式选择

为了实现最快的测距周期,将报告周期设置在测距周期以下的毫秒,以确保不会有等待时间。除了8X8固定了pixel的位置意外,其他模式客户可以设计自己的spad掩码,并将spad单独分配给通道。对于这些spad掩码,有一些约束。左下角提示红色代表光学中心,绿色方框表示单个spad,每个MP里可能有2X3个spad,也有2X5个spad,也有3X6+3个spad,这部分适配光学,最大的程度的利用spad区域。以下是几种预定义的spad掩码,非常灵活的配置,来适配各种3X3,4X4,8X8的模式选择。

dream it possible 700

UML中的九大图

UML中有九种常用的图:用例图、类图、对象图、状态图、活动图、时序图、协作图、组件图、配置图一、九大图1、用例图用例图展现了一组用例、参与者以及它们间的关系。 可以用用例图描述系统的静态使用情况。 构成:用例、角色、关系 用例的主要属性: 事件流、前置条件、后置条件、特殊要求、扩展点、问题说明 用例的粒度和范围: 概述级、用户目标级、子功能级2、类图类图展示了一组类、接口

像风走过八千里 3056

走向审计4.0:内部审计数字化转型的路径与方法

企业的内部审计人员可以以数字化为手段,建立内部审计新生态,在数字化过程中引进战略审计、服务审计、开放审计、敏捷审计、数字审计、智慧审计等理念、方法和工具,完成数智生态审计转型。内部审计的审计对象远比国家审计和公众审计丰富和多元化,理论上企业经营管理和日常操作的各个方面都可以成为内部审计的对象,此外还可以开展独立咨询活动。由于内部审计的数字化或数字化的内部审计是实现审计数字化转型的必要条件,是实现“数字引领、数据强审”目标的核心手段,因此企业内部审计部门势必要投入足够的资金和人才来打造一支数字化审计新队伍。

一键难忘的博客 6737

UML九图之一(类图)

        看到网上也有不少UML相关的介绍,但学习起来不够方便。在此就尽可能的总结下UML图,如果有不对的地方,欢迎指正,博客也会不断改正。        UML的重要性和实用性暂且不讨论,需要提一下的是当前选的UML开发工具是startUML2.0。        下面进入今天的重点:UML类图介绍一、类图介绍:        类图是描述系统中的类,以及各个类之间的关系的静态视图。    ...

qq_24477797的博客 1279

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

如何画UML类图

简单介绍 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 类、接口、类图 类 类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。在 UML 中,类使用包含类名、属性和操作且带有分隔线的矩形来表示。 类名 类名(Name)是一个字符串,例如,

java_kider的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java程序设计——UML类图

一、定义 UML即统一建模语言(Unified Modeling Language),它是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 从定义上看可能有点抽象,说白了就是一种由图表组成的标准化建模语言,一般我们理解的语言都是由文字组成,而这种统一建模语言是由图表组成的。我们知道开发一个软件系统,不光只有程序员参与,另外还有分析师、设计

Mr_John 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IDEA快速构建UML类图

目录 1 UML图 1.1 类图概述 1.2 类图的作用 1.3 类图表示法 1.3.1 类的表示方式 1.3.2 类与类之间关系的表示方式 1.3.2.1 关联关系 1.3.2.2 聚合关系 1.3.2.3 组合关系 1.3.2.4 依赖关系 1.3.2.5 继承关系 1.3.2.6 实现关系 2 IDEA快速构建UML类图 1 UML图 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息

赵广陆 3万+

统一建模语言——UML

统一建模语言——UML一、基本概念二、作用三、分类1 用例图2 类图3 对象图4 状态图5 活动图6 序列图(时序图)7 协作图8 构件图9 部署图(配置图)四、UML绘图工具选择: 一、基本概念 统一建模语言(Unified Modeling Language,UML)可以为面向对象系统的产品进行说明、可视化和编制文档,是一种非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。UML的本质是为了更好地交流。 二、作用 1 为软件系统建立可视化模型 基于UML的可视化模

长不大的大灰狼 1万+

【软件工程】一篇入门UML建模图(类图)

来理一理我们前面走过的【软件工程】学习之旅,来帮助大家更好的搞清楚软件工程学习思路。软件工程是什么首先定义软件工程的概念,解释其重要性和目标。要通过系统化(系统定界方法)、工程化方法(引入软件开发过程)来解决软件工程问题说明软件工程面临的挑战,并引入系统化和工程化方法作为解决方案。因为软件工程的定义以及其目标和重要性,要求我们必须要引入工程化(分步骤、有序)、系统化(系统定界法///活动、实体、边界三要素)方法来处理软件工程问题软件开发过程模型在工程化的要求下,有序、有步骤来进行软件工程开发。

十二月的猫 6744

UML类图是什么

一、什么是UML类图 先引用一段百度百科的定义 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。 哈哈,相信你看来这个定义,肯定是迷惑的,但如果用一句话来概述 UML类图就是用来描述类与类

优秀的程序员不应该是CRUD 6445

【UML】详解UML类图

还不是很清楚UML?相信我,进来,五分钟,看完就学会。

BugMan的博客 2061

UML概述及UML类图详解

UML9种常用的图形

qq_39431405的博客 7621

3.UML中的类图及类图之间的关系

统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简...

bater2356的博客 5772

UML类图全解析

画UML图的目的其实就是为了将自己的思想描述给别人,既可以对自己的抽象思路进行完整的实际复现,也可以将自己的思路呈现给别人去理解想法(软件是如何设计的),UML图在软件工程中很重要。只要在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译也无法通过。泛化关系其实就是继承关系,它是依赖关系的特例。实现关系就是A类实现了B接口,是依赖关系的特例。关联关系其实就是类与类之间的联系,是依赖关系的特例。关联关系具有导航性:即双向关系或者单向关系。关系具有多重性:1."1":标识有且仅有一个。

2301_79108772的博客 2103
上一篇: 八 设计模式七大原则之合成复用法则
下一篇: 十 设计模式概述
andyonlines
博客等级 码龄7年 17粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值