用Enterprise Architecture绘制十种UML图

2024-06-06 07:08

本文主要是介绍用Enterprise Architecture绘制十种UML图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UML课程作业要求绘制十种UML图,选择Enterprise Architecture作为绘图工具,每次绘制图都要上网找教程,感觉十分麻烦,而且有些图没有找到具体教程,靠自己摸索找到了绘制方法,现在总结一下使用Enterprise Architecture如何绘制这十种图,方便大家使用。(写完博客后发表发现图都没了,坑爹的CSDN,大家按照文字描述的步骤也能顺利完成)

首先这十种图分别是:

概念类图,活动图,状态机图,用例图,顺序图,通讯图,设计类图,包图,组件图,部署图。

先来介绍一下前五种图的绘制: 

EA的安装应该不用介绍吧,没有任何需要配置的东西,是傻瓜式安装软件。

概念类图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型



选择Domain Model,并确定

2.打开Domain Model,看到如下图:



删掉上面的提示标签,否则最后生成的图中会有多余的标签。

画图用到的工具在左侧栏中,其中class栏是画图时用到的元素,class relationship是元素之间添加关系的标签,common类基本不用


3.绘图方法:

首先是class的添加:点击左栏中的class标签,在绘图区任意位置点击,此时自动弹出一个可以完善类信息的对话框,在概念类图中比较常用的是常规栏里的名称信息和详细信息栏里的添加变量,这是概念类图要求的描述类的两个方面。在详细信息栏里点击变量可添加变量,在弹出的对话框中可以完善变量的信息,包括可见性,类型等等,想要完善的信息都有,无须赘述。

关联的添加:在class relationship中可以添加类之间的关联,选择第一个工具Associate,连接有关联的类,连接完成后,在两个类直接产生了一条直线,双击直线,弹出Associate属性对话框,可以完善关联的属性信息。在常规栏中可以添加属性名称,定义关联的方向,以及样式,所谓的样式即连线的形状。另外概念类图常常需要定义源类和目的类的数目对应关系,在Source Role和Target Role栏中可以定义约束,在约束中填写个数限制即可。


活动图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型

注意这里活动图的模型名称为Dynamic Model,而在选择模型中默认显示的模型是common型的,因此需要在选择类型哪里改为 所有:


打开这个Dynamic View,左栏中工具变化为活动图需要的工具:


3.绘图方法:

泳道的绘制:要注意的是绘图用到的泳道不在工具栏中(不知道为什么这么设置),在绘图区单击右键,选择泳道与矩阵,弹出如下对话框:


点击新建可以再添加用到,注意新添加的泳道是直接向右排在原来泳道旁边的,而且是紧邻的,边界重合的,点击修改可以修改泳道的信息:


其他工具在左栏中应有尽有,需要任何类型结点都有,自取即可,需要修改节点信息则均是双击结点在弹出的对话框中进行修改,无需赘述。


状态机图:

这是我觉得EA比较坑爹的地方,很多图的绘制都藏起来。

1.File->New Project,新建一个project,输入project的名字后首先选择模型,这里选择Use Case Model即可

2.选择菜单栏中的Project:


选择其中的Add Diagram,弹出如下对话框:


左栏中选择第二项UML Behavior,在右侧栏中现则State Machine:


这样,就完成了状态机图的创建

3.此时左栏中是绘制状态机图需要的工具:


要用到的各种结点在左栏中均有,根据需求自取即可


用例图:

File->New Project,新建一个project,输入project的名字后首先选择模型,这里选择Use Case Model即可

打开Use case model这个图,左栏中就有相应的工具,即可绘图


顺序图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型,这里选择Use Case Model即可

2.选择菜单栏中的Project:


选择其中的Add Diagram,弹出如下对话框:


左栏中选择第二项UML Behavior,在右侧栏中现则Sequence:


这样,就完成了顺序图的创建

3.此时左栏中是绘制顺序图需要的工具:


要用到的各种结点在左栏中均有,根据需求自取即可

注意顺序图中的message有的要求是一个返回值,箭头是虚线,此时双击message连线,在消息属性中生命周期底下是否返回进行勾选,则消息变为虚线


通讯图:

感觉这个图的创建是最艰辛的,可能EA是从建立工程的角度出发,所以如果想单独绘制某个图就比较麻烦了。

1.File->New Project,新建一个project,输入project的名字后首先选择模型,这里选择Use Case Model即可

2.此时左栏中是Use Case Model对应的结点类型,点击左栏最上方More tools,选择communication,此时左栏工具变为通讯图要使用的结点

3.注意此时左栏中的工具虽然是绘制通讯图的工具,但是实际是无法进行通讯图绘制的,因为此时在各个对象之间的连接仍然是Use Case Model的连接,你会发现连接两个对象之后是无法在属性中添加消息的,也就是无法添加通讯图要求的那种箭头+消息序号+消息内容那种类型的信息。

4。此时在右栏选择刚刚创建的通讯图中的对象,比如选择Actor1,右键点击,选择添加->interaction->with communication diagram,此时在Actor1中添加了一个真正可用的通讯图模型。

5.点开这个名为Interaction的通讯图,将之前在Use Case Model中建立好的各通讯图元素依次直接拖进绘图区,注意在拖动Actor1时都会自动弹出一个名为粘贴原件的对话框,在粘贴原件到图表中选择“作为原件的Instance”也就是第二项,点击确定,相应的对象就被粘贴到绘图区了。

6.此时创建连接,选择左栏第一个连接工具,连接相应对象,连接完成后,在连接上点击右键,选择Add message from:Source to Target,即可添加消息!可以看到,添加的效果是出现了一个带消息方向箭头,消息序号,消息内容的标签,而如果在第二步中创建连接,是不能添加这种标签的,而这种标签是通讯图必不可少的元素。

7.注意创建消息的顺序,最好按照顺序图的活动顺序进行添加,因为消息的标号是根据消息创建顺序自动添加的,也就是序号顺序为:1,1.1,1.2,1.3,等等

也就是说某个消息序列需要按照顺序创建,小标号是无法修改的。

8.那么如果想创建新的消息序列该怎么办呢?只需要双击新建的标签,注意是标签不是连接,在消息属性的序列表述中选择开始新组即可。


设计类图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型

选择Domain Model,并确定

2.打开Domain Model,在左栏中选择class,并放置在绘图区,双击该class,弹出设置类属性的对话框,可以在常规中设置类名,在详细信息中添加类的变量和方法,并可以对属性和方法的一切信息进行修改。

3.类之间的关联用第一个链接工具,链接后双击链接可以在常规中设置链接的名称和方向,可以在Source Role和Target Role中设置个数约束。


包图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型,选择Domain Model,并确定

2.包的建立选择左栏中的package,输入名称后在弹出的新建图表中选择Package,然后就生成了相应的包,可以向包中添加类,接口,等等元素,在绘制图标时按需选择即可


组件图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型,选择Component,并确定

2.此时左栏中是组件图图对应的工具,在绘制图标时按需选择即可


部署图:

1.File->New Project,新建一个project,输入project的名字后首先选择模型,选择Deployment,并确定

2.此时左栏中是部署图对应的工具,在绘制图标时按需选择即可


PS:在连接不同的类时常常会发现连线方式不理想导致图片效果不理想,能不能手动调节连线呢?你会发现直接拖拉根本不行。此时选中连接,点击右键->线条样式->Tree-Style Vertical(Horizontal),此时线条变成几段的形式,然后再选中该连接,点击右键->线条样式->自定义线条,就可以按照你想要的连接方式进行拉拽了,这样画出的图要美观的多。

这篇关于用Enterprise Architecture绘制十种UML图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035417

相关文章

以canvas方式绘制粒子背景效果,感觉还可以

这个是看到项目中别人写好的,感觉这种写法效果还可以,就存留记录下 就是这种的背景效果。如果想改背景颜色可以通过canvas.js文件中的fillStyle值改。 附上demo下载地址。 https://download.csdn.net/download/u012138137/11249872

XMG 绘制形状

1. 除非是绘制曲线直接使用原生的。如果绘制形状直接使用UIBezerPath  2. 命名原则,类方法以类名开头 UIBezierPath bezierPathWithRect 3.圆角半径 画圆的大小 以每个顶点为圆心。给定的半径为半径画一个1/4圆。把周边的给切掉 4.只有封闭的形状调用这个方法才有用 [path fill] 5. stroke 描边一下

从辉煌到谢幕,十种即将淡出视野的编程语言

概述 在科技的长河中,编程语言如同璀璨的星辰,照亮了人类智慧的夜空。然而,随着时间的流逝,一些星辰逐渐黯淡,甚至面临消失的边缘。本文将带你走进这些编程语言的世界,探讨它们曾经的辉煌、衰落的原因,以及在不断进步的技术浪潮中,它们是否还有重生的可能。 科技浪潮下的淘汰危机 然而,随着技术的发展,一些编程语言开始显得力不从心。R语言,曾是数据分析的宠儿,现在却因为Python的多功能性而逐渐失宠。Ac

[最全]设计模式实战(一)UML六大原则

UML类图 UML类图是学习设计模式的基础,学习设计模式,主要关注六种关系。即:继承、实现、组合、聚合、依赖和关联。 UML类图基本用法 继承关系用空心三角形+实线来表示。实现接口用空心三角形+虚线来表示。eg:大雁是最能飞的,它实现了飞翔接口。 关联关系用实线箭头来表示。当一个类"知道"另一个类时,可以用关联。eg:企鹅需要"知道"气候的变化,需要"了解"气候规律。 聚合关

red hat enterprise 下完全删除oracle 数据库

步骤 1     以 oracle 用户登录主、备节点。 步骤 2     关闭 数据库 监听。 > lsnrctl stop 步骤 3     关闭数据库 实例 。 > sqlplus '/as sysdba' > shutdown immediate 步骤 4     以root用户登录数据库 服务器 。 步骤 5     删除Oracle用户。 # userdel -r or

CesiumJS【Basic】- #008 通过canvas绘制billboard

文章目录 通过canvas绘制billboard1 目标2 实现 通过canvas绘制billboard 1 目标 通过canvas绘制billboard 2 实现 /** @Author: alan.lau* @Date: 2024-06-16 11:15:48* @LastEditTime: 2024-06-16 11:43:02* @LastEditors: al

使用AGG里面的clip_box函数裁剪画布, 绘制裁剪后的图形

// 矩形裁剪图片, 透明void agg_testImageClipbox_rgba32(unsigned char* buffer, unsigned int width, unsigned int height){// ========= 创建渲染缓冲区 =========agg::rendering_buffer rbuf;// BMP是上下倒置的,为了和GDI习惯相同,最后一个参数是

Canvas绘制图片和区域

如何使用Canvas在图片上绘制区域? 一. 首先,我们需要初始化三个canvas画布(初始化Canvas)   initCanvas() {// 初始化canvas画布let canvasWrap = document.getElementsByClassName("canvas-wrap");this.wrapWidth = canvasWrap[0].clientWidth;thi

「JCVI教程」如何绘制CNS级别的共线性图(中)

在「JCVI教程」编码序列或蛋白序列运行共线性分析流程(上)还是有一个尴尬的事情,就是只用到两个物种,不能展示出JCVI画图的方便之处,因此这里参考https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version)的分析,只不过画图部分拓展下思路。 首先要运行如下代码获取目的数据 python -m jcvi.apps.fetch p

「JCVI教程」如何绘制CNS级别的共线性图(上)

本教程借鉴https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version). 我们先从http://plants.ensembl.org/index.html选择两个物种做分析, 这里选择的就是前两个物种,也就是拟南芥和水稻(得亏没有小麦和玉米) 选择物种 我们下载它的GFF文件,cdna序列和蛋白序列 #A