练习 2.10:创建“兑现支票”序列图

您在此练习中创建“兑现支票”序列图。“兑现支票”序列图显示“兑现支票”功能任务的工作流程。

“兑现支票”参与者图对“兑现支票”功能任务中类的结构进行建模。该图还显示了每个类之间的关系;但它不描述该功能任务的工作流程。用例实现使用序列图来描述此静态信息。

“兑现支票”序列图显示用户在主菜单上单击“兑现支票”时发生的步骤。该图将用例参与者作为生命线进行建模,并将数据流程作为消息进行建模,以指示用例的工作流程。当在序列图中对用例的工作流程进行建模时,您会发现每个类中存在的操作。随着您在“兑现支票”序列图中发现和创建操作,您可以完成“兑现支票”参与者图。

对系统进行建模是一个反复的过程。在任何时候,只要发现系统的细节,就可以修改您的序列图。您在本教程中创建完整的“兑现支票”序列图。

创建“兑现支票”序列图和生命线

在对工作流程进行建模前,您必须先对序列图的生命线进行建模。用例参与者构成了序列图的生命线。

要创建序列图和生命线:
  1. 在“模型浏览器”视图中,依次展开“帐户操作”、“«用例实现»划拨款项”和“«用例实现»兑现支票 - 基本流程”,双击“«用例实现»兑现支票 - 基本流程”图。
  2. 在“模型浏览器”视图中,依次展开“用例模型”和“帐户操作”,单击“出纳员”参与者,并将它拖动到图中。
  3. 在“模型浏览器”视图中,展开“帐户操作分析元素”,单击 MenuForm 类,并将它拖动到 Teller 生命线的右边。
  4. 在“模型浏览器”视图的“分析模型”中,在“帐户操作分析元素”程序包中,单击 CashCheckForm 类,并将它拖动到 MenuForm 生命线的右边。
  5. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 CashCheckSummaryForm 类,并将它拖动到 CashCheckForm 生命线的右边。
  6. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 CashCheckControl 类,并将它拖动到 CashCheckSummaryForm 生命线的右边。
  7. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 Account 类,并将它拖动到 CashCheckControl 生命线的右边。
  8. 单击 Account 生命线,并在“属性”视图的“常规”页上,将生命线命名为 credit
  9. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 CityBank 类,并将它拖动到 Account 生命线的右边。
  10. 在“模型浏览器”视图中,依次展开“用例模型”和“帐户操作”,单击 CityBank 参与者,并将它拖动到 Account 生命线的右边。

您已经创建了“兑现支票”序列图的生命线。生命线代表您在“兑现支票”参与者图中确定的参与者。生命线按顺序组织,并且按照主要的消息启动类位于图左侧的方式进行排列。有两条 CityBank 生命线。第一条 CityBank 生命线代表用于验证 PiggyBank 交易的 CityBank 银行系统。第二条 CityBank 生命线(它引用您在用例图中创建的 CityBank 参与者)代表 CityBank 机构。

对消息流程进行建模

此练习对序列图中的消息流程进行建模。序列图中的消息指示系统中类之间的数据流程。

要创建“选择‘兑现支票’”消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 Teller 生命线,并将它拖动到 MenuForm 生存线。
  3. 在图编辑器中的任何地方单击。
  4. 在“输入操作名称”窗口中,将消息命名为“选择‘兑现支票’”。

要创建“显示”消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 MenuForm 生命线,并将它拖动到 CashCheckForm 生命线。
  3. 在“输入操作名称”窗口中,将消息命名为“显示”。

要创建“填写并提交”消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 Teller 生命线,并将它拖动到 CashCheckForm 生命线。
  3. 在“属性”视图的“常规”页上,将消息命名为“填写并提交”。

要创建 cashCheck 消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CashCheckForm 生命线,并将它拖动到 CashCheckControl 生命线。
  3. 在“输入操作名称”窗口中,将消息命名为 cashCheck

要创建 findForCustomer 消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CashCheckControl 生命线,并将它拖动到 credit:Account 生命线。
  3. 在图编辑器中的任何地方单击。
  4. 在“输入操作名称”窗口中,将消息命名为 findForCustomer

要创建 cashCheck 消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CashCheckControl 生命线,并将它拖动到 CityBank 生命线。
  3. 在图编辑器中的任何地方单击。
  4. 在“输入操作名称”窗口中,将消息命名为 cashCheck

要创建 cashCheck 消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CityBank 生命线,并将它拖动到 CityBank 参与者生命线。
  3. 在“输入操作名称”窗口中,将消息命名为 cashCheck ( checkReference, amount )

要创建 deposit 消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CashCheckControl 生命线,并将它拖动到 credit:Account 生命线。
  3. 在图编辑器中的任何地方单击。
  4. 在“输入操作名称”窗口中,将消息命名为 deposit ( amount )

要创建“显示”消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 CashCheckControl 生命线,并将它拖动到 CashCheckSummaryForm 生命线。
  3. 在“输入操作名称”窗口中,将消息命名为“显示”。

您已经对“兑现支票”序列图进行了建模。该图显示当用户在主菜单上单击“兑现支票”时发生的步骤顺序。当出纳员单击“兑现支票”时,会发送一条消息给 CashCheckForm 类,而该类会在屏幕上显示一个表单。出纳员填写该表单,然后该表单被发送给 CashCheckControl 类进行处理。CashCheckControl 类搜索帐户,然后向 CityBank 发送一条包含交易信息的消息。接着,CityBank 兑现支票。CashCheckControl 类调用 credit:Account 类的 deposit 方法并在 PiggyBank 帐户中兑现支票。然后消息显示给用户。您的图看上去应该与下图相似:

“兑现支票”序列图。

“兑现支票”序列图完成“兑现支票”用例实现。您已经对“兑现支票”功能任务的静态和动态信息进行了建模。如果打开“兑现支票”参与者图,该图包含您在序列图中作为消息创建的操作。“兑现支票”参与者图看上去应该与下图相似:

“兑现支票”参与者图。
注意:由于“兑现支票”序列图只包含一个数据流程,因此您可以从“模型浏览器”视图中删除“«用例实现»兑现支票 - 备用流程 n”程序包。此程序包包含在模板中,但不是需要的。要删除该程序包,请在“模型浏览器”视图中,右键单击“«用例实现»兑现支票 - 备用流程 n ”程序包;然后单击“从模型中删除”。

要继续,请进入练习 2.11:记录分析类

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