课程名称:
实验项目:
实验地点:
专业班级:
学生姓名:指导教师:
本科实验报告
系统分析与设计 《ATM自动取款机系统》实验 逸夫楼402 学号:
一、实验目的
通过《系统分析与设计》实验,使学生在实际的案例中完成系统分析与系统设计中的主要步骤,并熟悉信息系统开发的有关应用软件,加深对信息系统分析与设计课程基础理论、基本知识的理解,提高分析和解决实际问题的能力,使学生在实践中熟悉信息系统分析与设计的规范,为后继的学习打下良好的基础。
二、实验要求
以个人为单位完成,自选题目,班内题目不重复,使用UML进行系统分析与设计,并完成实验报告。
三、实验主要设备:
台式或笔记本计算机
四、实验内容 1 选题及项目背景
ATM自动取款机系统
项目背景:ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。可以向用户提供一个方便、简单、及时、随时随地曲匡的互联的现代化的网络系统。
2 定义
ATM自动取款机可以为用户提供取款、查询余额、设置密码、转账等业务。在用户使用ATM自动取款机时,ATM要求用户输入密码,接下来由ATM把从银行卡上读取的信息以及用户输入的密码传给ATM自动取款机系统,系统通过数据库中的信息进行核对,如果密码正确,ATM就要求用户选择事务类型(取款、查询等),直至用户选择退出应用服务,询问用户是否退出应用服务,如果用户选择结束,则退出银行卡,系统重回登陆界面。用户进入取款界面后,首先可以输入取款金额(必须是50的倍数),否则系统显示输入有误。用户点击确认后,由系统查询用户相应的账户,判断该取值金额是否超出用户现有余额,如果没有,则系统会显示确认界面,用户单点击“确认”后,系统自动生成账单,并在后台进行工作,吐钞机进行清点并吐出现金,并将数据更新到数据库中;否则提示用户余额不足,请重新输入,重复上述过程。
3 参考资料
《系统分析与设计》
4 系统分析与设计
4.1需求分析 4.1.1识别参与者
用户(取款者)、系统维护人员、银行管理人员 4.1.2 对需求进行捕获与描述
用例名称:存款 执行者:用户 目的:向银行账户中存放现金。
用例名称:取款 执行者:用户 目的:从ATM自动取款机中提取账户金额。 用例名称:修改密码 执行者:用户 目的:修改用户登录密码。 用例名称:查询余额 执行者:用户 目的:查询银行账户中的现金余额。 用例名称:验证身份 执行者:用户 目的:验证操作ATM的用户身份。 用例名称:转账 执行者:用户 目的:从ATM自动取款机中进行现金转账。 用例名称:信息管理 执行者:银行工作人员 目的:对用户信息进行管理。 用例名称:系统维护 执行者:银行工作人员 目的:对ATM系统进行维护。 用例名称:赔款 执行者:银行工作人员 目的:向ATM机存放现金。 用例名称:验证身份 执行者:银行工作人员 目的:对用户信息进行验证。
100.1 100.2 100.3 101.4 100.5 100.6 100.6.1 用例ID号及用例名 用例概述 参与者: 前置条件(Pre-Conditions) 事件流 基本事件流 (Basic Flow) Uc_001取款 当用户插入银行卡并输入正确的密码进入ATM系统选择取款功能时,用例开始。用户利用它实现账户取款功能。 用户 用户插入银行卡并输入正确的密码,成功登录系统。 1.用户插入银行卡并输入正确的密码,成功登录系统。 2.用户选择取款功能。 3.系统提示输入取款金额。 4.用户输完后点击确认。 5.系统提款并修改账户信息。 6.系统提示取款操作成功,并提示用户立即拿走吐钞口的现金。 7.系统返回主界面。 余额不足时: 8.账户余额不足,取款失败。 9.系统显示账户当前余额。 返回E-3,并执行结束。 100.6.2 扩展事件流(Alternative ATM检查到用户没有输入正确金额 Flows) 1. ATM提示用户输入正确金额 2. 用户重新金额 后置条件(Post-Conditions) 用户成功取款。 用户存在跨行支取、异地支取 1. 银行业务系统计算额外的手续费并从用户账号进行扣除 2. ATM打印凭证时打印手续费信息 ATM检查发现用户没有从出钞口取走钞票 1. ATM再次提示用户从出钞口取走钞票,并演示图示帮助指示出钞口位置 2. 用户从出钞口取走钞票 用户选择查询余额 1. ATM显示用户账户余额 用户选择了其他操作 1. ATM显示相应的操作界面,ATM提示用户进行操作 2. 用户进行操作
4.1.3 用例图
ATM自动取款机用例图
4.1.4 分析与讨论
1) 建模用例图的步骤、方法?
1. 确定系统的边界和范围;(方法:分析系统内部元素,把系统内部元素和外
部事物划分开) 2. 识别系统的参与者; 3. 发现用例;
4. 描述用例及确定用例关系;(方法:对用例概要描述;对用例详细描述。 根
据用例事件流,将公共行为抽取出来,已包含关系构建用例关系;变化部分,抽取出来,放到扩展用例中) 5. 建立用例图;
6. 定义用例图的层次结构;
2) 如何识别系统的参与者?应该如何划分用例,应注意哪些问题? 通过回答以下问题来识别系统的参与者: 1. 谁使用系统的主要功能? 2. 谁改变系统的数据? 3. 谁从系统中获取数据? 4. 谁支持、维护系统?
5. 谁需要借助系统的支持来完成工作? 6. 系统需要操纵哪些硬件?
7. 系统需要和哪些外部系统交互? 8. 谁对系统运行结果感兴趣? 划分用例:
1. 每个参与者打算在这个系统里做些什么事情? 2. 参与者使用本系统要实现的目标是什么?
3. 参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何来完成这些操作?
4. 参与者是否会将外部的某些事件通知给该系统?
3) 心得
用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
用途:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者
表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2. 用例
用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示 3. 子系统
用来展示系统的一部分功能,这部分功能联系紧密。 4. 关系
用例图中涉及的关系有:关联、泛化、包含、扩展; a. 关联
表示参与者与用例之间的通信,任何一方都可发送或接受消息。 b. 泛化
就是继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。 c. 包含
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤; d. 扩展
扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。 e. 依赖
表示源用例依赖于目标用例;