实验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相关教程,以及各种例子,进一步加深理解,最后将上述类的基本关系确定下来,虽然还是存在很多不足。今后通过更多的建模实例弥补自己在这些方面的不足。
七、实验评价(教师填写)

ATM系统对象模型建模相关推荐

  1. ATM系统 ---UMl建模实验 对象模型建模

    实验2 对象模型建模 实验2 对象模型建模 一.实验目的 1.熟悉对象模型建模方法: 2.掌握使用StarUML绘制类图的方法: 3.掌握类的描述方法. 二.实验内容 按照以下ATM系统的描述,对其进 ...

  2. atm系统的用例模型_UML建模语言7种图(以银行ATM系统为例)

    1 用例图: 描述了系统提供的一个功能单元.以一种可视化的方式理解系统的功能需求,"角色"与系统内用例之间的关系. 本例中,参与者"银行储户"和ATM机.简化后 ...

  3. atm系统的用例模型_ATM银行系统用例图.doc

    ATM银行系统用例图 UML建模语言7种图(以银行ATM系统为例) 分类: JAVA 2010-04-21 20:40 705人阅读 评论(0) 收藏 举报 1 用例图:?????? 描述了系统提供的 ...

  4. 系统静态分析建模(类图)

    title: 系统静态分析建模(一) date: 2019-12-03 19:32:43 categories: 系统分析与设计 系统分析的概念 一种问题解决技术,将一个系统分解成各个组成部分,目的是 ...

  5. python atm银行取款系统_Python实现ATM系统

    今天偶尔在知乎上看到某大佬用Python写的ATM系统案例,然后观摩了下他的实现思路和源码,感觉受益颇多,于是就根据自己的思路和目前掌握的Python编程基础将ATM实现了一下,以下是案例解析的过程: ...

  6. 系统动力学建模工具_多体动力学:ANSYS Motion 2020R2

    ANSYS Motion:基于先进的多体动力学求解器的第三代工程解决方案.该解决方案使人们能够通过对整个机械系统进行分析来快速准确分析刚性体和柔性体及准确评估物理事件.ANSYS Motion使用四个 ...

  7. 动态系统的建模与分析

    参考:DR_CAN 相同领域的文章: 动态系统的建模与分析 自动控制原理 Advanced控制理论 傅里叶级数与变换 工程数学 文章目录 1.介绍 2.电路系统建模 3.流体系统建模 4.拉普拉斯变换 ...

  8. [动态系统的建模与分析]15_伯德图,bode图,为什么是20logM?分贝又是什么?

    [动态系统的建模与分析]9_一阶系统的频率响应_低通滤波器 [动态系统的建模与分析]8_频率响应_详细数学推导 G(jw)_滤波器 [运放滤波器]3_反相同相比例放大电路_Multisim电路仿真 [ ...

  9. 面向对象分析与设计——ATM系统词汇表

    ATM系统设计相关文档: 1. ATM系统问题陈述:https://blog.csdn.net/visionzheng/article/details/80710412 2. ATM系统词汇表:htt ...

最新文章

  1. python+oracle
  2. 解决 iframe 在 ios 上不能滚动的问题
  3. 修改adb shell在pc端显示的名称
  4. java负数右移_Java中负数的右移
  5. android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)
  6. idea解决activiti(*.bpmn)文件乱码问题。
  7. SpringBoot基础教程2-1-6 日志规范-使用AOP统一处理Web日志
  8. VegasMovie Studio无法安装怎么办?
  9. ASP.NET ASHX 一般处理程序教程
  10. 收集的一些discuz插件常用插件。
  11. 1.spring入门 - spring实战第五版
  12. 基于multisim14的函数信号发生器仿真
  13. 童年学习机器人的 5 大好处
  14. Python爬虫:(亲测,已解决!)解决在使用谷歌浏览器的开发者工具时,没有Referer防盗链缺失问题。
  15. 如何用两台虚拟机搭建LAMP架构访问qq农场
  16. 浅谈group by和order by的用法和区别
  17. 分数阶微分方程c语言,第一讲分数阶微分方程.PDF
  18. 安装openKylin 开源操作系统 (ubuntukylin-22.04-pro-amd64.isowindows版)
  19. 马克斯cms,马克斯cms模板,马克斯cms网站开发
  20. word2vec产生的词向量中出现空格和回车,会导致ValueError: invalid vector on line3 (is this really the text format)

热门文章

  1. HTTP状态 500 - 内部服务器错误:No converter found for return value of type: class xxx(简单分析及解决)
  2. Excel 用countif 统计
  3. 【NOIP】入门题题解— —小玉买文具、P老师买铅笔
  4. 基于RHEL 8的Linux发行版的初始服务器设置
  5. 安卓模拟器安装APP,提示“this probably means that the app contains ARM native code and your Genymotion device ”
  6. 13年12月CCF计算机软件能力认证
  7. 安装ORACLE DATABASE 11g 时出现找不到文件错误
  8. 绘画教程:眼睛的基本结构画法
  9. Redis 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法
  10. DayOfWeek转换成日一二三四五六