练习 2.8:创建“划拨款项”序列图

您在此练习中创建“划拨款项”序列图。“划拨款项”序列图显示功能任务的工作流程。

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

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

建模是一个反复的过程。在任何时候,只要发现系统的细节,就可以修改您的序列图。您将在此教程中创建完整的“划拨款项”序列图。

创建“划拨款项”序列图和生命线

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

要创建序列图和生命线:
  1. 在“模型浏览器”视图中,展开“帐户操作”,再展开“«用例实现»划拨款项”,接着展开“«用例实现»划拨款项 - 基本流程”并且双击“«用例实现»划拨款项 - 基本流程”图。
  2. 在“模型浏览器”视图中,展开“用例模型”,然后在“帐户操作”程序包中,单击 Customer 参与者,并将它拖动到该图中。
  3. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 MenuForm 类并将它拖动到 Customer 生命线的右边。
  4. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 TransferMenuForm 类并将它拖动到 MenuForm 生命线的右边。
  5. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 TransferMoneySummaryForm 类并将它拖动到 TransferMenuForm 生命线的右边。
  6. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 TransferMoneyControl 类并将它拖动到 TransferMoneySummaryForm 生命线的右边。
  7. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 Account 类并将它拖动到 TransferMoneySummaryForm 生命线的右边。
  8. 单击 Account 生命线并且在“属性”视图的“常规”页上将生命线命名为 debit
  9. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 Account 类并将它拖动到 debit:Account 生命线的右边。
  10. 单击 Account 生命线,并在“属性”视图的“常规”页上,将生命线命名为 credit
  11. 在“模型浏览器”视图的“帐户操作分析元素”程序包中,单击 Transfer 类并将它拖动到 credit:Account 生命线的右边。

您已经创建了“划拨款项”序列图的生命线。生命线代表您在“划拨款项”参与者图中确定的参与者。生命线按顺序组织,并且按照主要的消息启动类位于图左侧的方式进行排列。注意:Account 参与者在图中出现两次。一个 Account 生命线代表正在借记的帐户,另一个 Account 生命线代表正在贷记的帐户。

对消息流程进行建模

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

要创建“选择‘划拨款项’”消息:
  1. 在选用板中,单击“异步消息”。
  2. 在图编辑器中,单击 Customer 生命线并将它拖动到 MenuForm 生命线。
  3. 在图编辑器中的任何地方单击。
  4. 在“输入操作名称”窗口中,将消息命名为“选择‘划拨款项’”。
您对“划拨款项”菜单项进行了建模(该菜单项与对 MenuForm 类的“选择‘划拨款项’”操作相对应)。当创建消息后,提示过您从“创建新操作”列表中选择选项。当您输入了“选择‘划拨款项’”后,您向 MenuForm 类添加了一个新的操作。

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

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

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

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

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

要创建 «create»\CalledOperation\ 消息:
  1. 在选用板的“异步消息”旁,单击向下箭头并单击“创建消息”。
  2. 在图编辑器中,单击 TransferMoneyControl 生命线并将它拖动到 Transfer 生命线。

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

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

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

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

您已经对“划拨款项”序列图进行了建模。该图显示当用户在主菜单上单击“划拨款项”时发生的步骤顺序。当客户单击“划拨款项”时,屏幕上会显示一个表单。然后客户填写表单。表单数据会发送到 TransferMoneyController 类,该类会将一个带有提款交易信息的消息发送到 debit:Account 类。然后 TransferMoney 类将存款交易信息发送到 credit:Account 类。TransferMoneyController 类会创建“划拨”对象并将借记、贷记和数量信息传递给它,以便它能够执行该交易。然后消息显示给用户。您的图看上去应该与下图相似:

“划拨款项”序列图。

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

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

要继续,请进入练习 2.9:创建“兑现支票”参与者图

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