本文根据《Together ControlCenter6.0 入门实践教程》(李颖译)结合公司所用版本together,实现《TogetherControlCenter 6.0 入门实践教程》中的airline示例工程。我只完成了工程的建模,至于函数的编写、调试,以及说明文档的自动生成,在本文中均未实现。
一、工程结构
airline工程建模完成后如下图:
说明:
1.左边为菜单区。树形菜单中的二级项目包括了AirLine工程中的所有内容,包括角色(Actor)、对象(Object)、用例(Use Case)、活动(Activity)。最后三项metamodels、patterns、PrimitiveTypes是由系统生成的,我们不需要动。
2.右上部分编辑区。本工程包含一个package——AirLinePD,一个Use Case——MakeReservation,一个Activity——Request Reservation。右边的树形菜单中展开了AirLine项目,其中包括AirLinePD、MakeReservation、Request Reservation,也清楚地显示了本工程包含的内容。
3.右下部分为属性区。它显示选中的元素的属性,供我们修改。
4.双击AirLinePD后进入名为AirLinePD的编辑区,如下:
5.双击MakeReservation后进入名为MakeReservation的编辑区,如下:
6.双击Request Reservation后进入名为Request Reservation的编辑区,如下:
下面我们来看看这些东西是怎么来的。
二、步骤
1.新建工程
a.在电脑中新建一个文件夹,命名为AirLine。打开together,选择打开位置为AirLine文件夹;
b.together打开后,看到欢迎界面;
c.左上角的系统菜单中选择文件->新建->项目,选择“UML 2.0 Project”,点“下一步”;
d.填写项目名称为AirLine,点“完成”,出现名为AirLine的空白编辑区。
注意三点:
i)项目保存的位置默认为使用缺省位置,即我们打开together时选择的目录。由于我们已经指定了目录,这里不用修改;
ii)建议为每一个工程建立相应的文件夹,否则会出现多个工程存在于同一工程目录下的混乱情况。
iii)不要在已经打开一个工程的情况下新建工程,因为新工程会被默认地添加到已打开的工程中。
至此,一个名为AirLine的空项目建立完成。现在我们开始往AirLine中添加内容:即一个package——AirLinePD,一个Use Case——MakeReservation,一个Activity——Request Reservation。
2.新建包(Package)并添加类(Class)
说明:本图的目的是展示工程中的数据关系。包可以理解为本工程。类就是工程中涉及的类。在很多工程中,类(Class)对应数据库中相应的表(*.tbl)。
a.在名为AirLine的编辑区点右键,选择New->Package。一个名为package1的Package以图标的方式出现了;
b.修改Package的名称为AirLinePD:在图标上单击名称即可修改;也可以选中图标,在右下边的属性栏中修改其name属性;
至此,名为AirLinePD的Package添加完成。下一步我们为AirLinePD添加名为Flight的Class。
c.双击AirLinePD图标,进入名为AirLinePD的空白编辑区;
d.在空白编辑区点右键,选择New->Class。一个名为Class1的Class出现了;
e.修改Class1的名称为Flight,可以直接修改,也可修改其name属性;
至此,名为Flight的Class被添加到了AirLinePD中。众所周之,一个Class会包含一些变量和方法,下面我们来把它们添加到Class。
f.选中Flight,点右键,选择New->Attribute,一个名为Attribute1的属性(可以理解为变量名)就出现在Flight中了;
g.修改Attribute1的名称为date,数据类型为Date;
h.选中Flight,点右键,选择New->Operation,一个名为Operation1的属性(可以理解为方法名)就出现在Flight中了;
i.修改Operation1的名称(name)为makeReservation,返回类型(return type)为Boolean,添加2个参数(parameters):String型的name和int型的tKind;
至此,我们完成了为Class添加变量和方法的工作。其他的Class可以用同样的方法添加,这里不再赘述。下面来用连线表示类与类之间的关系。
注意:复杂的修改(例如步骤g和i)应该在属性栏中修改。
j.连线工具在菜单栏和编辑区之间的狭长部分。大家可以根据箭头的名称判断其用途。
注意:带菱形的箭头是由Association改变其association type属性得到的。
3.新建用例图(Use Case Diagram)并添加角色(Actor)、对象(Object)、用例(Use Case)
说明:本图表示角色、活动、本工程(系统)之间的交互关系。即展示了将来有哪些用户来使用本系统?用户需要本系统完成什么功能?本系统需要承载什么内容?
a.回到名为AirLine的编辑区。点右键,选择New Diagram->Use Case。得到Use Case Diagram1;
b.修改Use Case Diagram1的名称为MakeReservation:在图标上单击名称即可修改;也可以选中图标,在右下边的属性栏中修改其name属性;
至此,名为MakeReservation的Use Case Diagram添加完成。下一步我们为MakeReservation添加角色(Actor)、对象(Object)以及用例(Use Case)。
c.双击MakeReservation图标,进入名为MakeReservation的空白编辑区;
d.点右键,选择New->Actor,得到Actor1;
e.修改Actor1的名称为Passenger,可以直接修改,也可在属性栏修改其name属性;
至此,添加角色完成。本工程AirLine包含3个角色,其余两个按以上方法添加。下面添加Object。
f.在空白区域点右键,选择New->Object,得到Object1;
g.修改Object1的名称为AirLine Reservation System;
至此,名为AirLine Reservation System的Object被添加到了MakeReservation中。下面来添加Use Case。
h.选中AirLine Reservation System,点右键,选择New->Use Case,得到UseCase1;
i.修改UseCase1的名称为Check Availability;
j.连接角色和用例。
至此,名为Check Availability的Use Case被添加到了AirLine Reservation System中。其余三个Use Case可用相同方法完成。
注意:用例(Use Case)要在对象(Object)内部创建,以显示其归属关系。而角色(Actor)是在对象(Object)之外的。
4.新建活动图(Activity Diagram)并添加活动(Activity)和行动(Action)
说明:相信用过Visio的人一看就知道,是流程图。
a.回到名为AirLine的编辑区。点右键,选择New Diagram->Activity。得到Activity Diagram1;
b.修改Activity Diagram1的名称为Request Reservation:在图标上单击名称即可修改;也可以选中图标,在右下边的属性栏中修改其name属性;
至此,名为Request Reservation的Activity Diagram添加完成。下一步我们为Request Reservation添加活动(Activity)。
c.双击Request Reservation图标,进入名为Request Reservation的空白编辑区; d.点右键,选择New->Activity,得到Activity1;
e.修改Activity1的名称为Request Reservation,可以直接修改,也可在属性栏修改其name属性;
至此,添加活动完成。下面添加泳道(Activity Partition)。
f.选中Request Reservation,点右键,选择New->Activity Partition,得到Activity Partition1;
g.修改Activity Partition1的名称为Plane/Flight Description;
h.用同样的方法增加名为Flight Reservations和Reservation/Ticket Services的泳道;
注意:
i)泳道在书里的名称为swimlane,但在本软件中没找到这个东西,现在叫Activity Partition;
ii)要在Request Reservation内添加泳道,因为他们有隶属关系。
至此,Request Reservation中三个泳道添加完毕。下面来添加Action。
i.选中Plane/Flight Description,点右键,选择New->Action,得到Action1;
j.修改Action1的名称为Get capacity(cap);
k.用同样的方法在其他泳道里添加相应的行动;
l.最后用Control Flow连接这些Action,若Control Flow上有说明文字,修改其label属性。
注意:添加Action之前一定要确定其所属的泳道。流程图图标可通过右键在New中选取,也可在工具条中直接选取。流程起点符号叫Initial,结束符号叫Activity Final,并行叫Fork,判断叫Decision。
三、经验总结
a.添加完以上内容后,回到AirLine的编辑区,可以看到,together已经将新添加的内容生成到视图。只要内容添加正确,就可以得到工整的视图;
b.名称中需要隔开的,尽量使用下划线。点、冒号、连接线等往往不能被接受;
c.注意层、级之间的关系。只要关系对了,视图就是正确且有序的。