Qter 发表于 2020-10-29 09:24:38

UML工具:EA(Enterprise Architect)

EA跟Rational Rose一样都仅仅是一个UML建模软件,随着对EA的熟悉发现EA的功能太强大了。EA跟Rational Rose大不一样,Rational Rose只是实现对软件的建模即构建系统的UML模型,而EA却不仅仅是实现这些功能。对于一个软件设计者来说,从需求分析到概要设计、详细设计、数据库设计到测试、发布、部署等一系列软件设计必须的操作都可以在EA中完成。可以说只需要一个EA就可以完成一个软件的设计。


Qter 发表于 2020-10-29 09:30:20

有很多优秀的软件提供时间范围内的试用,过期后就无法使用。一般来说想继续使用,要么购买正版,要么破解激活注册等,其实还有一种办法就是无限次的延长其试用期~~下面以某国外软件Enterprise Architect为例,简单示范。
Enterprise Architect,Sparx Systems公司出品,是一款优秀的基于OMG UML的可视化模型与设计工具。官方版本提供30天试用。30天后即无法使用。


分析平台:Win 10 CHS
分析工具:Process Monitor v3.52
分析对象:Enterprise Architect v14.1.1429


通过观察Enterprise Architect主程序EA.exe启动过程中对注册表和磁盘文件的访问信息,根据经验找出可疑操作……【此处属于人肉时间】……最后定位到两处可疑操作:
1、磁盘文件:读写 C:\\Users\\你的登录用户名\\AppData\\Roaming\\Sparx Systems\\ea\\tkey.dat
2、注册表:独写 HKEY_CURRENT_USER\\SOFTWARE\\Classes\\Software\\Hiragana


尝试删除任一内容后,重启软件,发现时间限制仍在。


简单分析,该软件的试用记时信息会同时保存在上述两个地方,所以关闭软件后,同时删除上述磁盘文件和注册表项,再次打开软件,时间限制复位,又一轮试用开启~~

PS:Enterprise Architect v14.1.1429之前版本的注册表键值项名是Ikana ,磁盘文件名为:key.dat

Qter 发表于 2020-10-29 09:37:27

https://blog.csdn.net/Appleyk/article/details/88994356
一、什么是EA? Enterprise Architect 是Sparx Systems 公司的旗舰产品。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。                                                                                                                            ---- 摘自百度百科
比Rose还要强大的UML建模工具,安装后,整体UI风格如下:
https://img-blog.csdnimg.cn/20190403143145950.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


二、安装EA
百度网盘链接:https://pan.baidu.com/s/14zk04mge9ihmKPUoqnTWJg提取码:eg37
https://img-blog.csdnimg.cn/2019040314361547.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


三、为什么要学会用EA? 我直接用三个反问句吧,直接明了: 1、你还在没经过设计就直接敲代码吗? 设计先行的理念哪去了?2、你难道不想要有一种工具,可以把你设计的东西直接转换成代码或者sql语句,以减轻你的工作量吗?3、你想一直都敲代码吗?程序员可不是吃青春饭的,时间久了,就该要好好考虑转变开发角色的事情了。



四、创建EA建模工程

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

https://img-blog.csdnimg.cn/2019040314500587.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/2019040314513155.jpg


(2)创建视图

https://img-blog.csdnimg.cn/20190403145720766.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


举个例子:

https://img-blog.csdnimg.cn/20190403145902744.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

右键选择添加:
https://img-blog.csdnimg.cn/2019040315000514.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

案列效果:

https://img-blog.csdnimg.cn/20190403150155374.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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



五、创建类视图,构建类和接口
我们不使用案列带的Diagrams例子,直接新建一个package,在package下添加我们需要的类

(1)创建一个包,命名为类视图
https://img-blog.csdnimg.cn/20190403150727107.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403151106724.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(3)选择Class(类)

https://img-blog.csdnimg.cn/2019040315122965.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(4)瞅准工具箱(Toolbox,往视图面板上拖类和接口组件) 工具箱的位置:Design-->Toolbox
https://img-blog.csdnimg.cn/20190403151546603.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70
(5)拖入两个类和一个接口(一个子类,一个抽象超类,一个接口)

https://img-blog.csdnimg.cn/20190403153057160.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


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

https://img-blog.csdnimg.cn/20190403152914490.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


(7)改变字体大小

https://img-blog.csdnimg.cn/20190403151911726.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403154739790.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403154954450.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

添加一个name字段:

https://img-blog.csdnimg.cn/20190403155250739.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

添加方法playMovies():

https://img-blog.csdnimg.cn/20190403155500921.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403160841264.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(10)标识类为抽象类

https://img-blog.csdnimg.cn/20190403155739212.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/2019040315582885.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(11)至此,类和接口的简单使用结束   难点在于:关系的认知,比如哪根线表示继承,哪根线又表示实现等;如何给类添加字段和方法;如何标识类为抽象类;



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

(1)改变类视图的目录(包)结构如下(第五步的结果一定要记得保存!!!)
https://img-blog.csdnimg.cn/20190403161139799.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403161440527.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

勾选选项(配置一下)如下:
https://img-blog.csdnimg.cn/20190403161647623.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

勾选 Include all Child Packages
https://img-blog.csdnimg.cn/20190403161810583.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403161930254.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403162046407.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


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

(4)检查下代码,看一下QQPlayer类是否继承和实现都体现在代码里了
https://img-blog.csdnimg.cn/20190403162347277.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

就连抽象类Mp3也是很ok的

https://img-blog.csdnimg.cn/20190403162432751.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70



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

(1)创建Data Modeling

https://img-blog.csdnimg.cn/20190403162933736.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20190403163004336.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70
点击ok完成后,效果如下:

https://img-blog.csdnimg.cn/20190403163058100.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403163404259.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20190403163739797.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(3)给User表添加列
https://img-blog.csdnimg.cn/20190403163917355.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403164159496.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(4)最终视图效果如下
https://img-blog.csdnimg.cn/20190403164304126.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(5)自动检出sql脚本(操作和生成代码有点区别)
选中所有元素(对象):
https://img-blog.csdnimg.cn/20190403164948280.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

选中后效果如下:

https://img-blog.csdnimg.cn/20190403165221926.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

(6)Generate后,桌面验证SQL脚本
查看内容:

https://img-blog.csdnimg.cn/20190403165437929.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403165833578.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70

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

https://img-blog.csdnimg.cn/20190403165956553.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70
使用下刚才创建的user_id序列:

https://img-blog.csdnimg.cn/20190403170103829.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FwcGxleWs=,size_16,color_FFFFFF,t_70


八、其他UML建模视图不再陈述
test.eapx工程下载地址:
链接:https://pan.baidu.com/s/1ptaaxqgvPhs9XsUEz3J1mg
提取码:azj0
页: [1]
查看完整版本: UML工具:EA(Enterprise Architect)