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






