用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

相关文章

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

Claude Enterprise推出计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 今天推出的Claude Enterprise计划,专为企业打造安全的

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心

使用matplotlib绘制散点图、柱状图和饼状图-学习篇

一、散点图 Python代码如下: num_points = 100x = np.random.rand(num_points) #x点位随机y = np.random.rand(num_points) #y点位随机colors = np.random.rand(num_points) #颜色随机sizes = 1000 * np.random.rand(num_points) # 大