高效工作——EA使用技巧

画图是在项目开发前期最重要的部分之一,EA(Enterprise Architect)作为一款强大的建模工具,由于自身集成了许多自动化的工具,比Rose要好用的多,自然受到很多人的追捧。以前也介绍过一些EA的强大功能《让工作更轻松——EA类图与代码同步》,今天依旧来介绍一些简单却很使用的技巧。


第一个技巧是巧用实现接口的类。

我们在项目中定义了接口,然后定义了接口中的方法,拿我现在做的一个项目来演示一下:


现在定义一个类,比如CardMgr来实现ICardMgr接口,选择“Realization”:


会弹出让你选择实现的方法。我们一般都会认为,既然是类实现接口,那么就应该全选,确定。就会显示出下面的样子:



类图画完以后,我们在画时序图的时候,调用CardMgr中的方法(消息1.5),发现方法中居然重复了2遍:


当然我们可以通过去掉“显示继承的方法”,这样就不会把继承的方法显示出来了。


你或许感觉这样很好,很方便了,那么,我说种情况,你再感觉还方便吗:
如果我接口ICardMgr又增加了类方法ModifyCardInfo,那么CardMgr怎么办呢?我曾经也找了很多方法,终于发现了一个快捷键Ctrl+Shift+O, 重载继承的方法,这样就可以了:

但是,如果我不是方法,而是删除方法呢?Ctrl+Shift+O只能来继承增加的方法,却不能去掉接口中删除的方法。所以这样的就需要去手动删除。如果工作量很大,会耽误很长时间,时间一长,出错的几率就会大大提高,还可能漏掉几个。

经过多次的实验,我发现了一个很好的方法:
只需要画接口ICardMgr,而CardMgr只实现ICardMgr,但是不要去继承方法,如图:


不用担心CardMgr中没有方法,按F11生成代码后,你会发现,CardMgr类中的方法,一个也不少。所以不用再去勾选那些方法了。而且上面出的介绍的现象也不会出现。在画时序图时,由于CardMgr中没有方法,所以选择的时候,直接选择的就是从接口中读取的方法,而且在更改接口后,由于是直接读取的接口中的方法,所以不会涉及到CardMgr的修改,这样即节省了时间,又应对了变化,可谓是一举两得的没事,你还会去辛苦的画CardMgr类么??

第二个技巧就是如何批量修改图。
其实如果你认真读过了我上面提到的那篇博文,那么你或许已经有了思路了。对,就是应用逆向工程,善用代码同步。
现在要求把IBLL层中的所有类的后缀由Mgr改为BLL,如何操作呢?你会去傻傻的修改么??看看代码同步功能吧:
先把IBLL层,生成代码:
然后在“根据包生成源码”的对话框中选择生成的路径后,点击生成。

然后用一个文件内容修改工具,把生成目录下的所有cs文件中的Mgr替换为BLL。(或者把cs都添加到一个项目中,然后全部替换。)我这里用的是一个工具,如图:

使用代码同步进行更改类名,结果居然没有成功,所以只要,把原来的类,包括包,全删除,然后采用逆向工程重新生成图:
(这里文件名可以不用修改,因为EA在生成类图时,是读取的文件中的类方法名或者接口名,而并非文件名)

根目录选择刚才类源码所在目录,语言选择对应的语言即可,然后确定。

我的成功了,你的呢?


好了,本文就到这里了,我只不过是抛砖引玉,还有许多技巧需要大家在实践中去挖掘和分享,希望你在发现有好的方法和技巧后,可以拿出来分享,我们处于一个知识共享的幸福年代!

### 创建UML的具体操作 在Enterprise Architect (EA) 中创建UML涉及几个主要步骤。首先,在启动EA之后,需创建一个新的工程或打开现有的工程[^1]。 对于新建工程而言,选择合适的模板有助于快速搭建开发环境。接着,在Project Browser窗口内通过右键菜单中的选项来增加新的包(Package),这将成为放置新的位置[^2]。 当准备就绪后,可以通过以下方式之一开始绘制: #### 方法一:手动添加元素 - **新增**:于选定的Package下再次利用右键快捷菜单选取`Add Diagram...`命令,并指定型为Class Diagram。 - **定义组件**:进入编辑模式后,借助左侧工具栏里的形控件拖拽至绘区以建立各模型对象;同时支持直接输入名称属性等细节信息[^3]。 #### 方法二:基于现有代码自动生成 为了提高效率并确保准确性,可以直接从已有源码导入结构化信息作为初始版本的基础。具体流程如下: 1. 在目标Package节点上执行鼠标右键操作; 2. 寻找并激活`Code Engineering -> Import Source Directory...`功能入口; 3. 完成路径配置及其他必要参数设定(例如编程语言的选择),随后触发实际的数据解析过程[^4]。 一旦上述任一步骤顺利完成,则可以在界面右侧预览所得到的结果概貌,并可通过调整布局使整体呈现更加清晰易读。此外,软件还提供了丰富的交互手段允许用户进一步细化和完善各个部分之间的关联关系[^5]。 ```python # Python伪代码示例展示如何自动化处理某些任务 def import_source_code_into_ea(eap_file, src_dir): """ 将给定目录下的源代码导入到特定EAP文件对应的EA项目中 参数: eap_file -- EA项目的存储位置(.eap格式) src_dir -- 待分析的源代码所在文件夹路径 返回值: 成功与否的状态标志(True/False) """ try: # 打开指定的企业架构师工程项目... # 设置工作空间内的活动包... # 开始批量加载外部资源... return True except Exception as ex: print(f"发生错误:{str(ex)}") return False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值