11.4.2 创建ATM的CRC卡
CRC(Class-Responsibility-Collaborator)卡建模是一种简单且有效的面向对象的分析技术。在一个实时系统开发项目中,包括用户、系统分析员和开发者,在建模和设计过程中,经常应用CRC卡建模,使整个开发团队普遍的理解形成一致。CRC卡由类(Class)、职责(Responsibility)和协作(Collaborator)3部分组成。
类代表许多类似的对象。而对象是系统模型化中关注的事物。对象可以是人、地方、事情或任何对系统有影响的概念。类名一般列在CRC卡的顶部。
职责是类需要知道或需要做的任何事物。这些职责是类自身所具备的知识,或类在执行时所需要的知识。
协作是指为获取消息或协助执行活动的其他类。在特定情形下,与指定的类按一个设想共同完成同一个(或许多)步骤。协作的类名在CRC卡的右边排列。
在此,主要为以下Capsule和类定义CRC卡。
ATM CRC卡:如表11-2所示,它是ATM自动取款机的顶层类,用于实现ATM操作的业务逻辑。
表11-2 ATM CRC卡
|
ATM | |
|
当开关打开时,启动系统 当开关关闭时,关闭系统 当顾客插入信用卡时,开始一个新的会话 提供对Session和Transaction构件的访问能力 |
OperatorPanel CashDispenser NetworkToBank CustomerConsole Session |
CardReader CRC卡:如表11-3所示,用于读取现金卡的信息。
表11-3 CardReader CRC卡
|
CardReader | |
|
告诉ATM信用卡什么时候插入的 从卡上读取信息 弹出信用卡 保存信用卡 |
ATM Card |
CashDispenser CRC卡:如表11-4所示,该类用于处理弹出现金操作的业务逻辑。
表11-4 CashDispenser CRC卡
|
CashDispenser | |
|
跟踪信用卡,采用初始金额进行初始化 报告是否有足够的金额 吐钱 |
Log |
CustomerConsole CRC卡:如表11-5所示,该类用于支持用户控制台操作。
表11-5 CustomerConsole CRC卡
|
CustomerConsole | |
|
显示消息 显示提示信息,从键盘接收口令 显示提示信息和菜单,从键盘接收一个选项 显示提示信息,从键盘接收输入的金额数量 对用户按下的取消键作出响应 |
无 |
EnvelopeAcceptor CRC卡:如表11-6所示,该类用于处理现金接收器的业务逻辑。
表11-6 EnvelopeAcceptor CRC卡
|
EnvelopeAcceptor | |
|
从顾客接收现金 |
Log |
Log CRC卡:如表11-7所示,用于记录操作日值。
表11-7 Log CRC卡
|
Log | |
|
记录发送到银行的消息 记录从银行接收到的消息 记录吐的现金数 记录从顾客接收的现金数 |
无 |
NetworkToBank CRC卡:如表11-8所示,用于支持ATM同银行的连接。
表11-8 NetworkToBank CRC卡
|
NetworkToBank | |
|
在ATM机启动时初始化同银行的连接 向银行发送消息,等待响应 在系统关闭时终止同银行的连接 |
Message Log Balances Status |
OperatorPanel CRC卡:如表11-9所示,用于处理操作面板的业务逻辑。
表11-9 OperatorPanel CRC卡
|
OperatorPanel | |
|
通知ATM将状态修改为开关状态 允许操作员定义初始现金的数量 |
ATM |
ReceiptPrinter CRC卡:如表11-10所示,用于支持收据打印。
表11-10 ReceiptPrinter CRC卡
|
ReceiptPrinter | |
|
打印收据 |
Receipt |
Session CRC卡:如表11-11所示,用于支持用户会话的业务逻辑。
表11-11 Session CRC卡
|
Session | |
|
执行会话用例 如果顾客重新输入口令,则更新口令值 |
ATM CardReader Card CustomerConsole Transaction |
Transaction CRC卡:如表11-12所示,用于支持用户事务操作的业务逻辑。
表11-12 Transaction CRC卡
|
Transaction | |
|
允许顾客选择事务类型 执行事务用例 执行非法口令扩展用例 |
ATM CustomerConsole Withdrawal Deposit Transfer Inquiry ATM CustomerConsole Withdrawal Deposit Transfer Inquiry Message NetworkToBank Receipt ReceiptPrinter CustomerConsole Session CardReader |
Withdrawal CRC卡:如表11-13所示,用于处理用户取款事务的业务逻辑。
表11-13 Withdrawal CRC卡
|
Withdrawal | |
|
执行取款事务用例相关操作 |
CustomerConsole CashDispenser Message Receipt |
Deposit CRC卡:如表11-14所示,用于处理用户存款事务的业务逻辑。
表11-14 Deposit CRC卡
|
Deposit | |
|
执行存款事务用例相关操作 |
CustomerConsole Message EnvelopeAcceptor Receipt |
Transfer CRC卡:如表11-15所示,用于处理用户转账的业务逻辑。
表11-15 Transfer CRC卡
|
Transfer | |
|
执行转账事务用例相关操作 |
CustomerConsole Message Receipt |
Inquiry CRC卡:如表11-16所示,用于执行账户查询的业务逻辑。
表11-16 Inquiry CRC卡
|
Inquiry | |
|
执行查询事务用例相关操作 |
CustomerConsole Message Receipt |
Balances CRC卡:如表11-17所示,用于存储账户信息的类。
表11-17 Balances CRC卡
|
Balances | |
|
表示银行返回的账户余额信息 |
无 |
Card CRC卡:如表11-18所示,用于处理现金卡信息的类。
表11-18 Card CRC卡
|
Card | |
|
表示顾客ATM卡的编码信息 |
无 |
Message CRC卡:如表11-19所示,用于处理操作消息的类。
表11-19 Message CRC卡
|
Message | |
|
表示在网络上发送到银行的信息 |
无 |
Receipt CRC卡:如表11-20所示,用于处理收据的类。
表11-20 Receipt CRC卡
|
Receipt | |
|
表示在收据上打印的信息 |
无 |
Status CRC卡:如表11-21所示,用于处理事务状态的类。
表11-21 Status CRC卡
|
Status | |
|
表示银行返回的事务状态信息 |
无 |
| 回书目 上一节 下一节 |
|
· 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. · 2008年5月24日软考试题.. |
· 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. · Linux结课考试自测获奖.. |
|
||||
| · 微软出价446亿美元收购.. · 技术人求职简历完备手册 · 开源虚拟化技术Xen · Windows Server 2008专.. · 隐私保护技术探讨 · 绿色IT人健康生存手册 · 网络工程师职业规划与.. · 杀毒软件评测专题 |
· 访问控制列表(ACL)介绍 · Vista SP1对决XP SP3 · 华为员工自杀频频拷问.. · 2008中国互联网大会 · 勇闯IT培训黑色围城 · CISSP认证成长之路 · 解析35岁技术人的价值.. · LAMP技术精解 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 |
· PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. · 访问控制列表(ACL)介绍 · 反垃圾邮件技术应用 · ASP.NET 2.0基础开发指.. |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · 三层交换技术专题 · Apache技术专题 · 企业数据恢复指南 · 路由器设置与口令恢复 |
· SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 · 专题:AIX操作系统管理.. · 交换机故障解决指南 · 三层交换技术专题 |
|||