让工作更轻松EA类图与代码同步Word格式文档下载.docx
- 文档编号:21103961
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:19
- 大小:585.61KB
让工作更轻松EA类图与代码同步Word格式文档下载.docx
《让工作更轻松EA类图与代码同步Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《让工作更轻松EA类图与代码同步Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
先说思路吧:
我这里用到的是EA和VS2010,用EA画类图,然后生成代码框架。
在VS项目中添加生成的代码,然后在VS中修改代码,可以在EA中通过逆向代码工程更新原来的类图。
简单的演示一下:
首先创建一个项目,我这里创建的是控制台应用程序:
然后在EA中画一个类图
在右键,选择生成代码:
(因为我这个是单个类,所以直接在类上选择生成代码,如果你类图中类比较多,可以在上面那个类似文件夹的图标上,选择生成代码)
选择项目文件夹下,并选对相对应语言。
我这里用的是C#。
点击生成即可。
如图:
这样在项目文件夹下,就看见多了一个Human.cs文件
现在这个图跟代码就已经建立的关系,因为EA中集成了代码编辑器,所以我们可以通过在类上右键,选择查看源代码:
就可以打开源代码了:
然后在vs项目中,添加上刚生成的cs,
这样,在vs项目中,就多了一个Human类:
打开看一下,由图直接生成的代码:
///////////////////////////////////////////////////////////
//Human.cs
//ImplementationoftheClassHuman
//GeneratedbyEnterpriseArchitect
//Createdon:
23-八月-201217:
18:
28
//Originalauthor:
Admin
namespaceHuman{
///<
summary>
b>
学生类<
/b>
包括3个字段:
name,age,sex<
添加对应的3个属性Name,Age,Sex<
2个方法:
<
构造方法和Print方法<
/summary>
publicclassHuman{
///<
///年龄
privateintage;
///姓名
privatestringname;
///性别
privatestringsex;
publicHuman(){
}
~Human(){
publicvirtualvoidDispose(){
///构造函数
paramname="
name"
>
姓名<
/param>
age"
年龄<
sex"
性别<
publicHuman(stringname,intage,stringsex){
publicintAge{
get{
returnage;
}
set{
age=value;
publicstringName{
returnname;
name=value;
///输出学生信息
publicvoidPrint(){
publicstringSex{
returnsex;
sex=value;
}//endHuman
}//endnamespaceHuman
现在代码和图算是彻底可以同步了。
当我们在VS中修改代码后,在EA中,选中相应的类,右键选择|“代码同步”,即可把代码中修改的部分,同步到类图中。
比如我们在代码中添加一个address字段和属性,并在构建函数和Print方法中添加内容:
address字段和属性:
///住址
privatestringaddress;
publicstringAddress
{
get
returnaddress;
}
set
name=value;
构建函数和Print方法:
this.name=name;
this.age=age;
this.sex=sex;
///输出学生信息
publicvoidPrint()
System.Console.WriteLine("
我叫"
+name+"
,"
+sex+"
,年方"
+age);
然后在EA中,右键Human,选择“代码同步”,点击“是”:
再看看类的效果:
已经成功的更新上去了。
当我们在修改类图后,选择修改后的类,再次生成代码,即可更新原来的代码。
现在我们在Human类中添加一个telphone及对应属性:
右键生成代码后的源码:
23:
58
包括5个字段:
name,age,sex,address,telphone<
添加对应的3个属性Name,Age,Sex,Address,Telphone<
///电话
privateinttelphone;
+name+"
+sex+"
+age);
publicintTelphone{
returntelphone;
telphone=value;
}//endnamespaceHuman
我们发现当初修改的构造函数和Print方法中的源码部分,并没有被删除。
这说明,图只对代码进行了更新,而不是覆盖操作。
演示就到这里。
通过刚才的演示,我们可以清楚的看到图和代码的同步,不再是那么遥不可及。
我们不用再为了改代码而改图了。
可以节省大量的时间。
我在演示的时候是一个文件,但是在实际项目中,肯定是用等多个文件。
有博友问我怎么办,我就再补充一下吧。
拿我的一个小项目做实验:
包图,类图如下:
生成代码时,如果你第一次生成源代码,那么可以在整个类视图上右键,“代码工程”->
“生成源代码”。
这样会为所有的图生成。
如果你在修改某个包中的类后,用图去更新代码时,你可以右键这个包,选择“代码工程”->
“生成源代码”,效果是一样的。
下面这幅图是在类视图上面生成代码的截图。
在对话框中的标题中,可以看出“根据包生成源码”。
这里面也会带有命名空间。
在同步冲突中,选择“同步模型和代码”。
然后勾选自动生成文件,并选择你的项目路径(同单个文件操作)。
如果你的包图中还有子包,那么你需要勾选“包括所有子包的表”。
生成即可。
这就是生成的效果了:
而用代码更新类图时,如果你想同步全部类图,那么在类视图上右键,“代码工程”->
“导入源文件目录”。
如果你只想更新一个包,那么在包上面右键,操作都是一样的。
我这里选择的是IDAL包(现在附加的这个项目使用VB.NET做的)。
在“导入源码”对话框中,选择代码所在的根目录(这个在更新某个包的时候一定要看清楚了,否则就会把其他包的类导入到这个包中)。
文件类型选正确了。
包结构选择“为每个目录生成包”,否则可能会出现你不想看到的效果。
同步类型选择“同步已存在的类”。
如果你选择的覆盖,那么其他类与被更新的类之间的联系都会被删除,而且在时序图中被更新的类的对象,也会变为空白。
所以一定要选择同步。
删除,根据实际情况而定吧。
如果代码中删除了某些类,那么在更新类图时,会根据你的选择,做出对应的操作。
好了,对于项目中多个文件的操作,就说这么多。
纸上得来终觉浅,绝知此事要躬行,所以还是需要大家实际实验一下才知道。
当然,这个方案,只是一个代码和图脱节的补救措施。
最重要的还是在前期尽可能的设计好,在编码时严格按照图和文档进行编码,才不会出现那代码与图的脱节现象。
回首一望,才发现,其实我们总是在有意无意的遵循着“简单原理”,也正是由于“简单原理”,我们的效率才会不断的提高,我们才会不断的进步。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作 轻松 EA 代码 同步