UML:开发应用程序
撰稿人:
,整理人:
,
2007 年 11 月 [修订号:V1-4]
本文适用于 NetBeans IDE 6.0 发行版
在本教程中,您将了解如何使用 IDE 的 UML 建模功能来创建简单的 UML 类图。然后,使用代码生成和逆向工程功能来开发一个简单的银行应用程序,并通过执行测试类对该应用程序进行测试。此银行应用程序是一个非常简单的应用程序;实际的应用程序模型要复杂得多,需要更多的细节设计。本教程旨在介绍 IDE 的一些 UML 功能,而不是向您传授 UML 概念或 Java 编程语言。
预计时间:25 分钟
目录
教程要求
在开始之前,确保对本节的系统要求有所了解。
前提条件
要使用本教程,您必须在系统上安装 IDE,并且应该对 IDE 的基本部分比较熟悉。此外,您还应具备 Java 编程语言和 UML 方面的基本知识。有关 IDE 的基础知识,请参阅在线帮助中的 IDE Basics 主题。官方 UML 资源页面提供了许多有用的 UML 技巧和理论,地址为 http://www.uml.org/。
系统要求
本教程假定您的系统满足 NetBeans 6.0 发行说明 的“系统要求”部分所指定的要求。
本教程所需要的软件
开始之前,需要在您的计算机中下载并安装以下软件:
回到顶部
为应用程序创建 Java 项目
在本部分,您需要为在教程中开发的 Java 应用程序创建一个新的 Java 项目。
- 从主菜单中,选择“文件”>“新建项目”,然后在“新建项目”向导中执行以下操作:
- 在“类别”中,选择“Java”。
- 在“项目”中,选择“Java 应用程序”。
- 单击“下一步”。
- 在“项目名称”字段中,键入 JavaPrj。
- 在“项目位置”字段单击“浏览”,导航到计算机上的任何目录。单击“打开”并键入 MyPrj。
- 清除“设置为主项目”和“创建主类”的复选框标记。
- 单击“完成”。
将显示一个进度对话框。
创建新的 JavaPrj 项目后,该项目即会显示在“项目”窗口中。
观看演示
回到顶部
创建 UML 项目和类图
在本部分,您将为应用程序创建 UML 项目(或 UML 项目)和类图。UML 项目是一种机制,通过这种机制您可以存储和管理 UML 模型的文件集合。UML 模型包含模型的所有图、关联的图元素以及与 UML 模型相关的元数据。
- 要创建 UML 项目,请选择“文件”>“新建项目”,然后执行以下操作:
- 在“类别”下选择“UML”。
- 在“项目”下选择“Java 平台模型”。
- 单击“下一步”。
将打开“新建 Java 平台模型”对话框。
- 在“项目名称”字段中,键入 UMLPrj。
请注意,在键入项目名称后,IDE 会自动建议将此名称用作项目文件夹的名称。
- 确认项目位置为 MyPrj。
- 单击“完成”。
IDE 会创建一个 UML 项目,并且将显示“创建新图”对话框。
- 在“图类型”列表中选择“类图”。
- 在“图名称”字段中,键入 BankClassDiagram。
- 保留“名称空间”字段中的 UMLPrj,然后单击“完成”。
IDE 将执行以下操作:
- 在“项目”窗口中添加 UMLPrj 项目节点
- 在 Model 节点下创建 BankClassDiagram 节点
- 在 Diagram 编辑器中显示新的类图(此时的类图为空)
- 打开 Modeling Palette
观看演示
回到顶部
添加并定义类元素
现在,将添加并定义组成 Java 应用程序的类元素。您将使用建模组件面板中的“类”图标来创建类元素。
- 从建模组件面板的“基本”类别中,选择“类”图标
,然后在图编辑器中单击鼠标左键。
此操作会在图编辑器中放置一个类元素。
- 在图编辑器中的任意位置单击鼠标右键以取消选择“类”图标。
- 选择新添加的类元素,键入 BankAccount,然后按回车键。
IDE 将执行以下操作:
- 将元素标记为 BankAccount
- 创建公共操作 BankAccount()
- 在属性窗口中显示 BankAccount 类的属性
- 在图编辑器中的 BankAccount 类元素处于选定状态下,右键单击 Attributes 一词,然后从弹出菜单中选择“插入属性”。
此时将打开一个只有一行的编辑器,其中显示了以下信息:
可视性 类型 名称[范围]=initialValue {名称=值}
- 键入 balance,然后按回车键。
BankAccount 类中将显示一个名为 balance 且类型为 int 的私有属性。将对该类创建以下操作:
- public int getBalance()
- public void setBalance(int val)
- 在图编辑器中的 BankAccount 类元素仍处于选定状态下,右键单击 Operations 一词,然后从弹出菜单中选择“插入操作”。
将打开一个单行编辑器,并显示以下信息:
可视性 returnType 名称(参数) {属性, ...}
- 键入 withdraw,将光标(使用键盘上的向右方向键)移至圆括号内,键入 int amount,然后按回车键。
IDE 将在类元素中添加新的操作,如下所示:
public void withdraw(int amount)
观看演示
回到顶部
向图中添加更多的元素
在本部分,您将使用建模组件面板中的更多 UML 图标来向应用程序添加接口、包、属性和操作。
- 从建模组件面板的“基本”类别中,选择“包”图标
。
注意:如果需要,请向下滚动鼠标以查看其他的建模图标。
- 在图编辑器中单击鼠标左键,向类图添加一个包元素。
- 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。
注意:向图中添加建模元素后,您可以选择这些元素并将其拖至图编辑器中的新位置,以改进图的外观。在执行右键单击操作时要格外小心,因为如果单击的位置不正确,则可能会打开图编辑器的弹出菜单。在这种情况下,您只需再次单击图编辑器的空白区域即可。
- 在包元素处于选定状态下,键入 bankpack,然后按回车键。
- 从建模组件面板的“基本”类别中,选择“接口”图标
,然后在图编辑器中单击鼠标左键。
- 在图编辑器中的任意位置单击鼠标右键以取消选择“接口”图标。
- 在接口元素处于选定状态下,键入 Bank,然后按回车键。
- 在 Bank 接口中添加 deposit 操作。
向接口添加操作的方法与向类添加操作的方法相同(请参见上一部分中步骤 6)。请按如下所示定义操作:
public void deposit(int amount)
- 从建模组件面板中,选择“类”图标
,然后在图编辑器中双击。
- 在图编辑器中的任意位置单击鼠标右键以取消选择“类”图标。
注意:如果绘制了过多的类元素,请取消选“类”图标,方法是:右键单击要删除的类元素,然后选择“编辑”>“删除”。
- 将类元素命名为 Checking 和 AccountTest,然后根据需要调整元素的大小。
观看演示
回到顶部
标识元素之间的关联
在本部分,您将使用建模组件面板中的 UML 图标来标识类元素之间的关联。
- 从建模组件面板的“基本”类别中,选择“实现”图标
,然后在 BankAccount 类元素内单击鼠标左键。
- 在 Bank 接口元素内单击鼠标左键,然后在图编辑器中的任意位置单击鼠标右键以取消选择“实现”图标。
类与接口元素之间将显示一个实现链接。实现链接指示了类与接口之间的关系。
- 从建模组件面板的“基本”类别中,选择“泛化”图标
。
- 在 Checking 类元素(子类)内单击鼠标左键,然后在 BankAccount 类元素(超类)内单击鼠标左键。
将显示“选择要重定义的方法”对话框。
- 选择 withdraw 方法,然后单击“确定”。
IDE 将执行以下操作:
- 关闭对话框
- 将 withdraw 方法添加到 Checking 类中
- 在两个相关的类元素之间添加泛化链接
泛化链接显示子类与其超类之间的关系。子类是超类的细化,表明它们可以继承超类的特性(属性和操作)。
- 在图编辑器中的任意空白区域单击鼠标右键以取消选择“泛化”图标。
- 从建模组件面板的“基本”类别中,选择“嵌入链接”图标
,在 BankAccount 元素内单击鼠标左键,然后在 bankpack 包元素内再次单击鼠标左键。
- 按照上一步骤所述,使用“嵌入链接”图标在 Checking、AccountTest 以及 Bank 元素与 bankpack 包之间建立连接。
- 取消选择“嵌入”图标。
嵌套链接表示元素是如何按组进行划分的。在本例中,我们将所有的类元素全部划分到 bankpack 包的一个组中。
- 在图编辑器中的任意位置按 Ctrl-S 组合键以保存对模型所做的更改。
观看演示
回到顶部
生成 Java 源代码
在本部分,您将使用 UML 的生成代码功能为前面部分所创建的 UML 模型生成 Java 源代码。
- 在“项目”窗口中,右键单击 UMLPrj 节点,然后从弹出菜单中选择“生成代码”。
将显示“生成代码”对话框,然后指定“目标项目”。
- 接收“生成代码”对话框中的默认复选框。
- 单击“确定”。
IDE 将生成代码,并在“输出”窗口显示代码生成的进度。
观看演示
回到顶部
使用逆向工程继续开发
在本部分,您将通过执行以下操作来继续开发应用程序:在源代码编辑器中修改生成的源代码,然后使用逆向工程功能更新应用程序的 UML 模型。
- 在“项目”窗口中,展开 UMLPrj > Model > bankpack 节点。
- 右键单击 BankAccount 节点,然后从弹出菜单中选择“导航至源”。
- 在源代码编辑器中,将以下代码添加到 deposit 方法中:
setBalance(getBalance() + amount);
- 在“项目”窗口的 UMLPrj > Model > bankpack 节点下,右键单击 AccountTest 节点,然后从弹出菜单中选择“导航至源”。
- 在源代码编辑器中键入(或复制并粘贴)以下代码:
public static void main(String[] args) {
Checking myChecking = new Checking();
myChecking.deposit(100);
System.out.println("Checking Balance is: myChecking.getBalance() ); " +
myChecking.getBalance() );
}
此代码会创建一个新的 Checking 对象,并指定一项 100 美元的存款,然后输出结果。
- 在源代码编辑器中单击鼠标右键,然后选择“设置代码格式”。
- 在源代码编辑器中的任意位置按 Ctrl-S 组合键以保存对 AccountTest.java 源文件所做的更改。
- 再次在源代码编辑器中单击鼠标右键,然后从弹出菜单中选择“逆向工程”。
将显示“逆向工程”对话框。
- 在“逆向工程”对话框中选择“使用现有的 UML 项目”,然后选择 UMLPrj 作为目标项目。
- 单击“确定”以启动逆向工程过程。
-
弹出“模型元素覆盖授权”对话框,请求确认对 AccountTest 的覆盖操作。单击“是”/“全部选是”。
- 单击 BankClassDiagram 选项卡。
请注意,在类图的 AccountTest 类元素中现在出现了新输入的 main 方法。
通过使用逆向工程功能,对 Java 源项目所做的更改会反映在相应的 UML 模型项目中。
观看演示
回到顶部
对所做的工作进行测试
现在,将生成并运行项目。
- 在“项目”窗口中,右键单击 JavaPrj 节点,然后从弹出菜单中选择“生成”。
- 在“项目”窗口中,右键单击 JavaPrj 节点,从弹出菜单中选择“运行”。
将显示“运行项目”对话框。
- 在“运行项目”对话框中,选择
bankpack.AccountTest 作为主类,然后单击“确定”。
IDE 将执行应用程序,并在“输出”窗口中显示以下输出结果:
Checking Balance is: 100
现在,您已完成了应用程序的开发。
观看演示
回到顶部
结束语
在本教程中,您为一个简单的银行应用程序设计了类图。我们已经学习了如何执行以下任务:
- 创建 UML 项目
- 使用建模组件面板中的 UML 图标来创建类、接口、包、属性和操作
- 使用 UML 关联将类链接在一起
- 在“项目”窗口显示的 UML 项目中查看在图编辑器中创建的元素
- 在 UML 项目中,为在图编辑器中创建的元素生成源代码,并在源代码编辑器中查看这些代码
- 使用代码生成和逆向工程功能,保持建模与在源代码编辑器中开发代码之间的同步
- 通过源代码编辑器编译并执行类
回到顶部
未来计划
回到顶部
>> 更多 UML 建模文档