enterprise architect类图中有一个包元素。
CASE1:包P1中有一个类P1-Class1,包P1导入包P2,你希望在P1视图中看到包P2中的内容,如下图所示:
图1
观察图1,你可以看到包P2中有一个类P2-Class1,这个操作很简单,你只需要在该窗口空白处点击右键,在弹出的菜单中选择New Element or Connector|Package即可.当然你也可以通过ToolBox中的class项下选择Package这个按钮,然后拖动到该视图中.
CASE2:虽然你可以看到包P2中的内容,但现在P1-Class1需要同P2-Class2建立依赖关系,怎么办呢?你怎么样才能把P2-Class2这个类弄到P1视图中呢?其实很简单,在空白处点击鼠标右键,你可以在弹出的菜单中看到"Insert Existing Element"这一项,点击它,弹出一个窗口,这个窗口显示一棵树,你可以找下图所示的分支:
图2
点击P2-Class1,你可以在P1视图中看到P2-Class1,建立依赖关系即可,如下图所示:
图3
不过有一个问题,不知道为什么,有些EA自动生成的类视图中创建的包不会显示其中的元素,如下图所示:
图4
你看,System是EA自动生成的一个类图,然后再其视图中创建包P3,虽然包P3中有一个类P3-Class3,但在视图中确不显示P3-Class3,我查了不少资料,始终没有找到原因,如果有网友遇到这种问题并解决了,请告诉我,不胜感激! 所以为了以防万一,你打开一个类视图窗口后,先尝试创建一个包,然后在包里创建一个类元素,再查看一下这个类视图中的包元素是否会显示其中的内容.
另外再说一下在设计时应该如何划分类的包,并且如何组织这些包.我认为需要注意以下几点:
1.首先应该有一个System包,它包含一个类图(注意不是类元素),但个类图中不应该出现任何类,它仅应该包含类包(包含其它的类).
2.找出核心的类,这些类应该具备几乎不会变化的特点,大多应该是一些抽象类.它们应该组成一个包,称之为核心包.
3.按功能,层,子系统或者相关的类等原则划分一个个包.
4.考虑包的放置位置,无疑核心包应该出现在System包中,其它包可能出现在System包中,也可能不会.对于出现在System包中包应该同核心包是平等的关系,这也反映了它们的使用范围(全局的).通过包之间的连线可以看出这些包之间的关系.
5.不同包中的类之间可能有联系,可以将相应包中的类导入当前类图.
本文转自jetyi51CTO博客,原文链接: http://blog.51cto.com/jetyi/786627,如需转载请自行联系原作者