练习 2.3:创建 PiggyBank 领域模型图

您在此练习中创建“帐户操作”功能区域和 PiggyBank 领域模型图。领域模型图使用显示系统中主类的类图来描述 PiggyBank 系统的领域。

分析模型构建在您在“模块 1”中确定的“帐户操作”功能区域上。“帐户操作”程序包包含“帐户操作分析元素”子程序包以及“显示余额”、“划拨款项”和“兑现支票”用例实现。“帐户操作分析元素”子程序包包含您在对模型的静态结构进行建模时创建的 Rational Unified Process®(RUP®)分析元素。该程序包还包含“帐户操作”分析元素图,它用作创建领域级别图的工作区。

领域图是一类显示 PiggyBank 在线银行系统的主类的类图。这个简单的类图显示您在前一个练习中确定的主类、这些类的属性以及这些类之间的任何关系。领域模型只描述系统的领域,不描述应用程序本身的任何细节。领域模型通过只对系统的实体类及其关系进行建模来完成这一点。领域图被称为是静态的,因为它只对系统结构进行建模。您在此练习中创建实体类并对它们的属性进行建模。您在为每个用例创建序列图时,确定每个实体的操作,并对这些操作进行建模。

建模是一个反复的过程。随着您发现有关您正在建模的系统的更多信息,领域模型就会更改。在本教程中,您绘出大体的基本领域图,并对每个实体的所有属性进行建模。

创建功能区域

因为分析模型构建在用例模型上,所以“帐户操作”功能区域存储 PiggyBank 分析元素和用例实现。您必须在模型的根处创建一个新的“帐户操作”功能区域。

要创建“帐户操作”功能区域:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“«模型库»分析构建块”,右键单击 ${functional.area} 程序包;然后单击“复制”。
  2. 右键单击根“分析模型”程序包;然后单击“粘贴”。
  3. 右键单击 ${functional.area};然后单击“查找/替换
  4. 在“查找内容”字段中,输入 ${functional.area},并单击“替换”。
  5. 在“替换为”字段中,输入“帐户操作”,并单击“确定”。

要将“显示余额”用例实现添加到“帐户操作”功能区域中:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“«模型库»分析构建块”,右键单击 ${use.case} 程序包;然后单击“复制”。
  2. 右键单击“帐户操作”程序包;然后单击“粘贴”。
  3. 右键单击 ${use.case};然后单击“查找/替换”。
  4. 在“查找内容”字段中,输入 ${use.case} 并单击“替换”。
  5. 在“替换为”字段中,输入“显示余额”并单击“确定”。
要将“划拨款项”用例实现添加到“帐户操作”功能区域中:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“«模型库»分析构建块”,右键单击 ${use.case} 程序包;然后单击“复制”。
  2. 右键单击“帐户操作”程序包;然后单击“粘贴”。
  3. 右键单击 ${use.case};然后单击“查找/替换”。
  4. 在“查找内容”字段中,输入 ${use.case} 并单击“替换”。
  5. 在“替换为”字段中,输入“划拨款项”并单击“确定”。
要将“兑现支票”用例实现添加到“帐户操作”功能区域中:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“«模型库»分析构建块”,右键单击 ${use.case} 程序包;然后单击“复制”。
  2. 右键单击“帐户操作”程序包;然后单击“粘贴”。
  3. 右键单击 ${use.case};然后单击“查找/替换”。
  4. 在“查找内容”字段中,输入 ${use.case} 并单击“替换”。
  5. 在“替换为”字段中,输入“兑现支票”并单击“确定”。

“帐户操作”功能区域包含用例实现和 PiggyBank 分析模型的分析元素。“帐户操作分析元素”子程序包包含该项目的所有分析元素。您可以将“帐户操作分析类”类图用作工作区来构建 PiggyBank 领域图。

创建领域模型图

您将在“帐户操作”功能区域中创建领域模型图,然后将直观化的模型元素复制到分析模型模板的“«透视图»概览”程序包中。“帐户操作分析类”图是创建图的工作区,而“«透视图» 概览”程序包只包含图(而不是类)的最终副本。

要创建领域图:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“帐户操作”。
  2. 在“帐户操作分析元素”程序包中,双击“帐户操作分析类”。

您已经创建了“PiggyBank 分析元素”图。该图是一个工作区,从它您可以在功能区域的结构中创建类并使类直观化。您应在此程序包中创建领域级别的类图,然后将完整的图拖动到“«透视图»概览”程序包中以完成该模型。

创建 Account 类

account 类代表 PiggyBank 用户帐户。account 类描述与 account 类相关联的功能任务,例如,getBalance 和 findForCustomer。

要对 Account 类进行建模:
  1. 在选用板中,双击“”并且将类命名为 Account
  2. 在图编辑器中,单击 Account 类,并在“属性”视图中的“构造型”页上,单击“添加构造型”。
  3. 在“应用构造型”窗口中,选择“实体”复选框,然后单击“确定”。
  4. 在图编辑器中,右键单击 Account 类;然后单击“添加 UML > 属性”,并将属性命名为“余额”。
  5. 在图编辑器中,在 Account 类中,单击“余额”属性,并在“属性”视图中的“常规”页上,单击“选择类型”。
  6. 在“选择元素”窗口中,展开 UML2,单击 Integer 并单击“确定”。
  7. 在图编辑器中,右键单击 Account 类;然后单击“添加 UML > 属性”,并将属性命名为“编号”。
  8. 在图编辑器中,在 Account 类中,单击“编号”属性。
  9. 在“属性”视图中的“常规”页面上,单击“选择类型
  10. 在“选择元素”窗口中,展开 UML2,单击 String 并单击“确定”。
您已经对 Account 类进行了建模。
注意:“分析模型”模板包含使用 RUP 分析元素构造型处理过的空类。您可以将分析元素复制到功能区域中并重命名它们,而无需创建新类和对它们应用构造型。要使用现有的 RUP 分析元素,请在“模型浏览器”视图的“«模型库»构建块”程序包中,右键单击分析元素;然后单击“复制”。右键单击您的功能区域;然后单击“粘贴”。

创建 Transfer 类

Transfer 类描述当客户在两个帐户之间划拨款项时发生的交易。Transfer 类与 Account 类有两个关联。

要对 Transfer 类进行建模:
  1. 在选用板中,双击“”,并将类命名为 Transfer
  2. 在图编辑器中,单击 Transfer 类,然后在“属性”视图中的“构造型”页中,单击“添加构造型”。
  3. 在“应用构造型”窗口中,选择“实体”复选框,然后单击“确定”。
  4. 在图编辑器中,右键单击 Transfer 类;然后单击“添加 UML > 属性”,并将属性命名为“金额”。
  5. 在图编辑器中,在 Transfer 类中,单击“金额”属性。
  6. 在“属性”视图的“常规”页上,单击“选择类型”。
  7. 在“选择元素”窗口中,展开 UML2,单击 Integer,并单击“确定”。

您已经对 Transfer 类进行了建模。

对 Transfer-Account 关系进行建模

Transfer 类依赖于 Account 类。

要对 Transfer-Account 关系进行建模:
  1. 在选用板的“依赖关系”旁边,单击向下箭头并单击“用途”。
  2. 在图编辑器中,将光标置于 Transfer 类的上面并将它拖动到 Account 类中。

您已经对 Transfer 类的关系进行了建模。您的图看上去应该与下图相似:

Account 和 Transfer 关系。

创建 Check 类

Check 类描述在 PiggyBank 兑现的支票。

要对 Check 类进行建模:
  1. 在选用板中,双击“”,并将类命名为 Check
  2. 在图编辑器中,单击 Check 类。
  3. 在“属性”视图的“构造型”页上,单击“添加构造型”。
  4. 在“应用构造型”窗口中,选择“实体”复选框,然后单击“确定”。
  5. 在图编辑器中,右键单击 Check 类;然后单击“添加 UML > 属性”,并将属性命名为“金额”。
  6. 在图编辑器中,在 Check 类中,单击“金额”属性。
  7. 在“属性”视图中的“常规”页上,单击“选择类型”。
  8. 在“选择元素”窗口中,展开 UML2;单击 Integer,并单击“确定”。
  9. 在图编辑器中,在 Check 类中,单击“金额”属性。
  10. 在“属性”视图中的“常规”页上,在“可视性”的旁边,单击“公共”。
  11. 在图编辑器中,右键单击 Check 类;然后单击“添加 UML > 属性”,并将属性命名为“引用”。
  12. 在图编辑器中,在 Check 类中,单击“引用”属性。
  13. 在“属性”视图中的“常规”页上,单击“选择类型”。
  14. 在“选择元素”窗口中,展开 UML2,单击 String 并单击“确定”。
  15. 在图编辑器中,在 Check 类中,单击“引用”属性。
  16. 在“属性”视图中的“常规”页上,在“可视性”的旁边,单击“公共”。

您已经对 Check 类进行了建模。您的图看上去应该与下图相似:

显示两个属性的 check 类:金额和引用。

对 Check-Account 关系进行建模

Check 类依赖于 Account 类。

要对 Check-Account 关系进行建模:
  1. 在选用板中,单击“用途”。
  2. 在图编辑器中,将光标置于 Check 类上并将它拖动到 Account 类中。

您已经对 Check 类的关系进行了建模。

创建 Customer 类

Customer 类描述 PiggyBank 客户。

要对 Customer 类进行建模:
  1. 在选用板中,双击“”并且将类命名为 Customer
  2. 在图编辑器中,单击 Customer 类。
  3. 在“属性”视图的“构造型”页上,单击“添加构造型”。
  4. 在“应用构造型”窗口中,选择“实体”复选框,然后单击“确定”。
  5. 在图编辑器中,右键单击 Customer 类;然后单击“添加 UML > 属性”,并将属性命名为 loginId
  6. 在图编辑器中,在 Customer 类中,单击 loginId 属性。
  7. 在“属性”视图中的“常规”页上,单击“选择类型”。
  8. 在“选择元素”窗口中,展开 UML2,单击 String 并单击“确定”。
  9. 在图编辑器中,在 Check 类中,单击 loginId 属性。
  10. 在“属性”视图中的“常规”页上,在“可视性”的旁边,单击“公共”。
  11. 在图编辑器中,右键单击 Check 类;然后单击“添加 UML > 属性”,并将属性命名为“名称”。
  12. 在图编辑器中,在 Check 类中,单击“名称”属性。
  13. 在“属性”视图中的“常规”页上,单击“选择类型”。
  14. 在“选择元素”窗口中,展开 UML2,单击 String,并单击“确定”。
  15. 在图编辑器中,在 Check 类中,单击“名称”属性。
  16. 在“属性”视图中的“常规”页上,在“可视性”的旁边,单击“公共”。

您已经对 Customer 类进行了建模。

对 Account-Customer 关系进行建模

Account 类依赖于 Customer 类。

要对 Account-Customer 关系进行建模:
  1. 在选用板中,单击“用途”。
  2. 在图编辑器中,将光标置于 Account 类上并将它拖动到 Customer 类中。

您已经对 Customer 类的关系进行了建模。您还完成了领域图的基本轮廓。您的图看上去应该与下图相似:

PiggyBank 领域图的基本轮廓。

该图通过描述系统主类的结构和它们之间存在的关系,来对系统的基本领域进行建模。例如,一个客户(用唯一的登录标识和姓名标识)可以拥有多个帐户,但一个帐户不能属于多个客户。

创建领域模型概览图

现在,您将在“«透视图»概览”程序包中创建 PiggyBank 领域模型图。这是提供概览和导航信息的图的最终版本。

要创建 PiggyBank 领域概览图:
  1. 在“模型浏览器”视图中,依次展开“分析模型”和“«透视图»概览”,右键单击“${project} 领域模型”;然后单击“查找/替换”。
  2. 在“查找内容”字段中,输入 ${project} 并单击“替换”。
  3. 在“替换为”字段中,输入 PiggyBank 并单击“确定”。
  4. 双击“PiggyBank 领域模型”图。
  5. 在“模型浏览器”视图中,依次展开“帐户操作”和“帐户操作分析元素”。
  6. 在“模型浏览器”视图中,单击“客户”分析元素并将它拖动到图中。
  7. 在“模型浏览器”视图中,单击“帐户”分析元素并将它拖动到图中。
  8. 在“模型浏览器”视图中,单击“划拨”分析元素并将它拖动到图中。
  9. 在“模型浏览器”视图中,单击“支票”分析元素并将它拖动到图中。

您已经在“«透视图» 概览”程序包中创建了 PiggyBank 领域模型图。这是您的图的最终版本。您可以使用“帐户操作分析类”图作为简单的工作区来创建用例参与者图。

使用条款 | 反馈
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.