用例建模-银行系统(三)

一.背景

用例建模-银行系统(三)_第1张图片

二.用例分析

用例建模-银行系统(三)_第2张图片

用户“取款“、”查询账户“、”“转账都使用了统一用例-验证PIN码。

三.实体

用例建模-银行系统(三)_第3张图片

四.确定类

4.1 确定ATM客户端类

 

用例建模-银行系统(三)_第4张图片

4.2 确定ATM服务端类

 

用例建模-银行系统(三)_第5张图片

五.动态建模

       在以往的开发中会遇到很多问题,在相关的技术文档中明确用例图实体之后就急着画类图以及调用关系,但其实在实际中类和类之间的关系是靠类的实例化对象来实现的。所以使用动态建模来描述每个用例的对象之间的交互是必要的,满足每个用例需要的对象间消息通信序列可以使用通信图来描述。

5.1 ATM客户端建模

用例建模-银行系统(三)_第6张图片

  • 1:“ATM客户”参与者将ATM卡插入“读卡器”。“读卡器接口”对象读取卡中信息。
  • 1.1:“读卡器接口”将ATM卡输入数据(卡号、生效日期、失效日期)发送给“ATM卡“实体对象。
  • 1.2:”读卡器接口“将”卡片插入“的消息发送给”ATM控制“对象。”卡片插入“事件使得”ATM控制”状态图从空闲状态转移到等待状态。
  • 1.3:“ATM控制”将“获取PIN码”信息发送给“客户交互”对象。
  • 1.4:“客户交互”对象将“PIN码提示”显示给“ATM客户”参与者。
  • 2:“ATM客户”向“客户交互”对象提供卡数据。
  • 2.1:“客户交互“对象向”ATM卡“请求卡数据。
  • 2.2:”ATM“向”客户交互对象提供卡数据。、
  • 2.3:”客户交互“向”ATM交易“实体对象发送”卡号“、”PIN码“、”生效日期“和”失效日期“。
  • 2.4:”ATM交易“实体向”客户交互“发送”PIN码验证交易“。
  • 2.5:”客户交互对象向”ATM控制“发送”PIN码已输入“的信息。这条信息使得”ATM控制“状态图从”等待PIN码状态“转移到“验证PIN码”状态。
  • 2.6:“ATM控制”向“银行服务”发送一个“验证PIN码”的请求。
  • 2.7:“银行服务“验证PIN并向”ATM控制“发送”有效PIN码“的响应。然后。”ATM控制“转移到”等待客户选择“状态。
  • 2.8:”ATM控制“对象向”客户交互“对象发送”显示菜单“消息。
  • 2.8a:”ATM控制“对象向”ATM交易“对象发送”更新状态“消息。
  • 2.9:”客户交互向“ATM客户”显示包含“取款”、“查询”和“转账”选项菜单。”

5.2 ATM服务端建模

用例建模-银行系统(三)_第7张图片

 

      “银行交易协调者”对象从“ATM客户端”以先进先出的方式处理消息队列。对每条信息,交易协调者确定交易类型,然后委托相应的交易管理者处理消息;当交易结束,交易管理者会向“交易协调者”发送响应信息,然后“交易管理者“向”ATM客户端”发送响应消息。

     客户端有多个实例,然而服务子系统只有一个实例。因此每个ATM客户端实例在ATM结点上运行,“银行服务”实例在服务器结点上运行。

你可能感兴趣的:(方法论)