UML建模:创建类图
2008-06-07 10:03
841 查看
在本教程中,您将了解如何使用 Sun Java Studio Enterprise 集成开发环境 (Integrated Development Environment, IDE) 的 UML 建模功能来创建类图。本教程说明了用于创建类图元素的各种技术,以及如何生成图的 Java 源代码;其目的旨在介绍 IDE 的一些 UML 建模类图功能以及用于创建类图元素的各种技术。 类图是应用程序的一种可视表示,用于显示应用程序的类及类间关系。当您打开类图时,IDE 会在建模组件面板中显示一组特定的 UML 元素图标。通过使用类图模型,可以描述应用程序中元素的静态结构。IDE 允许您以图形方式创建包含类的图。类是按照共享通用结构及行为的分层结构排列的,并且与其他类相关联。 本教程的目的旨在介绍 IDE 的 UML 建模类图功能,以及使用双向工程功能来创建类图元素的各种技术,而不是向您传授 UML 概念或 Java 编程语言。 要使用本教程,您必须在系统中安装 Java Studio Enterprise IDE,并且应该熟悉 IDE 的基本组成部分。同时,还应该对 Java 编程语言和 UML 建模有基本的了解。要了解 Java Studio Enterprise IDE 的基础知识,请参见联机帮助中的“IDE 基础知识”主题。 目录使用类图创建类图并添加元素 生成并编辑 Java 源代码 查找图元素 为类和图生成文档 描绘链接和关联 创建依赖关系图 保存图并更新 Java 源文件
创建表示类的元素 命名类 定义类属性 定义类操作 描绘链接和关联 添加文档 以下部分介绍了如何为一个虚构的银行应用程序创建简单的类图。当您完成教程中介绍的详细步骤后,创建的类图应如图 1 所示。显示的图仅供参考。请根据下一部分开始处的说明绘制类图。 如果步骤标记为“可选”,则表示该步骤用于说明其他任务或执行某项任务的替代方法。不执行可选步骤也能成功完成本教程。 ![]() 图 1:样例类图
本部分说明了 IDE 提供的一些基本 UML 建模任务,这些任务通过类图对简单的应用程序进行建模。本部分包含以下步骤: 创建类图 添加并标记类元素 使用弹出式菜单添加属性 添加操作 (可选)编辑属性或操作 添加并定义其他的类 创建类图 如果需要,请启动 IDE 并打开以前创建的 UMLTutorialProject 项目。 在“项目”窗口中,展开 "UMLTutorialProject" 节点,然后右键单击“模型”节点。 从弹出式菜单中选择“添加”>“图”。 将打开新建向导,其中显示“创建新图”页。 在“图类型”列表中选择“类图”。 在“图名称”字段中,键入 ClassDiagram。 保留“名称空间”字段中的缺省设置,然后单击“完成”。 IDE 将执行以下操作: 在“模型”节点下创建 ClassDiagram 节点 在图编辑器中显示新图(此时该图为空图) 打开建模组件面板 添加并标记类元素 从建模组件面板的“基本”类别中,选择 "Class" 图标 ![]() ,然后在图编辑器中单击一下鼠标。 此操作会在图中放置一个类元素。 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。
键入 EntryStation,然后按 Enter 键。 IDE 将执行以下操作: 将类元素的名称标记为 EntryStation。 创建名为 EntryStation() 的公共操作。 在属性窗口中显示类的属性。 在“项目”窗口的“模型”节点下,添加名为 EntryStation 的类元素。 使用弹出式菜单添加属性 现在,您已绘制并标记了 EntryStation 元素,接下来需要描述其属性。 在图编辑器中选择 EntryStation 元素(如果尚未选择)。 右键单击“属性”一词,然后从弹出式菜单中选择“插入属性”。 将打开一个单行编辑器,并显示以下信息:
EntryStation 类中将显示一个类型为 int 的属性 stationID,并且还会在该类中创建以下操作: 请注意,由于保留了缺省设置,因此会创建 get 和 set 操作。 添加操作 在图编辑器中,选择 EntryStation 类元素。 右键单击“操作”一词,然后从弹出式菜单中选择“插入操作”。 将打开一个单行编辑器,并显示以下信息:
IDE 将创建一个新的操作。 (可选)编辑属性或操作 双击类中的属性或操作时,将打开一个组合框编辑器,如下图所示。 ![]() 当单击属性或操作的每一部分时,该部分的标签将在组合框中以粗体字型显示。如果适用,操作或属性的选定部分还会有一个值的下拉列表。 例如: 双击 EntryStation 类中的 stationID 属性。 单击 "private" 一词。 请注意,可见性一词将以粗体字型显示。 按 Ctrl+向下方向键。 将打开一个下拉列表,其中显示了可以为可见性属性选择的值。 从下拉列表中选择一个新值,然后按 Enter 键。 属性将被更新为新值。
添加并定义其他的类 现在,您需要添加更多的类来完成简单的银行应用程序类图。添加类后,请根据下面描式的技术,对类进行标记并添加属性和操作。 从建模组件面板的“基本”类别中,选择 "Class" 图标 ![]() ,然后在图编辑器中单击五次以放置其他类元素,如下图所示。 ![]() 单击鼠标右键以取消选择 "Class" 图标。
在 ATM 类元素仍处于选定状态下,根据下面的内容添加属性:
向 Consortium 类中添加操作。添加操作与添加属性类似。右键单击“操作”一词,然后选择“插入操作”。 键入 validateAccountInfo,然后按 Enter 键。 IDE 将创建新的操作,如下所示:
为此类添加两个操作,如下所示:
将其余的两个类元素标记为 Branch 和 User。 对于 User 类,不添加任何属性或操作。 对于 Branch 类,添加一个属性,如下所示:
本部分包含以下步骤: 生成 Java 源代码 使用源代码编辑器添加属性 生成 Java 源代码 您可以对 Java 应用程序进行建模,然后为模型生成相应的 Java 源代码。要生成源代码,您需要创建 Java 项目,该项目用于存储为 UML 项目生成的代码。 从主菜单中,选择“文件”>“新建项目”,然后执行以下操作: 在“类别”下选择“常规”。 在“项目”下选择“Java 应用程序”。 单击“下一步”。 在“项目名称”字段中,键入 JavaPrj1。 对于“项目位置”,单击“浏览”,然后选择目录 UMLTutorial。 清除“设置为主项目”和“创建主类”复选框。 单击“完成”。 将显示一个进度对话框。创建 JavaPrj1 项目后,该项目会显示在“项目”窗口中。 在“项目”窗口中,右键单击 "UMLTutorialProject" 节点,然后从弹出式菜单中选择“生成代码”。 在“生成代码”对话框中,单击“浏览”。 在“选择目标源文件夹”对话框中,找到刚创建的 JavaPrj1 项目的源文件夹。 例如:C:\Temp\UMLTutorial\JavPrj1\src 单击“选择”。 返回至“生成代码”对话框后,取消选中“备份现有的源文件”复选框,然后单击“确定”。 在“授权保存 UML 项目”对话框中,单击“确定”。 IDE 将生成 Java 源代码,并且输出窗口会显示代码生成过程的进度。 在“项目”窗口中,展开 "JavaPrj1" >“源包”节点,然后双击 "<缺省包>" 节点。 请注意,该文件夹包含与在 ClassDiagram 模型中创建的类元素同名的 Java 源文件。 使用 Java 源代码编辑器添加属性 现在,将使用源代码编辑器来添加 EntryStation 的另一个属性。修改 Java 源文件后,您将使用逆向工程功能在相应的 UML 模型元素中反映所做的更改。 在“项目”窗口中,展开 "UMLTutorialProject" 节点和“模型”节点(如果需要)。 右键单击 "EntryStation" 节点,然后从弹出式菜单中选择“导航至源”。 将出现一个标记为 EntryStation.java 的源代码编辑器标签,其中显示了类的源代码。 在源代码编辑器中,在第一个属性下面键入以下代码:
在源代码编辑器中单击鼠标右键,然后从弹出式菜单中选择“逆向工程”。 将显示“逆向工程”对话框。 在“逆向工程”对话框中选择“使用现有的 UML 项目”,然后选择 UMLTutorialProject 作为目标项目。 单击“确定”以启动逆向工程过程。 在“模型元素覆盖授权”对话框中,单击“是”以覆盖 EntryStation 类的现有模型。 单击 "ClassDiagram" 标签以将焦点返回至图编辑器。 EntryStation 类元素中会显示 isOperating 属性。
![]() 表示。操作由操作图标 ![]() 表示。 通过“项目”窗口查找图编辑器中的对象 在“项目”窗口中,双击 "EntryStation" 节点。 在图编辑器中,将选定并居中放置 EntryStation 类元素。 通过图编辑器查找“项目”窗口中的对象 在图编辑器中,选择 Consortium 类,然后单击鼠标右键。 从弹出式菜单中选择“在模型中选择”。 在“项目”窗口中,将突出显示目标对象的名称。
使用 UML 文档窗口 使用属性窗口为属性生成文档 使用 "Comment" 图标为图生成文档 使用 UML 文档窗口 (可选)如果未显示“UML 文档”窗口,请选择“窗口”>“UML 建模”>“UML 文档”。 在图编辑器中,选择 EntryStation 类元素。 在 UML 文档窗口的文本框内单击鼠标左键。 键入 Describes the actions of the EntryStation class。 右键单击 EntryStation 类元素,然后从弹出式菜单中选择“生成代码”。 在“生成代码”对话框中,单击“确定”。 在“授权保存 UML 项目”对话框中,单击“确定”。 将生成新的 Java 代码。 单击 "EntryStation.java" 源代码编辑器标签。 您会看到在文档窗口中键入的文本已被添加到 EntryStation.java 源文件中。 使用属性窗口为属性生成文档 单击 "ClassDiagram" 标签以将焦点返回至图编辑器。 在“项目”窗口中,展开 "EntryStation" 节点。 选择标记为 private boolean isOperating 的属性节点。 将在 UML 属性窗口中显示其属性。 在属性窗口中,单击位于“文档”行的省略号按钮 (...)。 将打开一个定制编辑器,如下图所示。 ![]() 键入文本 Maintains if EntryStation is operating,然后单击“确定”。 在图编辑器中,右键单击 EntryStation 类元素,然后从弹出式菜单中选择“生成代码”。 在“生成代码”对话框中,单击“确定”。 在“授权保存 UML 项目”对话框中,单击“确定”。 将生成新的 Java 代码。 单击 "EntryStation.java" 源代码编辑器标签。 您会在紧靠 isOperating 属性上方的源代码中看到键入的文本。 使用 "Comment" 图标为图生成文档 您可以使用位于建模组件面板中的 "Comment" 图标为图中的选定元素添加一些描述特定信息的注释。 单击 "ClassDiagram" 标签以返回至图编辑器。 从建模组件面板的“注释”类别中,选择 "Comment" 图标 ![]() 。 在 CashierStation 元素的右侧或正上方单击一下鼠标。 将在图中放置一个注释元素。 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。 在注释元素处于选定状态下,键入 Cashier stations have limited funds,然后按 Enter 键。 注释元素中将显示该文本。 从建模组件面板的“注释”类别中,选择 "Link Comment" 图标 ![]() 。 在 CashierStation 内单击鼠标左键,然后在注释元素内再次单击鼠标左键。 注释元素和类元素之间将出现一条链接。 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。 对 Branch 类元素重复执行步骤 2-8,以在图中放置并链接第二个注释元素。 请使用以下文本:A branch belongs to a Member Institution.
描绘类关联 描绘限定关联 设置关联的多重性 描绘泛化和继承 描绘类关联 从建模组件面板的“关联”类别中,选择 "Aggregation" 图标 ![]() 。 在 ATM 元素内单击鼠标左键,然后单击 Consortium 元素。 将在两个类之间绘制一条链接。 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。 “项目”窗口中体现了这两个类之间的关系,如下图所示。 ![]() 选择 ATM 和 Consortium 之间的聚合链接。 选定该链接时,其颜色会变为蓝色。 将光标置于靠近选定线条的中间位置,然后单击鼠标右键。 从弹出式菜单中选择“标签”>“链接名称”。 在名称字段中键入 AccountVerification,然后按 Enter 键。 链接将被标记为下图所示的内容。 ![]() 从建模组件面板的“关联”类别中,选择 "Association" 图标 ![]() ,然后由 CashierStation 至 Branch 绘制一条链接。 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。 描绘限定关联 限定关联用于关联两个类和一个限定符。限定符是一个用于降低关联有效多重性的特殊属性。您将以小框的方式来描绘限定关联,该框位于靠近其限定类的关联线的末尾。 下面的步骤说明了如何在 ATM 类和 Consortium 类之间创建限定关联。 右键单击连接 Consortium 类的聚合链接,然后选择“显示限定符”。在 Consortium 类元素上将附着一个限定符,如下图所示。 ![]() 设置关联的多重性 您可能希望设置此关联的多重性。但是在缺省情况下,这些标签是隐藏的。请使用以下步骤来显示关联链接中的标签。 右键单击 Consortium 和 ATM 之间的链接,然后选择“标签”>“两个端点的多重性”。 将关闭弹出式菜单,并且显示链接的标签。 右键单击位于聚合链接上面部分(靠近 ATM 元素)的小菱形,然后选择“设置多重性”。
请注意,链接的下面部分将被标记为 1,如下图所示。 ![]() 采用类似的步骤,为 CashierStation 和 Branch 之间的关联链接设置多重性,如下图所示。 ![]() 描绘泛化和继承 泛化是一个类与其一个或多个完善版本之间的关系。正被完善的类称为超类,而每个完善后的版本称为子类。超类的属性和操作可以显示在其子类中,因此每个子类都将继承超类的功能。您可以使用继承来组织类,以便共享通用结构。泛化链接表示一个类可以继承来自父类的一组属性和操作。 从建模组件面板的“基本”类别中,选择 "Generalization" 图标 ![]() 。 在 ATM 类元素内单击鼠标左键,然后单击 EntryStation 类元素。 将显示“选择要重定义的方法”对话框。 选中位于 "ATM" 节点旁边的复选框以选择所有方法,然后单击“确定”。 选定的方法将被添加到 ATM 类元素中,并且这两个类元素之间会出现一条泛化链接。 通过以下方法绘制另一个泛化链接:首先单击 CashierStation,然后再单击 EntryStation。 在“选择要重定义的方法”对话框中,选中位于 "CashierStation" 节点旁边的复选框以选择所有方法,然后单击“确定”。 在图编辑器中的任意位置单击鼠标右键以取消选择 "Generalization" 图标。 完成的图应如下图所示。 ![]()
泛化 关联 实现 包含给定类类型参数的操作 在“项目”窗口中,右键单击 "ATM" 节点。 从弹出式菜单中选择“生成依赖关系图”。 将创建一个名为 "ATMDependencies" 的依赖关系图,并在图编辑器中打开该图,如下图所示。 ![]()
完成图后,右键单击 "ClassDiagram" 标签,然后从弹出式菜单中选择“保存文档”。 将关闭菜单并保存类图。 在“项目”窗口中,右键单击 "UMLTutorialProject" 节点,然后从弹出式菜单中选择“生成代码”。 在“生成代码”对话框中,接受缺省的 JavaPrj1 源文件夹位置,并备份现有的源文件。 或者,您可以单击“浏览”以查找并使用其他源文件夹。 单击“确定”。 IDE 将生成代码,并且输出窗口会显示代码生成过程的进度。JavaPrj1 项目的 Java 源文件夹应被更新以反映您对图所做的更改。
创建类图 使用建模组件面板中的图标向图添加元素 在类元素中添加并定义属性和操作 为图和图元素生成文档 描绘类元素之间的链接和关联 创建依赖关系图 为图生成 Java 源代码文件 保存图 |
相关文章推荐
- 利用 UML 概要文件 (UML Profiles) 定制领域建模,第 1 部分: 创建和部署工
- UML建模——创建模板类
- UML--静态建模:类和类图
- UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图
- UML建模系列-类图(Class diagram)
- UML博客建模--模块与类图
- 如何:从代码创建 UML 类图(ZZ)
- 通往架构师之路-软件工程-UML建模-类图-关系与解释?
- Trufun UML2.x建模工具新建UML2项目和创建活动图泳道视频教材
- 步步为营UML建模系列六、类图(Class diagram)
- UML建模-业务概念分析-类图(可以用来做详细设计)
- 步步为营UML建模系列六、类图(Class diagram)
- UML 建模:创建协作图
- UML建模类图、时序图、用例图相关
- 利用 UML 概要文件 (UML Profiles) 定制领域建模(1): 创建和部署工具
- UML建模类图
- 步步为营UML建模系列六、类图(Class diagram)
- (3)项目建模语言之UML绘制类图
- 步步为营UML建模系列六、类图(Class diagram)
- UML--静态建模:类和类图