Export as image, 接着在弹出的对话框中输入要保存的图片文件名以及存储路径即可,支持这些导出格式:PNG,GIF,PostScript,Encapsulated PostScript(封装过的 PostScript)和 SVG(Scalable Vector Graphics,可伸缩矢量图形)格式。这样导出的图片可以用作图软件来处理,或者插入到文档或者网页中进行显示。
4.类图和常见修改功能
实际建模时候,大概类图是最经常用到的一种图形了。类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类――订单,商品,顾客,经理,管理员,账户等等。类图也可以表现面向对象中提到的接口。
类图上使用包含三个部分的矩形来描述,如图 5 所示。最上面的部分显示类的名称,中间部分包含类的属性(成员变量)列表,最下面的部分包含类的操作(或者说\方法\、函数)列表。 当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可选择的(当图描述仅仅用于显示系统的高层架构时,下面的两个区域是不必要的) 。 位于类图最顶部的,是类名。类名上可以显示图标,也可以不显示,这是可选的功能, 同理所有的 UML 图都可以拥有定制的图标,这是可以扩展到内容。
类的属性栏(中部区域)在分隔线上列出类的属性列表。属性节是可选择的。每个属性 的定义使用如下格式:名称:属性类型。
图5 单个类图
类操作列表位于类图长方形的第三个(最底部)区域中,他也是可选的。和属性一样,类操作的操作以列表显示。操作使用下列格式定义:操作名(参数列表):返回数值类型。 构造器也包含在操作列表中。如图 5所示的,<
getUsername(); 另外setUsername(in username :String)定义了一个设置用户名的方法,输入参数是 String 类型的,参数名为 uername,in这个标记用来指示参数是输入值(当然不是必须的,不写 in 也可以)。
除了类之外,常见的类图还包括接口。接口如图 17.7 中左上的 IMoveable 所示,定义了一个行走和停止的行为。实际上接口中也可以规定属性,但是 MyEclipse UML 在这里不支持这样的格式。 如果一个类需要实现一个接口, 则可以通过带有闭合的单向箭头的虚
线进行连接,即表示实现定义。例如图中的 Animal 实现了 IMoveable 接口,用 Java 到代码来表示就是:class Animal implements IMoveable。
图6 接口和类继承,实现,关联
类之间可以有继承关系,通过带有闭合单向箭头的实线进行连接。例如图 6中,类 Cat 继承自 Animal。另外,类和类之间还可以有关联关系等,例如一个家庭对应多只猫。 双向关联关系已实现的方式连接,并在线上显示关联类型。例如图中的 House 关联着多只 Cat。表 2 列出了双向关联中的可能只所表示的含义的描述信息。如果是单向关联,则用不封闭的单项箭头来表示:→,从一个类连接到另一个类。
表2 双向关联中可能的多重值描述
另外一个很重要的概念就是 可见性。 在面向对象的设计中, 存在属性及操作可见性的记号。UML 识别四种类型的可见性:public,protected,private 及 package。UML 规范并不要求属性及操作可见性必须显示在类图上(其实MyEclipse 生成的图使用不同的和Eclipse 中一致的图标来表示可见性了,但是别的工具一般是按照 UML 的规范来使用记号来标识的) ,但是它要求为每个属性及操作定义可见性。
为了在类图上的显示可见性,放置可见性标志于属性或操作的名字之前。虽然 UML 指定 四种可见性类型,但是实际的编程语言可能增加额外的可见性,或者不支持 UML 定义的 可见性。表 3 显示了 UML 支持的可见性类型的不同标志。可见性的例子如: +username:String 这样的属性定义。 标志 + # 可见性 public Protected - ~ Private Package 表3 可见性列表
在 Java 的开发中,经常会遇到包(Package)这个概念。UML 中也支持类似的概念: 软件包, 用来将多个相关的类或者接口组织在一块。 软件包使建模者能够组织模型分类器到名字空间中, 这有些象文件系统中的文件夹。 把一个系统分为多个软件包使系统变成容易理解,尤其是在每个软件包都表现系统的一个特定部分时。软件包在 UML 中以文件夹的方式进行显示,并在文件夹头部显示包名,文件夹中包含类或者接口。图7中列出了一个包含两个类的软件包 lang。
图7 软件包及注释
另外,和常见的编程语言支持注释一样,UML也支持注释(Comment),如图7右侧即是一个注释元素以及注释关联线。注释可以添加到任何对象上。接下来看看在 MyEclipse 中如何绘制类图。首先自然是打开新建的 Class 图,然后可以看到 UML 编辑器的工具栏按钮列表:
表4 类图编辑工具栏
在这些工具栏中,最常用的当属类图编辑功能了。点击 UML 编辑器工具栏上的 按钮 即可创建一个新的类。双击类图的三个方框的空白处:类名,属性列表和操作列表处,即可 快速修改类名或者加入新的属性和操作定义。 如果双击已经存在的属性或者操作定义, 则可以变为文本输入框,进入修改模式来修改。基本上所有的 UML 元素都支持此种修改方式,MyEclipse 的术语叫 Text hot-zone (文字热区)。 文字热区是节点或者连接点的中间的可编辑区域,例如关联类的连线中间,通过双击可以激活。激活后,热区内显示方形的可编辑输入框。输入框内可以直接输入文本,也支持删除、复制、粘贴、剪切带操作。要提交文字热区内地修改使之生效, 可以点击文字热区之外的任何地方即可, 随后编辑区消失并代之以显示原来被编辑的 UML 内容(图8)。
图 8 快速编辑类,连接区和编辑区和Text hot-zone
另外一种热区,Connection hot-zone,即连接热区。位于类图的四周,鼠标移过时可以看到多出的几个按钮,一般提供连接到节点的一些关联类,自关联,子类,依赖等等,可以点击按钮到另一个节点来完成连接,也可以只单击按钮自动生成一个应的关联类。要修改图形的大小,需要把鼠标放到图形的四个角上的某一个,出现黑色的小方块后,拖动即可调节其大小(不过图有个最小值,不能调节的比最小值还小) 。要移动元素,可以用鼠标画框的方式选中需要移动的元素, 然后再其中的任意一个元素上点击并拖放即可移动图形的位置。
最后一个和编辑有关的就是 Properties(属性)视图,当选中不同的元素时,会显示 对应的可以修改的属性值,如图 9所示。例如选中类 A 中的属性后,此时 Properties
视图如图 17.10 所示。Properties 视图中也可以编辑对应的值,并且以多页标签的方式来显 示所有可以修改,添加或者删除的内容(相对比下,在编辑器的画布上能改的属性则非常有 限)。Properties 标签下的工具栏, 可以处理一些操作例如转到上级(Go Up), 新建属性
(New Attribute),新建数据类型(New Datatype),新建版型(New Stereotype),以及删除模型(Delete from Model) 等等。 在 Name 输入框中可以修改属性名, Type 可以选择数据类型,Initial Value 中可以输入初始值,Visibility 中可以选择可见度,包括 Protected(受保护的),Public(公开的)和 Private(私有的) 。Changeability 中则可以选择是否为可以修改的值。Modifiers 中则可以修改修饰符。
图9 UML Properties视图
Properties 视图中另外一个相对固定的标签页就是 Ducumentation(文档) ,可以用来给每个 UML 的元素撰写一些说明文档。在这一页,Author 框输入作者信息,Version 框输入版本,Since 框输入什么时候开始有,Deprecated 则指示是否为废弃的类或者属性等信息,See 则输入参考信息,Documentation 则输入详细的注释信息。
图10 Documentation标签
当选中图形的最外层时,例如直接选中类图本身,此时就可以修改 Presentation 标签 下和图形显示有关的属性了。Display(显示)右侧的两个复选框分别可以指定是否显示属 性(Attributes)和操作(Operations)列表。Bounds(边界)则指定图形的坐标和大小,坐 标的格式是:x,y,width,height,即:横坐标,纵坐标,宽度,高度。需要说明下在计算 机绘图中,坐标的起点一般都是左上角,也即(0,0)这个点。Body Fill Color 指定了图形 的主体填充色彩。Header Fill Color 则指定了头部填充色彩(类图中位于最上侧,即类名显 示处) 。Line 则指定了线条(一般是边框等)的显示颜色。如图 17.12 所示。