资源描述
软件工程文档
银行ATM系统
—UML的设计与实现
单位:
国防科技大学计算机学院学员三队
设计人员:
目 录
1、引言 3
1.1 编写目的 3
1.2 读者对象 3
1.3 软件项目概述 3
1.4 文档概述 3
1.5 定义 4
1.6 引用文件 4
2、任务概述 5
2.1目标 4
2.2软件的开发和运行环境 4
2.3用户特征 4
2.4假设与约束 4
2.5初步需求分析 5
3、问题域分析 6
4.1 参与者 6
4.2 用例 7
4.3用例图 8
4、静态结构模型 8
5.1 类的分析 8
5.2 CRC 9
5.3 类图 14
5、 动态行为模型 15
6.1 事件流描述 16
6.2 顺序图 18
6.3 活动图 26
6、界面设计要求 27
7、软件测试方案 35
9、工程进度总览 38
1、引言
1.1 编写目的
按照面向对象软件工程思想,为便于银行ATM系统软件开发,为其提供可靠的文档资料,增强此软件的可读性与可维护性,记录整个软件开发过程。此文档为程序员控制整个开发过程的必备文档,记录了软件的开发过程,并指导程序员逐步实现软件的开发。
1.2 读者对象
该软件是一个课程设计,属于小组开发,对象是教员、欲拷贝此软件进行参考的专业人员。
1.3 软件项目概述
l 项目名称:国防科大工商银行ATM系统
l 简称:银行ATM系统
l 项目代号:国标90010603
l 软件项目的大致功能:银行客户存款、取款、转账、查询余额、更改密码。
1.4 文档概述
本文档的大致内容为:
l 软件的编写目的
l 软件的功能、性能描述
l 软件的开发过程描述
l 软件的界面设计
l 软件的测试与维护
1.5 定义
1、文档: 记录软件开发活动和阶段性成果,为理解软件所必需的阐述性资料
2、数据:是客观事物的符号表示,是现实世界的事物采用计算机能够识别、存储和处理的形式进行描述的符号的集合。
3、正确性:满足用户的需求(功能、性能等)。
4、可靠性:具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当而造成软件系统失效的能力。
5、 有效性:充分利用计算机的时间和空间资源。
6、 可验证性:软件系统应易于检查、测试和评审
1.6 引用文件
引用文档
《软件工程术语》 (GB/T 11457-1995)
――中华人民共和国国家标准 1995-12-01 实施
参考文件
1.《UML与Rational Rose从入门到精通》….....Wendy Boggs等著
2、《Visual C++动感设计》——飞思科技,电子工业出版社,2002年9月
3、《Visual C++入门与提高》——清华大学出版社,2002年6月
4、《Visual C++、MFC导学》——人民邮电出版社,2003年1月
5、《Visual C++编程高手》——机械工业出版社,2001年12月
2、任务概述
2.1目标
本项软件是为了实现对银行ATM系统的模拟。软件在VISUAL C++ 6.0 的环境下开发,是一项独立软件,包含所有源代码。软件中的BMP图片由WINDOWS的画图工具和图形软件PHOTOSHOP制作或处理而成。
2.2软件的开发和运行环境
开发:此软件代码由Visual C++6.0完成,由MFC工具开发。
运行环境:Pentium ll 以上处理器的Windous环境下,包括Win.NT等操作系统。
2.3 用户特征
教员:教授与研究生,负责检查此软件,具有丰富的软件开发经验。
同学:计算机专业本科生,进行参考,具有一定的编程能力和软件工程经验。
2.4 假设与约束
2.4.1 假设
经费限制:此软件为课程设计作业,无经费限制。
开发期限:7周。
预计困难:
1、 时间紧;
2、 难度大;
3、 知识与能力不够。
2.4.2 约束
性能约束:不能在除Windows以外的环境下运行。
1.2 初步需求分析
此软件的设计将实现银行ATM系统的基本功能。ATM系统一次服务一名客户。客户插入一张ATM卡并进入个人数字识别号码(PIN),系统进行验证,通过后客户 才能执行一种或更多操作。客户完成所有操作后,退卡。
ATM系统必须向客户提供如下服务:
1、客户可以做一次取款(取款金额必须是100元人民币的整数倍),在现金被提取之前,必须得到银行的许可。
2、客户可以做一次存款,客户把存款量输入到ATM系统中,必须从银行得到许可。
3、客户可以做一次转帐。
4、客户可以进行一次详细账户信息查询。
5、客户通过有效验证后可以更改密码。
6、客户可以在取回磁卡是选择是否得到记录操作的打印凭条。
ATM系统将把每一处理传达到银行并且获得银行许可。如果银行确定客户PIN 是无效的,客户将被要求再进入PIN。 如果客户不能在五次尝试之后成功地进入PIN,客户的卡将被机器没收,而客户不得不联系银行取回它。
3、分析问题域
3.1 Actor(参与者)
(1)Bankserve(银行服务器)
描述:Bankserve管理机器。
示例:银行中央服务系统。
(2)Operator(银行服务人员)
描述:负责开/关机器和往机器中放现金。
示例:银行的工作人员。
(3)Customer(客户)
描述:Customer可以存款、取款、转账、查询余额、更改密码。
示例:任何一个在银行开有账户的个人。
3.2 Use case(用例)
(1)Session(会话)
当一名客户将一张ATM卡片插入机器时,一个Session开始,ATM系统读卡(如果客户执行非法操作或卡片损坏,卡片将被退出,同时屏幕将显示出错信息,而被Session异常中断)。进行验证客户密码的登录功能。客户成功登录系统后,可以选择一种或多种操作,直至退卡。如果客户输入五次无效的PIN,则Session被异常中断 ,ATM卡将被吞掉。
(2)Task(任务)
Task是一种抽象的用例,表示所有类型的处理所共有的行为,Task的具体类型按照适当的方式执行一定的操作。根据Task(存款、取款,转帐,查询,更改密码)的事件流描述给出具体的处理。
(3)Deposit(存款)
提供存款到帐户的功能。
(4)Withdraw(取款)
提供从账户取款的功能。
(5)Transfer(转账)
提供转账功能。
(6)QueryAccount(查询余额)
提供查询余额的功能。
(7)ChangePIN(更改密码)
提供更改密码的功能。
(8)PrintReceipt(打印凭条)
客户选择打印凭条,包括显示日期,时间,机器位置,操作,理由,数量,结果类型,受到影响的原因和可供使用的选择。
3.3 Use Case Diagram(系统用例图)
4.静态结构模型
4.1 类的分析
4.2 CRC
边界类:
1. CcardReader
a) Responsibility:
i. Tell ATM When Card is Inserted
ii. Eject Card
iii. Read info from card
iv. Retain card
b) Collaborations:
i. ATM
ii. Session
iii. Card
2. CcashDispenser
a) Responsibility:
i. Dispense cash
ii. Keep the amount of cash available
iii. Init cash amount
b) Collaborations:
i. Clog
ii. CTransaction
3. CCustomerConsole
a) Responsibility:
i. Display messages
ii. Display menu and receive a choice
iii. Display a prompt and receive a PIN
iv. Display a prompt and receive the amount of money
v. Display a dialog and receive the response
b) Collaborations:
i. CTransaction
ii. CSession
4. CKeyboard
a) Responsibility:
Watch the gesture from the keyboard
b) Collaborations:
CCustomerConsole
5. CScreen
a) Responsibility:
Display drawing and strings
b) Collaborations:
CCustomerConsole
6. CCashReceiver
a) Responsibility:
Receive the cash from the customer
b) Collaborations:
Clog
7. Cbank
a) Responsibility:
i. Connect to bank
ii. Send message to bank
iii. Receive message to bank
iv. Shut down connection to bank
b) Collaborations:
i. Clog
ii. CSession
iii. Cmessage
8. CoperatorPannel
a) Responsibility:
i. Inform ATM system is shutdown
ii. Inform ATM system is started
iii. Inform cashdispenser the initial amount of cash
b) Collaboration:
i. CATM
ii. CCashDispenser
9. Cprinter
a) Responsibilities:
Print the receipt
b) Collaboration:
i. CATM
ii. CTransaction
iii. Clog
iv. CReceipt
实体类:
1、 Clog
a) Responsibility:
i. Write log message from bank
ii. Write log message from cardreader
iii. Write log message from session
iv. Write log message from Transaction
b) Collaborations:
i. CBank
ii. CCardreader
iii. CTransaction
2、 Cmessage
a) Responsibility:
Hold information to send to the bank server
b) Collorations:
i. CBank
ii. CTransaction
3、 Creceipt
a) Responsibility:
Hold the message to be printed
b) Collaborations:
Cprinter
4、 CCard
a) Responsibility:
Hold the information of a card
b) Collaborations:
i. CCardReader
ii. CSession
5、 CAccount
a) Responsibility:
Hold the information of an account
b) Callaborations:
CQueryAccount
控制类:
1、 CSession
a) Responsibility:
i. Perform Session
ii. Perform invalid PIN exception
iii. Allow customer to choose a transaction
iv. Start transaction
b) Collaborations:
i. CATM
ii. CTransaction
iii. CCustomerConsole
iv. Clog
2、 CTransaction
a) Responsibility:
Perform transaction
b) Collaborations:
i. CCustomerConsole
ii. Clog
iii. CBank
iv. Cprinter
v. CWithDraw
vi. CDeposit
vii. CWithDraw
viii. CTransfer
ix. CInquery
x. CChangePIN
3、 CATM
a) Responsibility:
i. Start up when switch is turned on
ii. Shut down when switch is turned off
iii. Start a new session when card is inserted by customer
b) Collaborations:
i. OperatorPanel
ii. CashDispenser
iii. NetworkToBank
展开阅读全文