目录
3 ATM系统的设计
3.1体系结构设计
3.2 设计模式选择
3.3 补充、完善类图
3.4 数据库设计
3.4.1 类与表的映射关系
3.4.2 数据库设计规范
3.4.3 数据库表
3.5 界面设计
3.5.1 界面结构设计
3.5.2 界面设计
3.5.2.1 功能界面设计
3.5.2.2 交互界面
总博客:
【软件工程】ATM系统的设计与实现_早睡第一人的博客-CSDN博客
(1)为使用户能够在简单' 易用、単一、统一的可视化界面下,轻松、方便地访问到各种 类型的数据,本系统釆用客户/服务器(B/S)体系结构。
客户层:用户通辻客户层与系统交互。该层可以是各种芝型的客户端。
表示层:用户通过表示层访问应用程序。表示层有 用户界面和控制器。
业务层:包含表示层中的控制器没有实现的一部分应用逻辑。负责确认和执行业务规 则和事务,并管理业务对象。
集成层:负责建立和维护与数据源的连接。
资源层:即数据库,可以分布在多个服务器上。
客户层请求将提交到表示层,由表示层调用业务层,业务层调用集成层,集成层读与资源层。
(2) 各层对应的组件是:客户层采用JSP 组件,表示层采用 Action 组件,业务层采用 Service组件,集成层采用 Dao 组件,之间的对应关系如图所示
根据体系结构及组件设计的包图,如下图所示;
GUI包中是所有界面相关的页面。Action 包中是顶层的Action 接口,ActionImpl包中的所有类都实现Action 包中的接口,这些类分别是不同的业务控制器。
Service 包中是负责业务处理的顶层 Service 接口和继承这个接口的其他负责不同业务的接口,ServiceImpl 中的类分别继承 Service 包中的接口。
Dao 包中是访问数据的接口,Daolmpl 中的类实现了 Dao 中的接口。
Entity 包中是所有的实体类。
设计模式是“对一些经过定制、能相互通信的对象和类的描述,用来解决特定场景下某个普遍的设计问题。”设计模式是面向对象的高层次解决方案。它不会过于关注具体问题的细节,所以应该把现实世界中存在的问题进行抽象。设计模式在选择对象和决定对象粒度方面都能起到作用。
面向对象设计 (Object-Oriented Design,OOD)最重要的是设计类图,体系结构和设计模式确定后,对象模型便过于简单,需要依据体系结构和设计模式进行调整。调整重点一是类的层次结构,二是类的属性方法。
对象模型中只有边界类、控制类和实体类,没有体现分层,不符合面向对象思想。因此需要依据体系结构调整类图,将控制类细分层次,分为客户层、表示层、业务层、集成层和资源层,将表示层、业务层、集成层采用设计模式进行调整,调整后图中不再绘制边界类和关联的实体类。
调整后的类图如下。
在本系统中,所有数据表、数据字段名的命名均釆用英文名称及其简写来完成。具体 为:第一个单词的全拼或简写+后面每一单词的全拼或简写。并且,每一个单词的第一个 字母为大写。如“储户名称”,其命名应为;Store_Name=
AS_CustomerInfo储户信息表
字段名 |
数据类型 |
约束 |
级 联 |
说 明 |
Customer_Id |
varchar |
Primary key |
储户编号 |
|
Customer_Name |
varchar |
not null |
储户姓名 |
|
Customer_Tel |
varchar |
not null |
储户电话 |
|
Customer_Pid |
varchar |
not null,unique |
储户身份证号 |
Employee员工表
字段名 |
数据类型 |
级联 |
约束 |
说 明 |
Employee_Id |
varchar |
Primary key |
员工编号 |
|
Employee_Name |
varchar |
not null |
员工姓名 |
|
Employee_Tel |
varchar |
not null |
员工联系电话 |
|
Employee_Pid |
varchar |
not null,unique |
员工身份证号 |
|
Employee_Type |
varchar |
not null |
员工类型 |
AS_CardInfo账户信息表
字段名 |
数据类型 |
约束 |
级 联 |
说 明 |
Card_Id |
varchar |
Primary key |
账户编号 |
|
Card_Type |
varchar |
not null |
货币类型 |
|
Card_Opendate |
varchar |
not null |
开卡日期 |
|
Card_Password |
varchar |
nnl null,unique |
账户密码 |
|
Customer_Id |
varchar |
not null,foreign key |
储户编号 |
|
Card_Total |
varchar |
not null |
账户余额 |
AS_DealInfo交易信息表
字段名 |
数据类型 |
约束 |
级 联 |
说 明 |
Card_Id |
varchar |
not null,foreign key |
账户编号 |
|
Deal_Person |
varchar |
not null,foreign key |
交易对象 |
|
Deal_Money |
varchar |
not null,check(dealmoney >0) |
交易金额 |
|
Deal_Type |
varchar |
not null,check(dealtype in('存款','取款','转账')), |
交易类型 |
|
Deal_Date |
varchar |
not null |
交易日期 |
(1)界面布局设计
(2)色彩设计
(3)交互设计
(4)一致设计
(5)子系统管理界面设计
(1)登陆页面
输入卡号和密码后点击登陆。
(2)注册界面
点击首页面的注册按钮,输入卡号、密码及再次输入密码进行注册
(3)主页面
登陆成功后进入主页面,主页面包含存款、查询、取款、转账、更改密码、退卡等按钮。
(4)存款页面
在主页面点击存款按钮进入存款页面
(5)查询界面
1)在主页面点击查询按钮进入查询页面
2)点击查询记录按钮,显示过往银行流水
在主页面点击取款按钮进入取款页面,在输入取款金额后点击确定即可取款
(7)转账界面
在主页面点击转账按钮进入转账页面,输入要转账的账户id以及金额后,点击确定,即可转账。
(8)更改密码界面
在主页面点击密码更改按钮进入密码更改页面,输入原密码以及新密码和再次输入密码后,点击确定,即可更改密码。
在主页面点击退卡按钮,系统退出到登陆界面,并弹出提示“请取走您的银行卡”
(1)操作成功交互
“新增信息成功”的交互界面,反馈用户申请操作成功,如图所示。
“删除成功”的交互界面,反馈用户删除操作成功,如图所示。
“修改成功”的交互界面,反馈用户修改操作成功,如图所示。
“取款成功”的交互界面,反馈用户取款操作成功,如图所示。
“存款成功”的交互界面,反馈用户存款操作成功,如图所示。
“转账成功”的交互界面,反馈用户转账操作成功,如图所示。
“查询成功”的交互界面,反馈用户查询操作成功,如图所示。
(2)操作询问交互
“是否申请”的交互界面询问用户是否执行申请操作,可以确定或取消,如图所示。
“是否修改”的交互界面询问用户是否执行修改操作,可以确定或取消,如图所示。
“是否删除”的交互界面询问用户是否执行删除操作,可以确定或取消,如图所示。
“是否取款”的交互界面询问用户是否执行取款操作,可以确定或取消,如图所示。
“是否存款”的交互界面询问用户是否执行存款操作,可以确定或取消,如图所示。
“是否转账”的交互界面询问用户是否执行转账操作,可以确定或取消,如图所示。
“是否查询”的交互界面询问用户是否执行查询操作,可以确定或取消,如图所示。
(3)操作失败询问交互
1)“账户密码输入错误,请重新输入!”的提示界面,提示储户账户密码输入错误,可以确定,如图所示。
2)“转账对象账号在系统中不存在”的提示界面,提示储户转账对象账号在系统中不存在,可以确定,如图所示。
3)“余额不足,请重新输入转账金额!”的提示界面,提示储户余额不足,重新输入转账金额,可以确定,如图所示。
4)“本账户货币类型与账户对象货币类型不一致,请重新选择账户对象!”的提示界面,提示储户账户货币类型与账户对象货币类型不一致,重新选择账户对象,可以确定,如图所示。
5)“该账户余额未清空转移,请先清空转移余额!”的提示界面,提示储户该账户余额未清空转移,先清空转移余额,可以确定,如图所示。