用例图序列图练习题(自动存提款机模拟系统(ATM System))

15 篇文章 1 订阅
11 篇文章 7 订阅

某银行计划开发一个自动存提款机模拟系统(ATM System)。系统通过读卡器(CardReader)读取ATM卡;系统与客户(Customer)的交互由客户控制台(Customer-Console)实现;银行操作员(Operator)可控制系统的启动(System Startup)和停止(System Shutdown);系统通过网络和银行系统(Bank)实现通信。
当读卡器判断用户已将ATM卡插入后,创建会话(Session)。会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。系统将卡号和个人验证码信息送到银行系统进行验证。验证通过后,客户可从菜单选择如下事务(Transaction):

  1. 从ATM卡账户取款(Withdraw);
  2. 向ATM卡账户存款(Deposit):
  3. 进行转账(Transfer);
  4. 查询(Inquire)ATM卡账户信息。
    一次会话可以包含多个事务,每个事务处理也会将卡号和个人验证码信息送到银行系统进行验证。若个人验证码错误,则转个人验证码错误处理(Invalid PIN Process)。每个事务完成后,客户可选择继续上述事务或退卡。选择退卡时,系统弹出ATM卡,会话结束。
    系统采用面向对象方法开发,使用UML进行建模。系统的顶层用例图如附件图3-1所示,一次会话的序列图(不考虑验证)如图3-2所示。

在这里插入图片描述在这里插入图片描述
【问题1】
根据【说明】中的描述,给出图3-1中A1和A2所对应的参与者,U1至U3所对应的用例,以及该图中空(1)所对应的关系。(U1至U3的可选用例包括:Session、Transaction, Insert Card、Invalid PIN Process 和 Transfer)
【问题2】
根据【说明】中的描述,使用消息名称列表中的英文名称,给出图3-2中6〜9对应的消息。
在这里插入图片描述
【问题3】
解释图3-1中用例U3和用例Withdraw、Deposit等四个用例之间的关系及其内涵。

答案:
【问题1】
A1:Customer A2:Bank U1:Session
U2:Invalid PIN Process U3:Transaction
(1)< < extend > >
【问题2】
6:read PIN()
7:PIN
8:create(atm,this,card,pin)
9:perform Transaction
【问题3】
Transaction是一个抽象泛化用例,具有其他事务类型共有的属性和行为,每个具体的事务类型继承它,并实现适合自己的特定的操作。
解析:
【问题1】
构建用例图时,常用的方式是先识别参与者,然后确定用例以及用例之间的关系。
识别参与者时,考查和系统交互的人员和外部系统。本题中,与系统交互的人员包括客户(Customer)和银行操作员(Operator),与本模拟系统交互的外部系统包括银行系统(Bank)。
考查用例时,通过判断哪一个特定参与者发起或者触发了与系统的哪些交互,来识别用例并建立和参与者之间的关联。考查用例之间的关系时,< < include >>(包含)定义了用例之间的包含关系,用于一个用例包含另一个用例的行为的建模;如果可以从一个用例的执行中,在需要时转向执行另一个用例,执行完返回之前的用例继续执行,用例间即存在< < extend > >关系。
本题中,客户一旦插卡成功,系统就创建会话(Session),会话中可以执行用户从菜单选择的Withdraw、Deposit 、Transfer 和Inquire 等事务(Transaction)。由图中U3和Withdraw 之间的扩展关系,可知U3为Transaction;又由U1和U3之间的< < include>>关系,得知U1为Session, 进而判定图中A1为Customer,A2为Bank。每个事务处理也会将卡号和个人验证码信息送到银行系统进行验证,若个人验证码错误,则转个人验证码错误处理(Invalid PIN Process,图中U2),所以(1)处应填< < extend> >
【问题2】
序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。构造序列图时遵循如下指导原则:确定顺序图的范围,描述这个用例场景或一个步骤;绘制参与者和接口类,如果范围包括这些内容的话:沿左手边列出用例步骤;对控制器类及必须在顺序中协作的每个实体类,基于它拥有的属性或已经分配给它的行为绘制框;为持续类和系统类绘制框;绘制所需消息,并把每条消息指到将实现响应消息的责任的类上;添加活动条指示每个对象实例的生命期;为清晰起见,添加所需的返回消息;如果需要,为循环、可选步骤和替代步骤等添加框架。
本题中, 根据说明中的描述,从ATM机判断卡已插入(card Inserted())开始会话, 即为当前ATM创建会话(create(this))并开始执行会话(perform Session() ;读卡器读卡(read Card())获得ATM卡信息(card),然后从控制台读取个人验证码输入(read PIN(), 图中标号6处)并获得个人验证码信息(PIN,图中标号7处):然后根据用户选择启动并执行事务,即为当前会话创建事务(creat(atm,this, card, pin), 图中标号8处)和执行事务(perform Transaction(), 图中标号9处):可以选择继续执行某个事务(do Again)循环, 或者选择退卡(ejectCard())。
【问题3】
用例之间的继承关系表示子类型“是一种”父类型。其中父类型通常是一个抽象泛化用例,具有子类型共有的属性和行为,每个具体的子类型继承它,并实现适合自己的特定的操作。
本题中Transaction和Withdraw、Deposit 等四个用例之间的关系即为继承关系,Transaction 即是一个抽象泛化用例,具有其他事务类型共有的属性和行为,每个具体的事务类型继承它,并实现适合自己的特定的操作。

  • 11
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值