使用Enterprise Architecture绘制10种UML画画

UML绘制10种课程要求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是从建立project的角度出发,所以假设想单独绘制某个图就比較麻烦了。

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),此时线条变成几段的形式,然后再选中该连接,点击右键->线条样式->自己定义线条,就能够依根据连接要拉升,要绘制这样一个美丽的多图。

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4800886.html

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

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

相关文章

RocketMQ初步应用架构理论

RocketMQ初步应用架构理论 写给RocketMQ架构应用入门,内容涉及它的设计机理以及推到出来的应用注意事项,入门人员请看。 稍微涉及技术细节,留以我设计中间件时参考,将来整理深度文档时会抽取走,入门人员可以无视。 以下…

android程序的入口点,常见android面试基础题

2015-11-21 06:30:02阅读( 1344 )1. Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗这里Android123提示大家,Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACT…

转:pysqlite笔记

这是一篇老笔记,原来是放在旧博客上 的,最近因为公司内部一个小东西,想使用简单点的数据库来存储数据,就想起用SQLite来做,上网搜索一些教程。竟然发现,原来一年多前,我也学过一阵 子&#xff0…

android页面布局更改,使用setContentView的方式更换布局文件从而更换界面

使用转换Activity的布局文件的方式,从而达到转换android页面的目的(这里没有使用Intent):程序很简单,摆一个大概出来:package com.seed.lee.setContentView;import android.app.Activity;import android.os.Bundle;import android…

oracle之单行函数之子查询

--睡得工资比abel高 select last_name,salary from employees where salary>(select salary from employees where last_nameAbel)运行结果 --返回job_id 与141号员工相同 salary比143号多 select last_name,job_id,salary from employees where job_id(select job_id from…

android模拟gps定位软件,gps定位模拟器下载最新版

卫星地图导航,从此出门想去哪里去哪里,再也不用因为不知道路线而烦忧!它还能实时定位,快速找人、找车!推荐!使用前提:1、定位模拟器是基于Xposed安卓框架下的插件,因此安装定位模拟器…

Java的堆与栈,科普给大家

1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与…

android edittext禁止输入特殊字符,Android EditText禁止输入空格和特殊字符

/*** 禁止EditText输入特殊字符* param editText*/public static void setEditTextInhibitInputSpeChat(EditText editText){InputFilter filternew InputFilter() {Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, i…

oracle之单行函数之子查询之课后练习

/*************************************************************************************************/ 40. 谁的工资比 Abel 高?1). 写两条 SQL 语句.SELECT salaryFROM employeesWHERE last_name Abel--返回值为 11000SELECT last_name, salaryFROM employeesWHERE sal…

移动端开发的知识系统介绍

移动端开发1. 移动端适配&#xff1a;http://suqing.iteye.com/blog/1982733http://www.douban.com/note/261319445/ http://www.woshipm.com/ucd/150207.html<meta name"screen-orientation" content"portrait"><!-- 强制竖屏 --><meta na…

delphi android动态权限,DELPHI安卓动态权限申请

DELPHI安卓动态权限申请安卓8.0以前的版本&#xff0c;只需要给静态权限就可以了&#xff0c;但安卓8.0及以后的版本&#xff0c;还需要运行期用代码动态申请权限。下面以《蓝牙权限》为例&#xff0c;其他权限类似。Delphi 10.3 社区版&#xff0c;提供的 Sample 里面有一个例…

oracle之创建和管理表

create table emp2 AS Select employee_id,last_name name,hire_date,salary from employees select * from emp2 --创建表 --白手起家 /* create table emp1(id number(10),name varchar(20),salary number(10,2),hire_date date ) */

LocalBroadcastManager 的使用

一、使用本地广播发送一条广播&#xff08;本例为自己发送自己接收&#xff0c;本地广播也可以是其他应用接收&#xff09;然后接收到广播时回调Receiver类中的回调方法onReceive&#xff08;&#xff09;在此方法中自定义发出通知 代码 1 package com.qf.broadcastreceiver06;…

android xml正方形,使用Android Constraintlayout创建一排均匀分布的正方形

我正在努力创建一个由均匀分布的正方形链组成的布局&#xff0c;这些正方形可以填充可用空间。使用Android Constraintlayout创建一排均匀分布的正方形我到底想要的布局&#xff0c;看起来像这样&#xff1a;的想法是&#xff0c;与不同的宽高比手机这个正方形成长一点点地使用…

oracle之单行函数之子查询课后练习2

1. 查询和Zlotkey相同部门的员工姓名和雇用日期 a) select last_name,hire_date b) from employees c) where department_id ( d) select department_id e) from employees f) where last_name Zlotkey g…

JavaWeb 如何防止表单重复提交 - 使用Token,令牌

JavaWeb 如何防止表单重复提交 - 使用Token&#xff0c;令牌 说到重复提交 &#xff0c;应该想到两种场景&#xff1a;1. 在下单&#xff0c;或者支付 这种情况 那么不允许 刷新&#xff0c;不允许后退再点击提交&#xff08;后退之后提交会失败&#xff0c;修改了也不行&…

oracle之创建和管理表之练习题

51. 利用子查询创建表 myemp, 该表中包含 employees 表的 employee_id(id), last_name(name), salary(sal), email 字段1). 创建表的同时复制 employees 对应的记录create table myemp asselect employee_id id, last_name name, salary sal, email from employees 2). 创建表…

android icu4c 7.1编译报错,android4.0编译系统时候遇到的错误集

1、Android library XXX.so not in prelink map 错误解决在编译自己的Android library时可能会出现library XXX.so not in prelink map 错误&#xff0c;这是由于Android的预编译设置引起的&#xff0c;/build/core/prelink-linux-arm.map文件描述了预编译的模块需要修改所在文…

oracle之数据处理

--创建表 create table emp3 as select employee_id,last_name,hire_date,salary from employees--查询表 select * from emp3--插入表 insert into emp3 values(1001,AA,sysdate,10000) 运行结果 插入对应三项 --空值用null代替 --复制表 insert into emp3(last_name,employe…