其实前面的UML统一建模语言(一)所描述的都是UML1的内容,现在咱们聊一聊UML2。
UML2.x完全建立在UML1.x基础之上,大多数的UML1.x模型在UML2.x中都可用。但UML2.x在结构建模方面有一系列重大的改进,包括结构类、精确的接口和端口、拓展性、交互片断和操作符以及基于时间建模能力的增强。UML1.x从1997年发布的UML1.0到2003年3月发布1.5版本,而UML2.x由2004年发布2.0版本,至今最新的版本已是UML2.4。UML1.x是OMG规范,UML2.x目标是ISO规范。
UML 2
UML 2 定义了13种基本的图,它们被分成两大类:
一、 结构建模图
结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素'建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。
1、包图(Package diagrams)用来将模型划分成不同的逻辑容器或“包”,并在更高层次上描述它们之间的交互关系。

2、类或结构图(Class or Structural diagrams)
用来定义模型的基本建立模块 : 类型、类和构成完整模型的一般素材。

3、对象图(Object diagrams) 显示结构元素的实例间如何关联,以及在运行时如何使用。
4、复合结构图(Composite Structure diagrams)
提供了一种对元素结构进行分层的方法,并着重体现了元素内部的细节,结构和关系。

5、组件图(Component diagrams) 被用来构造更高层次或更复杂的结构,通常由一个或多个类构成,并提供一个定义明确的接口。

6、部署图(Deployment diagrams) 显示现实环境中重要物件的物理配置。

二、 行为建模图
行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。
7、用例图(Use Case diagrams) 用来对用户/系统的交互关系建模。
用脚本和情形的形式来定义行为,要求和约束。

8、活动图(Activity diagrams) 广泛使用于定义基本程序流程和在一般化过程中,记录判断点和动作。

9、状态机图(State Machine diagrams) 对于了解模型执行时的瞬时状态,即模型的运行状态是重要的。

10、通信图(Communication diagrams) 显示协作实例中,对象间实时消息和通信的网络结构与顺序。

11、顺序图(Sequence diagrams) 与通信图联系紧密,并在垂直时间线上显示对象间消息传递的顺序。

12、时间图(Timing diagrams) 融合顺序图和状态图,以提供观察对象随时间变化的状态和改变这个状态的消息。

13、交互概览图(Interaction Overview diagrams)
融合活动图和顺序图,使交互部分容易与判断点和流程结合。

EnterpriseArchitect
Enterprise Architect是一个为设计和建造软件系统,业务流程建模,以及为更广义建模目的可视化平台;是基于最新的UML
2.x规范,UML定义了一个可视化的语言,是用来建模一个特定的领域或系统(无论是计划中的,还是现有的);是一个不断发展的工具,包括了开发周期的所有方面,从最初的设计阶段,到部署,维护,测试和变更控制,提供了全程追溯。
EA的样子如下:

点击File或者CreateProject,可以创建一个project,此时弹出一个wizard
manager提示框如下图。其实这是一个添加包的选择框,每个选项对应一个已经提前创建了相应UML图的包,即点击OK后会创建以选项为名的包。上图是我选择了cancel的结果。

点击New Diagram按钮左边的New a package按钮,会弹出如下框:

如上编辑后点OK,会在Model下创建MyPackage包,如下:

在那个MyPackage上右击会有一个“Add a New Model
using Wizard ...”,点击它也会弹出Wizard Manager框。如果点击MyPackage选中它,再点击New
Diagram按钮就会弹出如下选择框(额滴神,要的就是它):

上图中被圈的就是上一模块中说的UML两类13种图。所以EA是基于UML2又不拘束于此。
最后必须要说的就是下图,点击UML Tutorial会打开UML最新版本的教程,不过是全英文的。如果想看中文的请看这。

|