UModel2016和EA12序列图正向和逆向工程
一、UModel2016正向和逆向工程
【步骤0】在http://www.altova.com/download-trial.html下载Altova MissionKit 2016,安装。初次运行时会弹出申请30天试用license的对话框,输入邮箱即可申请。
主要步骤归纳:建立组件→把类分配到组件→生成初始序列图→画序列图→生成代码。
【步骤1】主菜单选择File|New。右击Model Tree里的Root包,在快捷菜单选择New element|Package,给包起名叫MyExample。
【步骤2】右击Model Tree中的MyExample包,在快捷菜单中选择Code Engineering |Set as C# Namespace Root,在弹出对话框单击OK。可以看到多了一个C# Profile包。
【步骤3】右击MyExample包,在快捷菜单选择New diagram|Component Diagram,在Properties列表将name栏改为MyExampleComponent。
【步骤4】单击组件图工具栏的Component图标,单击组件图空白处,保持缺省名字Component1不变。单击Component1,在Properties列表将code language栏改为C# 6.0,directory栏选择要存放代码的文件夹,确认use for code engineering栏已被选中。
【步骤5】右击MyExample包,在快捷菜单选择New diagram|Class Diagram,在Properties列表将name栏改为MyExample。
【步骤6】单击类图工具栏的Class图标,单击类图空白处,保持缺省名字Class1不变。同上操作添加Class2和Class3。
【步骤7】在Model Tree中,将Class1、Class2、Class3依次拖到Component1上,可以看到Component1下多了3个Realization。
【步骤8】右击Class1,在快捷菜单选择New|Operation,保留缺省名称Operation1。右击Model Tree里Class1下面的Operation1,在快捷菜单选择New element|Parameter(return),在Properties列表将name栏改为return1,type栏选择int C# Profile。同上操作,为Class2添加Operation2,为Class3添加Operation3,不设返回参数。
【步骤9】右击Model Tree中Class1下面的Operation1,在快捷菜单选择Create Sequence Diagram for code,在弹出对话框单击Yes。
【步骤10】从Model Tree中拖动Class2和Class3到新生成的序列图上。
【步骤11】单击序列图工具栏上的Message(Call)图标,在序列图上的a:Class1生命线上按下,拖动到b:Class2松开,在Properties列表的operation栏选择Operation2()。同上操作,创建a:Class1到c:Class3的消息,映射到操作Operation3()。
【步骤12】右击序列图空白处,在快捷菜单选择Generate Code from Sequence Diagram,可以看到生成代码的进展信息。在设定的代码文件夹中,可以看到生成的代码文件。
以上是正向工程的操作。
以下是逆向工程的操作,其中的SmartCA项目及其相关信息可以替换成其他项目的相关信息。
【步骤13】在Model Tree中Root下新建包SmartCA。右击SmartCA包,在快捷菜单选择Code Engineering |Import Source Project,在Import Source Project属性框的Project File栏选择.sln文件位置,单击Next,再单击Next,单击Finish。在Model Tree中可以看到导入的包。
【步骤14】在Model Tree中展开Model→Project包,展开ProjectService类,右击SaveProjectContact操作,从快捷菜单选择Generate Sequence Diagram from Code,在弹出对话框单击OK。
二、Enterprise Architect 12逆向工程
【步骤1】在主菜单选择FILE|New Project,模型文件命名为SequenceRecord.eap,在Model Wizard对话框单击Cancel按钮。
【步骤2】在Project Browser中选中Model,单击其上方工具栏的New Package图标。在New Package对话框的Name栏输入SequenceRecord,Initial Content选择Package Only,单击OK按钮。
【步骤3】右击Project Browser中的SequenceRecord包,从快捷菜单选择Code Engineering | Import Source Directory。在Root栏中选择导入源代码的根目录,Source Type选择C#,单击OK。
【步骤4】右击刚生成的MvvmExample包,在快捷菜单选择Execution Analyzer,在弹出对话框中单击Yes。在Execution Analyzer属性框Build页签的Execute Command As栏选择Process,在命令行框中输入%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MvvmExample.sln /Target:Rebuild /Property:Config=Debug;Platform=x86,Default Directory栏选择源代码所在文件夹。Parse Output选择Microsoft .NET。单击OK。在Platform页签的Debugger栏选择Microsoft.NET,Default栏选择项目debug文件夹位置,Application Path栏选择debug文件夹中的.exe文件。
【步骤5】在Execution Analyzer中展开Model.SequenceRecord.MvvmExample包,右击包下面的Model.SequenceRecord.MvvmExample,在快捷菜单选择Build。可以看到System Output窗口
【步骤6】在Project Browser中右击ViewModel包下的ViewModelWindow5类,从快捷菜单选择Code Engineering | View Source Code。选择要录制的代码起点,右击代码左侧的灰条,选择Add Start Recording Marker,选择要录制的代码终点,右击代码左侧的灰条,选择Add End Recording Marker。
【步骤7】单击主菜单Analyzer | Record | Recorder,单击工具栏Recording 图标。在Record属性框的Track Instances of Named Classes栏输入ViewModel.ViewModelWindow5,单击OK。
【步骤8】右击Record&Analyze中已录制的条目,从快捷菜单选择Generate Sequence Diagram。
作者:潘加宇