
5.5 绘制包图
在UML中,所有元素均可以归纳到某一个包中,而包和包之间可以存在嵌套关系。也就是说,在Rose中不仅可以绘制一个或多个单独的包,而且还可以将某个包嵌套到指定包中,形成父子包关系。
5.5.1 绘制包图
在Rose中,可以通过用例图、类图和组件图来绘制包图。
1.用例图绘制
在“浏览器窗口”中,展开【Use Case View】选项,双击【Main】图标,打开“模型图窗口”。选择【工具箱】中的【Actor】工具,在窗口中绘制2个参与者。

然后,选择【工具箱】中的【Package】工具,在窗口中绘制3个包图。

最后,选择【工具箱】中的【Dependency or instantiates】工具,链接参与者与包元素。

2.类图绘制
在“浏览器窗口”中,展开【Logical View】选项,双击【Main】图标,打开“模型图窗口”。选择【工具箱】中的【Class】工具,在窗口中绘制4个类图。

然后,选择【工具箱】中的【Package】工具,在窗口中绘制2个包图。

最后,在“浏览器窗口”中,将NewClass和NewClass2移动到NewPackage中,将NewClass3和NewClass4移动到NewPackage2中。此时,在类图中将显示包名,其form则代表隶属的包。

3.组件图绘制
在“浏览器窗口”中,展开【Component View】选项,双击【Main】图标,打开“模型图窗口”。选择【工具箱】中的【Component】和【Package】工具,在窗口中绘制4个组件图和2个包图。

然后,将New Component和New Component2放置在NewPackage中,将New Component3和New Component4放置在NewPackage2中。

5.5.2 规范使用的共性
在用例图和类图中创建包图后,其包图的规范均相同。选择包图右击,执行【Open Specification…】命令,在打开的对话框中激活【General】选项卡,单击【Stereotype】下拉按钮,在其下拉列表中显示了所有的规范类型。

Stereotype中每个选项的具体图形样式见下表。

另外,选择包图规范表中的任意一个图形右击,执行【Sub Diagrams】命令,其级联菜单中包括下列2个选项:
□ New Statechart Diagram 表示创建状态图。
□ New Activity Diagram 表示创建活动图。
5.5.3 绘制嵌套包图
在Rose中,绘制嵌套包图和绘制包图大体一样,也是通过用例图、类图和组件图来绘制。由于各个图形模块中绘制嵌套包图的方法大同小异,这里以用例图为基础,详细介绍绘制嵌套包图的操作方法。
在“浏览器窗口”中,展开【Use Case View】选项,双击【Main】图标,打开“模型图窗口”。选择【工具箱】中的【Package】工具,在窗口中绘制1个包图,并将该包命名为“UI”。

在此,将UI包作为顶级包。在“浏览器窗口”中,右击【UI】选项,执行【New】|【Package】命令,创建子包。

此时,新创建的NewPackage包是UI包的子包,可以在“浏览器窗口”中展开UI包,查看包含关系。

技巧
用户也可以在“浏览器窗口”中采用将某个包拖到指定包内的方法,创建嵌套包图。