实验2 对象模型建模
一、实验目的
1.熟悉对象模型建模方法;
2.掌握使用StarUML绘制类图的方法;
3.掌握类的描述方法。
二、实验内容
按照以下ATM系统的描述,对其进行对象模型建模。
ATM系统是一个复杂的软件控制硬件的系统,各功能模块协调工作。以具体业务为出发点对它进行建模,一个功能齐全的ATM系统包含以下几个模块:
(1)读卡机模块: 客户银行卡插入读卡机,读卡机识别卡在显示器提示输入密码。
(2)键盘输入模块: 客户通过键盘输入密码与取款金额,选择要进行的业务。
(3)IC认证模块: 基于安全性,鉴别卡的真伪。
(4)显示模块: 显示一切与客户有关信息,包括交互提示、确认等信息。
(5)吐钱机模块: 照客户需求选择合适面值钞票给客户。
(6)打印报表模块: 客户可自由选择打印或不打印凭条(卡号、金额、日期等信息)。
(7)监视器模块: 设置摄像头以防意外事件,保证交易安全性,银行有权调看记录。
三、实验要求
1.绘制ATM系统的类图,并保存为StarUML文件。
2.按照规范要求描述对象模型建模过程。
四、实验过程
1、 寻找分析类(列出所有候选类)
通过以上对ATM系统的描述,读卡机模块的功能是识别客户的银行卡信息,通过查询资料,读卡机读取银行卡号后,通过查询数据库,识别银行卡的类型以及所属银行等信息,然后输出信息。因而,在ATM系统中存在读卡机和数据库连接两类。客户和银行职员为主要参与者,显然他们是本系统的两个类。客户通过从键盘输入信息选择交易类型,因此,可加入键盘类。在显示模块中,屏幕向客户输出相关信息,通过与客户的信息交互,保证业务的正常进行,可以将屏幕作为一个类。吐钱机模块中,取款存款是系统的主要业务,所以可以加入取款机类,保证客户服务的完整进行。打印报表模块不是必要流程,所以,我认为可以不加人类图分析。监视器模块和客户的操作没有联系,因而,不考虑此模块。
综上所述,在ATM 系统中我们可以得出以下7个类,分别是:
①Account(客户类)
②Worker(银行职员类)
③Database Connector(数据库连接类)
④Screen(屏幕类)
⑤Keyboard(键盘类)
⑥Cardreader(读卡机类)
⑦Cashdispenser(取款机类)
2、 确定类之间的关系(画出初始类图,不需要绘制类的属性和操作)
客户和银行职员通过调用和使用数据库完成相关的服务,可见客户类与数据库连接类和银行职员类与数据库连接类之间都是使用依赖关系。客户通过各种操作实现对之间账户信息的访问,屏幕类、读卡机类、取款机类作为源对象访问客户类,客户类为目标对象。相同地,客户在键盘输入信息,键盘作为源对象访问屏幕。从而得到系统各个类的关系如下图:
ATM系统初始类图:
3、 确定类的属性和操作(给出完成的类图,包括每个类的属性和操作)
ATM系统最终类图:
4、 类的详细说明
(1)Account类的详细说明
五、实验结果分析
此次ATM系统对象模型建模,成功找出系统中基本类,以及它们之间的简单关系。实验结果不足的地方在于将客户类与其他类之间的关系分析得比较清晰,而忽略了银行职员类与其他类之间的关系,以及在确定类与类之间关系的过程中不是很清晰,不够确定。希望在以后的建模过程中重点分析类与类的关系,通过更多的例子进行练习,加深自己对对象建模的理解。
六、实验总结
这次建模实验遇到的主要问题有:在分析类的过程中,由于缺乏对ATM系统工作的理解,无法从上述模块抽象出系统中存在的基本类;对于类与类之间的关系的确定不够清晰。我通过查询相关资料,对ATM系统的后台运作有了一定认识,最终成功将数据库连接类识别出来。对于类与类的关系,我通过仔细阅读UML相关教程,以及各种例子,进一步加深理解,最后将上述类的基本关系确定下来,虽然还是存在很多不足。今后通过更多的建模实例弥补自己在这些方面的不足。
七、实验评价(教师填写)