一文带你入门UML个人文章

官方定义:UML-UnifiedmodelinglanguageUML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的结果

UML是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。制品{Artifact}是指软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等。

简单来说,UML是一门语言,在统一的标准规则下,用于给对象建模,可应用于软件开发过程中的不同场景,如需求分析,组件开发,用例测试等等。

面向对象软件工程的概念由Booch提出,Booch也是面向对象方法最早的倡导者之一。Booch1993表示法比较适用于系统的设计和构造。

Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用面向对象的概念,并引入各种独立于语言的表示符。用对象模型、动态模型、功能模型和用例模型共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的全过程,软件开发人员不必在不同阶段进行概念和符号的转换。OMT-2适用于分析和描述数据为中心的信息系统。

1994年Jacobson提出了OOSE方法,其最大特点是面向用例,并在用例的描述中引入了外部角色的概念。OOSE适合支持商业工程和需求分析。

1996年10月,UML建模语言获得了700多个公司支持,到1996年年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。

1997年年底,OMG组织(ObjectManagementGroup,对象管理组织)采纳UML1.1作为基于面向对象技术的标准建模语言,目前最新版本为UML2.0,UML发展史如下图所示。

其中事物与关系,构成了图

用例图

包图

活动图

UML建模可以达到以下目的:

交互图是描述对象之间的关系以及对象之间的信息传递的图。通常描述一个用例的行为,显示该用例中所涉及的对象之间的消息传递。交互图可以帮助分析人员对战检查每个用例中描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类或方法。

通过斜体名字来表示抽象类

通过增加interface注释来表示接口类

属性写在类图中部

属性的写法:(权限)(属性名):(属性类型)

其中权限有四种,分别为:

最后,下划线表示static

方法写在类图的下方

方法的写法:(权限)(方法名)[(参数名)]:[返回值类型]

方法的权限与static表示方法与属性一致

依赖表示:由依赖方(类B)连线被依赖方(类A),连接线为虚线,终点为箭头状,指向被依赖方(类A)

依赖含义:只要类中用到了对方。即一个类的实现需要另外一个类的协助,如果没有对方,就无法通过编译,就可以表示为依赖关系。其他五种关系都是依赖关系的特例。

代码体现:

类中用到了另一个类

publicclassA{publicBb=null;}publicclassB{}类中用到了另一个类的成员属性

publicclassA{publicStringid=B.id;}publicclassB{publicfinalstaticStringid="001";}泛化

泛化表示:由子类(类B)连线父类(类A),连接线为实线,终点为空心三角形,指向父类(类A)

泛化含义:泛化关系实际上就是继承关系,他是依赖关系的特例,如果A类继承了B类,我们就说A和B存在泛化关系

生活实例:我们知道很多世界上有很多动物,而动物并不具体表示哪一种类型的动物,而是所有类型动物的一个抽象称呼。其中猫属于动物,它拥有动物所拥有的一切属性和方法。比如名字,体重,会动等等。这时我们就可以说猫是继承自动物。猫与动物之间存在泛化关系。

publicclassAnimal{privateStringname;privateintweight;publicvoideat();}publicclassCatextendsAnimal{publicvoidmiao();}实现

实现表示:由实现类(类B)连线接口类(类A),连接线为虚线,终点为空心三角形,指向接口类(类A)

实现含义:实现关系实际上就是A类实现B接口,就表示A类和B类具有实现关系,也是依赖关系的特例

publicinterfaceAnimal{publicvoideat(Stringfood);}publicclassCatimplementsAnimal{publicvoideat(Stringfood){System.out.println("eating"+food);}}关联

关联表示:由类A连线类B,连接线为实线,终点为点/箭头,表示单向关联/双向关联,连接线上可以标注数字,以用来表示类A与类B间的数量关系。

关联含义:实际上就是类与类之间的联系,体现的是业务逻辑的关系,是依赖关系的特例。

生活实例:

代码体现:略

聚合表示:由部分类(类B)连线整体类(类A),连接线为实线,终点为空心菱形,连接线上可以标注数字,以用来表示类A与类B间的数量关系。

聚合含义:聚合关系表示的是整体和部分的关系,整体与部分可以分开,聚合关系是关联关系的特例,所以他具有关联的导航性与多重性,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系

生活实例:一支大雁队伍由许多只大雁组成,大雁可以从大雁队伍中离开独立存在,并且大雁队伍也依然存在,这就表示大雁与大雁队伍是聚合关系。

//聚合关系publicclassComputer{privateMousemouse;privateMonitormonitor;publicvoidsetMouse(Mousemouse){this.mouse=mouse;}publicvoidsetMonitor(Monitormonitor){this.monitor=monitor;}}classMouse{}classMonitor{}组合

组合表示:由部分类(类B)连线整体类(类A),连接线为实线,终点为实心菱形,连接线上可以标注数字,以用来表示类A与类B间的数量关系。

组合含义:组合关系表述的也是整体与部分的关系,但是整体与部分不可以分开,同样,组合关系是关联关系的特例,必须考察具体的逻辑关系而定,语法层面是无法区分的

生活实例:汽车由车身,发动机,轮胎等组成。汽车无法在失去发动机的情况下存在,那么就表示汽车和发动机是组合关系。

/**人和头的关系*/publicclassPerson{privateHeadhead=newHead();//组合关系}classHead{}测试一下

元素表示:用实心的圆点表示

元素介绍:状态图用初始状态(InitialState)表示对象创建时的状态,每一个状态图都要有且只有一个初始状态

元素表示:用一个实心圆外加一个圆圈表示

元素介绍:每一个状态图可能有多个终止状态或者没有(FinalState)

元素表示:这是一个简单的状态表示,用圆形矩形表示状态框,中间写上状态名字

元素介绍:指在对象的生命周期中的某个条件或者状况

元素表示:这是一个完整的状态表示,用圆形矩形表示状态框,分为上中下三部分。最上面写状态名字,中间写状态变量,最下面写行为。

元素介绍:指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。

元素表示:从一个状态到另一个状态之间的连线称为转移,又名迁移,连线为实线,终点为箭头。可在转移上添加转移事件,表示源状态触发转移事件后会进行转移。若不加转移事件,则表示在源状态的内部活动执行完毕后自动触发。

元素介绍:表示状态间的转换

提示:以上只是状态图常用的元素介绍,已足以应用于我们的日常。但其中还存在许多额外的图形表示,如历史状态,内部状态,复合状态等等,限于篇幅就不一一介绍,有兴趣可以自行寻找资料学习。

THE END
1.系统架构设计思维导图模板构件图 部署图 组合结构图 包图 交互概览图 计时图 UML中的图 二、建模语言 2.6 计算机语言 视音频技术 数据压缩技术 虚拟现实(VR)/增强现实(AR)技术 二、多媒体系统的关键技术 2.7 多媒体 霍尔的三维结构 切克兰德方法 并行工程方法 综合集成法 WSR系统方法 二、系统工程方法 1)探索性研究阶段2)概念阶段3)...https://www.processon.com/view/66d673b281c51d1e0e830000
2.软件设计师大题图(Diagram)是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以从不同的角度画图,这样图是对系统的投影 UML2.0提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、组合结构图、部署图、包图、交互概览图和计时图。序列...http://www.mzph.cn/news/840527.shtml
3.面向对象系统分析与设计(MOOC版)陆鑫课后习题答案系统架构的类图模型和包图模型答: 1)类图 2)包图系统架构的动态交互行为通信图模型答:序列图系统架构的构件图和部署图模型答:构件图部署图 第6章 练习题解答一、单选题 1. 聚合线上的黑钻石意味着( D ) A. 通过值聚合 B. 此聚合是复合 C. 部分与整体关系 D. 前面所有的 2. 状态机图是由状态和( C ...https://max.book118.com/html/2022/0411/6011210125004133.shtm
4.A.用例图B.构件图C.类图D.对象图在UML提供的图中,可以采用(33)对逻辑数据库模式建模;(34)用于接口、类和协作的行为建模,并强调对象行为的时间顺序;(35)用于系统的功能建模,并且强调对象间的控制流。 A.用例图 B.构件图 C.活动图 D.类图 点击查看答案 第4题 ___A.用例图B.类图C.对象图D.部署图A.B.C.D. ___ A.用例图 B.类图 ...https://www.shangxueba.cn/842070.html
1.流浪动物领养系统第十周任务增加更多的交互功能,如宠物图片放大、领养流程引导等。 优化后端代码,提高系统性能和稳定性。 与团队成员进行沟通和协作,确保项目的顺利进行。 总之,本周在宠物领养页面的设计和构建方面取得了一定的进展。下周将继续努力,对页面进行优化设计,提高用户体验和系统性能。https://blog.csdn.net/guduxiaogui/article/details/143668015
2.浅谈UML学习笔记之构件图和部署图腾讯云开发者社区为了描述系统实现方面的信息,使系统具有可重用性和可操作性的目的,构件图和部署图来表示实现单元。 1、构件 将系统中可重用的模块封装为具有可替代性的物理单元,称为构件。 构件的特征: 1、代码特征:包含和封装了实现系统功能的类、其他元素的实现代码以及某些构成系统状态的实例对象 ...https://cloud.tencent.com/developer/article/1781333
3.1设计模式.md·CircleCI/repsNoteUML 图 用例视图、设计视图、进程视图、实现视图和拓扑视图 静态图分为:用例图,类图,对象图,包图,构件图,部署图 动态图分为:状态图,活动图,协作图,序列图 1、用例图(UseCase Diagrams): 用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调...https://gitee.com/CircleCI/repsNote/blob/master/1-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md
4.面向对象UML为了对系统进行可视化,可以从不同的角度画图,这样图是对系统的投影。 UML2.0提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、组合结构图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。https://www.jianshu.com/p/2bfbfe610065
5.三软考系统架构设计师笔记计算机系统基础知识51CTO博客软件构件 构件又称为组件,是一个自包容、可复用的一组程序的集合,构件对外提供统一的访问接口,只能通过接口来访问构件,不能直接操作构件内部。构件的两个重要特性是自包容(不依赖其他构件)与可重用。 软件构件的组装模型的开发过程 应用软件 应用软件是为满足用户不同领域、不同问题的应用需求而提供的软件。按照应用...https://blog.51cto.com/u_14032829/10053848
6.高效创建UML图表的工具及最佳实践活动图功能:模拟控制流,展示系统中操作的顺序和分支。 状态机图功能:描述对象在其生命周期中可能经历的状态及其转换。 组件图功能:展示系统内各组件的关系及其组合方式。 部署图功能:建模软件组件的物理部署,展示硬件和软件的配置。 包图功能:管理大型项目的模型,展示子系统或模块之间的结构和依赖性。 https://www.feishu.cn/content/uml-tools-best-practices