再学UML-深入浅出UML类图(五)

实例分析3——售票机控制程序

      某运输公司决定为新的售票机开发车票销售的控制软件。图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/article/details/7843437

 

posted @ 2017-11-11 16:25  纯新手  阅读(1025)  评论(0编辑  收藏  举报