UML建模工具Enterprise Architect(EA) -- 安装及简单使用

目录

一、什么是EA?

二、安装EA

三、为什么要学会用EA?

四、创建EA工程

五、创建类视图,构建类和接口

六、选中模型目录,自动检出Java代码

七、构建内部类

八、趁热打铁,构建数据表视图并检出SQL脚本

九、导入源码目录,逆向生成EA类视图

十、其他UML建模视图不再陈述


一、什么是EA?

Enterprise Architect 是Sparx Systems 公司的旗舰产品。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。

                                                                                                                            --  -- 摘自百度百科

比Rose还要强大的UML建模工具,安装后,整体UI风格如下:


二、安装EA

百度网盘链接:百度网盘 请输入提取码

提取码:umvh 


本篇用到的test.eapx和mybatis.eapx工程下载地址:

 


test.eapx工程下载地址:

链接:百度网盘 请输入提取码
提取码:kvxy 


mybaits.eapx工程下载地址:

链接:https://pan.baidu.com/s/1_vd7WDXaVxW-M3TuOM885A 
提取码:ef77


三、为什么要学会用EA?

我直接用三个反问句吧,直接明了:

1、你还在没经过设计就直接敲代码吗? 设计先行的理念哪去了?

2、你难道不想要有一种工具,可以把你设计的东西直接转换成代码或者sql语句,以减轻你的工作量吗?

3、你难道不想要有一种工具可以直接将第三方开源框架的源码逆向生成类视图便于查看和存档吗?比如Spring、SpringBoot、Mybatis、Dubbo、Netty等框架的源码包。

4、你想一直都敲代码吗?程序员可不是吃青春饭的,时间久了,就该要好好考虑转变开发角色的事情了。

5、其他...... .......


四、创建EA工程

(1)新建工程,命名为test(.eapx)

(2)创建视图

举个例子:

右键选择添加:

案列效果:

从左至右,依次是:工程的目录结构,主视图窗口,属性面板(设置对象的属性值)


五、创建类视图,构建类和接口

我们不使用案列带的Diagrams例子,直接新建一个package,在package下添加我们需要的类

(1)创建一个包,命名为类视图

(2)在构建的包(目录)下面添加一个视图

(3)选择Class(类)

(4)瞅准工具箱(Toolbox,往视图面板上拖类和接口组件)

工具箱的位置:Design-->Toolbox

(5)拖入两个类和一个接口(一个子类,一个抽象超类,一个接口)

(6)给类或接口添加说明(标注)

(7)改变字体大小

(8)废话不多说,直接构建关系,看效果

(9)给QQPlayer类添加属性字段

添加一个name字段:


添加方法playMovies():


调整变量或方法的“出场”顺序:

(10)标识类为抽象类

抽象类的字体是倾斜的,如下:

(11)至此,类和接口的简单使用结束

   难点在于:关系的认知,比如哪根线表示继承,哪根线又表示实现等;如何给类添加字段和方法;如何标识类为抽象类;


六、选中模型目录,自动检出Java代码

(1)改变类视图的目录(包)结构如下(第五步的结果一定要记得保存!!!)

(2)见证奇迹,检出代码

勾选选项(配置一下)如下:

勾选 Include all Child Packages

点击Generate按钮,成功了即可看到如下:

(3)回到桌面,检查上一步自动生成的代码是否OK

目录结构很package,很ok,就是不知道代码是否也ok呢?

(4)检查下代码,看一下QQPlayer类是否继承和实现都体现在代码里了

就连抽象类Mp3也是很ok的


七、构建内部类

7.1 首先定义三个类


7.2 然后补全成员变量,比如属性字段、方法等


7.3 接下来,先随便从工具箱选根线(因为工具箱没有放Nesting·嵌套的线)分别对Builder和ResultCode进行连线如下


7.4 然后,选中其中一根线,右键:Advanced->change Type....


7.5 在连接类型下拉框中选择:Nesting


7.6 两边都修改后,效果如下


7.7 生成代码,看下效果

package 类视图.com.appleyk.model;


/**
 * 请求响应结果封装
 * @author appelyk
 * @version 1.0
 * @created 24-十二月-2020 14:08:25
 */
public class TResult {

	/**
	 * 请求响应结果构建器
	 * @author appleyk
	 * @version 0.1.1
	 * @created 24-十二月-2020 14:08:25
	 */
	public class Builder {

		private int status;
		private String message;
		private Object data;

		public Builder(){

		}

		public void finalize() throws Throwable {

		}
		/**
		 * 
		 * @param status
		 */
		private GxResult.Builder status(int status){
			return null;
		}

		/**
		 * 
		 * @param message
		 */
		private GxResult.Builder message(String message){
			return null;
		}

		/**
		 * 
		 * @param data
		 */
		private GxResult.Builder data(Object data){
			return null;
		}
	}//end Builder

	/**
	 * 请求响应结果状态码
	 * @author appleyk
	 * @version 0.1.1
	 * @created 24-十二月-2020 14:08:25
	 */
	public enum ResultCode {
		SUCCESS,
		FAIL;

		/**
		 * 结果状态码
		 */
		private final int code;
		/**
		 * 结果状态码描述
		 */
		private final String description;
	}

	/**
	 * 响应状态
	 */
	private int status;
	/**
	 * 响应消息
	 */
	private String message;
	/**
	 * 响应结果
	 */
	private Object data;
	/**
	 * 响应时间
	 */
	private Date timestamp;

	public TResult(){

	}

	public void finalize() throws Throwable {

	}
	public static TResult ok(){
		return null;
	}

	/**
	 * 
	 * @param status
	 * @param message
	 * @param data
	 */
	public static TResult ok(int status, String message, Object data){
		return null;
	}
}//end TResult

7.8 去掉生成代码中的

public void finalize() throws Throwable {

}

(1) Code->Options->Edit Code  Templates


(2)锁定到Class Body模板中的第22到25行,将其清除掉,并保存


(3)保存后再次生成code,就ok了

package 类视图.com.appleyk.model;


/**
 * 请求响应结果封装
 * @author appelyk
 * @version 1.0
 * @created 24-十二月-2020 14:20:27
 */
public class TResult {

	/**
	 * 请求响应结果构建器
	 * @author appleyk
	 * @version 0.1.1
	 * @created 24-十二月-2020 14:20:27
	 */
	public class Builder {

		private int status;
		private String message;
		private Object data;

		public Builder(){

		}
		/**
		 * 
		 * @param status
		 */
		private GxResult.Builder status(int status){
			return null;
		}

		/**
		 * 
		 * @param message
		 */
		private GxResult.Builder message(String message){
			return null;
		}

		/**
		 * 
		 * @param data
		 */
		private GxResult.Builder data(Object data){
			return null;
		}
	}//end Builder

	/**
	 * 请求响应结果状态码
	 * @author appleyk
	 * @version 0.1.1
	 * @created 24-十二月-2020 14:20:27
	 */
	public enum ResultCode {
		SUCCESS,
		FAIL;

		/**
		 * 结果状态码
		 */
		private final int code;
		/**
		 * 结果状态码描述
		 */
		private final String description;
	}

	/**
	 * 响应状态
	 */
	private int status;
	/**
	 * 响应消息
	 */
	private String message;
	/**
	 * 响应结果
	 */
	private Object data;
	/**
	 * 响应时间
	 */
	private Date timestamp;

	public TResult(){

	}
	public static TResult ok(){
		return null;
	}

	/**
	 * 
	 * @param status
	 * @param message
	 * @param data
	 */
	public static TResult ok(int status, String message, Object data){
		return null;
	}
}//end TResult


八、趁热打铁,构建数据表视图并检出SQL脚本

(1)创建Data Modeling

点击ok完成后,效果如下:

(2)基于PostGreSql,构建一张表和一个ID自增序列

(3)给User表添加列

添加id、name、age、sex等(简单意思下就行):

(4)最终视图效果如下

(5)自动检出sql脚本(操作和生成代码有点区别)

选中所有元素(对象):

选中后效果如下:

(6)Generate后,桌面验证SQL脚本

查看内容:

(7)PostGreSql数据库验证一下,SQL脚本是否可用

刷新一下,查看构建的user表:

使用下刚才创建的user_id序列:


九、导入源码目录,逆向生成EA类视图

拿mybatis-3源码来说,如下:


如果你觉得在IDEA或Eclipse中编译源码太耗时,且太依赖于IDE工具,可以试着用EA逆向导入源码包自动生成所有的包和类视图即可,操作如下:

8.1 创建一个mybaits的工程


8.2 在工程下面创建一个名称为mybatis-3的根包


8.3 设置项目的源码类型及编码


8.4 选择要导入的myabtis(关键的)源码包





耐心等待一会就行了,顺便再提一句,整个mybaits的源码有效代码行总过5.6w多行,还是不少的 


 8.5 查看SqlSessionFactory类的注释


十、其他UML建模视图不再陈述


test.eapx工程下载地址:

链接:百度网盘 请输入提取码
提取码:kvxy 


mybaits.eapx工程下载地址:

链接:https://pan.baidu.com/s/1_vd7WDXaVxW-M3TuOM885A 
提取码:ef77

  • 171
    点赞
  • 1228
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值