迅速掌握统一建模语言UML图

统一建模语言 是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

 

这个语言由葛来迪·布区,伊瓦尔·雅各布森与詹姆士·兰宝于1994年至1995年间,在Rational Software公司中开发,于1996年,又进一步发展。UML集成了Booch,OMT和面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。

 

UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关面向对象的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助它建立一个业界标准。

 

UML图分为两大类:UML结构图和UML行为图

9a0981fa567c466285d8920e2138e2b2.png

  1. UML结构图

    1.1 类图

    类图是软件工程的统一建模语言一种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。

    cb3e821d69654d11a1797f68b743dee6.png

    1.2 组件图

    在统一建模语言中,组件图表示组件是如何互相组织以构建更大的组件或是软件系统的。 他们被用来标示任意复杂系统的结构。

    88028398ebdc4040849d9bcab6309298.PNG

    1.3 复合结构图

    组合结构图是UML的一种结构图。“结构”是指元素之间的相互连接,实例通过通信连接合作以实现某目的。 组合结构图的结点元素有:部件、端口、合作、合作使用;连接元素有:连接件、角色绑定。

    6638c1551f994d099a44eafa57f93d37.png

    1.4 部署图

    部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。

    b3c8141ec6f8462a827c17a4c6705fee.png

    1.5 对象图

    对象图是用于呈现一组对象和它们之间的关系作为一个实例。类图和对象图的基本概念是相似的。对象图也代表了一个系统的静态视图,但这种静态视图是系统在某一时刻的一个快照。

    97d7bf8f901741f39e844c9115bacd11.jpg

    1.6 包图

    包图(Package Diagram)是UML中的组织图形,其能有效的组织好各种UML图和表达思路,其功能是组织包内元素,控制访问。

    40b9caca64ac48dcb779abedbd486638.gif

    1.7 剖面图

    剖面图又称剖切图,是通过对有关的图形按照一定剖切方向所展示的内部构造图例,剖面图是假想用一个剖切平面将物体剖开,移去介于观察者和剖切平面之间的部分,对于剩余的部分向投影面所做的正投影图。

    b5e9f4f202554314a860264670bd70d8.jpg

     

  2. UML行为图

    2.1 活动图

    活动图(英语:activity diagram)是工作流的图形化表示。活动图的主要由活动和动作构成,也可以支持分支选择、迭代、并行。在 UML 中,活动图主要用于为计算性和组织性过程(即工作流)建模,相关活动之间的数据流也在其覆盖范围之内。

    0cc0e447b8884031af0eb406f05bbdd4.png

    2.2 通信图(协作图)

    通信图,以前称之为协作图,是一种交互图,所显示消息与顺序图相似,但是它更侧重于对象间的联系。在通信图中,对象之间显示关联连接器。消息附加到这些关联上,显示短箭头指向消息流的方向。消息的顺序通过编号码显示。

    fe24872d12994dd9a5915a4db59d9a1e.GIF

    2.3 交互纵览图

    交互概要图(Interaction Overview Diagram),是统一塑模语言(UML)的一种图示,系在活动图的基础上,使用“交互框”作为元素,替代活动图中的“活动”。交互框间以“控制流”连接。交互概述图常用来描述用例的正常流与替代流之间的关系,作为内部协作图。

    c09588de663a412284ee9d14ae61b1a4.png

    2.4 时序图

    序列图(Sequence Diagram),亦称为循序图,是一种UML行为图。有的人翻译为时序图,实际上是不准确的,sequence这个单词并无"时间"的意思,只有序列,顺序等意思。根据UML规范中对Sequence Diagram的描述: A sequence diagram describes an Interaction by focusing on the sequence of Messages that are exchanged, along with their corresponding Occurrence Specifications on the Lifelines. 它描述了消息在生命线上按照约定顺序执行一种交互行为。它可以表示用例的行为顺序,当执行一个用例行为时,序列图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

    821c63c89b74454cb400cf897c99e683.png

    2.5 状态图

    状态器是有限状态自动机的图形表示。另一种可能的表示是状态转移表。状态图有很多形式,它们有稍微的差异并有不同的语义。

    ff9cf62d87594551aa41aadc4bfd3b47.gif

    2.6 计时图

    计时图侧重于图中沿时间线更改的消息或条件的计时或持续时间。创建计时图以表示系统计时的一部分。可以使用计时图来检查时间约束和持续时间以及对它们进一步进行建模。可以创建多个计时图,每个计时图重点关注交互的不同生命线或视图。您添加到时序图的元素不会添加到相应的计时图。但是,您添加到计时图的元素会添加到相应的时序图。可以通过创建新元素或者选择现有元素来向计时图中添加元素。计时图不规范,时序图是规范的。计时图仅表示交互的一部分视图,因此,并不包含时序图的所有元素。

     

     

    以下示例说明了一个计时图,该计时图包含两个生命线、状态不变量、消息、持续时间观察和约束以及时间观察和约束。

    c56018d87eb44f0e92d85a3a47a7b2f5.jpg

    2.7 用例图

    用例图(英语:use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。用例图也经常和其他图表配合使用。

    891594fb10494c199461ae7b19bdc0cb.png

    UML应用程序

开源软件和自由软件中

 

  • ArgoUML,UML设计工具

  • Dia,可绘制流程图以及包含UML在内的多种图形

  • Umbrello,强大而又界面友好的UML工具。是KDE的一部分。

  • UMLet,用Java实现的UML简单绘图工具

  • Unimodeler,Linux下支持9种UML图和向量打印的工具

  • astah*,Java和UML开发者环境

  • Jumli,用Java实现,支持C++/C#/Java以及解析/生成源代码

  • omondo UML,Eclipse的UML插件,提供有限功能的免费版(需注册)和完整的商业版

  • Poseidon for UML,专业UML工具,提供免费的社区版(Community Edition)。从开源项目ArgoUML而来。

  • Violet是为学生、教师以及只需要快速创建简单UML的应用者而设计的工具。GPL授权

  • SiSy, SimpleSystem

b3e74d505dea4bcba7ef2cb422b6f7bf.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26554.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML建模三个工具: StarUML ,Telelogic TAU 和 Rose

UML建模软件目前用的主要有3种: 商业版本:Telelogic TAU 和 Rational Rose 开源版本:StarUML Telelogic TAU与Rational Rose的功能很强,但是需要买License。 StarUML就是希望能提供和TAU/Rose一样功能的开源版本。 目前使用起来…

统一建模语言UML(5)活动图

与其他图的区别 活动图与传统的流程图十分相似,活动图与流程图的最主要的区别在于,活动图能够支持活动的并行行为。 交互图和活动图都是用来对系统动态方面进行建模,区别: 交互图的节点是对象,描述了对象之间通过消息…

一、设计模式 - UML (统一建模语言) - 类图

文章目录 前言UML 类图1. 类图的自身结构2. 关联关系2.1. 自关联2.2. 单向关联2.3. 双向关联 3. 聚合关系4. 组合关系5. 依赖关系6. 继承关系7. 实现关系 前言 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言&a…

redux在react中的应用,使用antdDesign完成购物车

目录 一.redux的认识 二.什么时候使用redux 三.安装redux 四.redux的使用 1.创建store 2.创建reducer 3.创建action 4.在页面中引入store (1)在商品列表页引入store (2)在购物车页面引入store 五.运行效果图 一.redux的认识 redux 和react没有什么直接的关系&#x…

小黑跟老黑们夜骑车拍完了毕业照面试了两场的leetcode之旅:793. 阶乘函数后 K 个零

小黑代码 class Solution:def preimageSizeFZF(self, k: int) -> int:# 获取n的阶乘的0个数lru_cachedef get_zero(n):if not n:return 0return (n//5) get_zero(n//5)# 二分查找def bin_search(k):# 定义左右指针left 0right int(1e10)while left < right:mid (lef…

python基础 | Pandas基础

文章目录 &#x1f4da;基本数据结构&#x1f407;Series&#xff1a;存储一维&#x1f407;DataFrame:存储二维&#x1f407;Series和DataFrame的关系 &#x1f4da;常用基本函数&#x1f407;数据基本操作&#x1f955;列的查改增删&#x1f440;查看列&#x1f440;修改列&a…

Python面向对象二(第十二讲)

文章目录 知识点1.私有属性与私有方法1.私有属性2.私有方法 2.成员3.实例属性1.类属性(静态属性)2.属性总结 4.实例方法5.类方法6.静态方法7.封装介绍8.继承(重点)9.新式类与经典类练习 10.单继承1.super()练习 11.作业 知识点 私有属性与私有方法成员属性方法封装继承多态 1…

常用设计模式系列(十)—装饰者模式

第一节 前言 各位好&#xff0c;首先我要先恭喜下自己粉丝即将破百&#xff0c;也谢谢各位的捧场&#xff0c;不过也跟我自己的努力密不可分&#xff0c;我也要继续加油&#xff0c;输出更好的文章来回报大家&#xff0c;也希望大家多提建议&#xff0c;有问题我也会及时改进。…

摆摊计划1(万一以后找不到工作)

货源&#xff1a;阿里巴巴正规平台 卖炸串 硬件&#xff1a; 多功能烤肠机 购买链接&#xff1a;脆皮烤肠机燃煤气商用油炸锅商用摆摊热狗机肠机关东煮组合机批发 (1688.com) 成本&#xff1a;379.6元 食材&#xff1a; 淀粉肠&#xff08;100支试水&#xff09;&#xff…

TCP/IP协议

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 TCP/IP协议应用层协议自定义应用层协议DNS 传输层协议端口号UDP协议UDP协议端格式 TCP协议TCP协议段格式TCP工作机制确认应答…

基于HTML+CSS+JavaScript制作美食文化网站 ——卡通创意的烧烤(5个页面) html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

c语言-喝饮料问题

/* 喝饮料问题&#xff1a; 1瓶饮料1元&#xff0c;2个空瓶可以换一瓶饮料&#xff0c;给20元&#xff0c;可以喝多少饮料 */#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int man 0, kong 0, sum 0;man 20; //一开始可以买的饮料数sum 0; /…

如何完美吃下二叉树?——二叉树练习题

文章目录 开胃前菜 基础概念选择题主菜 二叉树oj题1.单值二叉树题目思路1代码思路2代码递归展开图 2. 检查两颗树是否相同题目代码 3. 对称二叉树题目思路代码 4. 二叉树的前序遍历题目代码 5. 另一颗树的子树思路代码 6.二叉树遍历题目代码 7.二叉树的层序遍历准备环节代码实现…

动物园游记

这是学习笔记的第 1887 篇文章 今天本来打算去科技馆&#xff0c;结果发现就今天闭馆&#xff0c;真是不巧&#xff0c;于是改换了方向去了北京动物园。 早两年说动物园&#xff0c;基本都和服装批发能联系起来&#xff0c;我是纯粹的去看动物的。确切的说是陪孩子去看动物的。…

【Java核心技术卷】I/O详析

文章目录 概述Java io基本概念关于流流的分类 Java io框架一、以字节为单位的输出流的框架图&#xff08;1&#xff09;框架图图示&#xff08;2&#xff09;OutputStream详解&#xff08;3&#xff09;OutputStream子类&#xff08;4&#xff09;引申&#xff1a;打印流 二、以…

深圳-上海-呼伦贝尔-漠河-哈尔滨环行手记

C语言的精髓是指针&#xff0c;这是手艺人的小幸运&#xff0c;但这是程序员的悲哀。 今年&#xff08;2018年春节前&#xff09;的假期比较特殊&#xff0c;我这一出去就是20多天&#xff0c;请了十来天的年假…1月27号就出发离开深圳了&#xff0c;考虑到1月25号和1月26号两天…

魔幻的2020,对我来说却是逐渐觉醒的一年

2020年的最后一天&#xff0c;按照惯例总结一下成果&#xff0c;同时也制定一下来年的目标&#xff0c;每年不总得给自己立几个flag。 关于公众号 先说公众号&#xff0c;其实开通了很多年&#xff0c;直到今天&#xff0c;还差一百多粉丝才突破一万&#xff0c;这样的成绩算…

美团 大规模商品知识图谱的构建与应用

作者 | 曹雪智博士 美团 技术专家 来源 | DataFunTalk 在互联网新零售的大背景下&#xff0c;商品知识图谱作为新零售行业数字化的基石&#xff0c;提供了对于商品相关内容的立体化、智能化、常识化的理解&#xff0c;对上层业务的落地起到了至关重要的作用。 相比于美团大脑中…

连投两笔,低温预制烤肠为何成为小红书的“心头爱”?

近年来&#xff0c;随着人们生活水平的不断提高和生活节奏的加快&#xff0c;消费者的食品消费观念已经从最初的满足于温饱发展成为追求高品质的消费&#xff0c;对食品健康、质量和用餐效率等提出新要求&#xff0c;低温预制食品的需求不断提升。 根据 Frost & Sullivan&…

基于JAVA的网上水果生鲜超市商城SSM【数据库设计、论文、源码、开题报告】

叿狆号:“IT软件学习社” 主要使用技术 springspringmvcmybatisjspmysqltomcat 功能介绍 &#xff08;1&#xff09;登录注册功能&#xff1a;用户打开系统&#xff0c;浏览挑选生鲜&#xff0c;在购买生鲜之前&#xff0c;要进行注册登录&#xff0c;保证一人一个账号&…