深入浅出UML类图(五)
某运输公司决定为新的售票机开发车票销售的控制软件。图I给出了售票机的面板示意图以及相关的控制部件。
图I 售票机面板示意图
售票机相关部件的作用如下所述:
(1) 目的地键盘用来输入行程目的地的代码(例如,200表示总站)。
(2) 乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。
(3) 继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多张票。
(4) 显示屏显示所有的系统输出和用户提示信息。
(5) 插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。
(6) 打印机用于输出车票。
(7) 所有部件均可实现自检并恢复到初始状态。
现采用面向对象方法开发该系统,使用UML进行建模,绘制该系统的初始类图。
参考解决方案:
参考类图如下:
类说明:
类 名
说 明
Component
抽象部件类,所有部件类的父类
Keyboard
抽象键盘类
ActionKeyboard
继续/取消键盘类
TicketKindKeyboard
车票种类键盘类
DestinationKeyboard
目的地键盘类
Screen
显示屏类
CardDriver
卡驱动器类
CashSlot
现金(硬币/纸币)槽类
Printer
打印机类
TicketSoldSystem
售票系统类
方法说明:
方法名
说 明
Component 的init()方法
初始化部件
Component 的doSeltTest()方法
自检
Keyboard的getSelectedKey()方法
获取按键值
ActionKeyboard的getAction()方法
继续/取消键盘事件处理
TicketKindKeyboard的getTicketKind()方法
车票种类键盘事件处理
DestinationKeyboard的getDestinationCode()方法
目的地键盘事件处理
Screen的showText()方法
显示信息
CardDriver的getCredit()方法
获取金额
CardDriver的debitFare()方法
更新卡余额
CardDriver的ejectMCard()方法
退卡
CashSlot的getCredit()方法
获取金额
Printer的printTicket()方法
打印车票
Printer的ejectTicket()方法
出票
TicketSoldSystem的verifyCredit()方法
验证金额
TicketSoldSystem的calculateFare()方法
计算费用
【作者:刘伟 http://blog.csdn.net/lovelion】