2) 如何识别系统的参与者?应该如何划分用例,应注意哪些问题? 通过回答以下问题来识别系统的参与者: 1. 谁使用系统的主要功能? 2. 谁改变系统的数据? 3. 谁从系统中获取数据? 4. 谁支持、维护系统?
5. 谁需要借助系统的支持来完成工作? 6. 系统需要操纵哪些硬件? 7. 系统需要和哪些外部系统交互? 8. 谁对系统运行结果感兴趣? 划分用例:
1. 每个参与者打算在这个系统里做些什么事情? 2. 参与者使用本系统要实现的目标是什么?
3. 参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何来完成这些操作?
4. 参与者是否会将外部的某些事件通知给该系统? 3) 心得
用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
用途:帮助开发团队以一种可视化的方式理解系统的功能需求。
用例图所包含的元素如下: 1. 参与者
表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2. 用例
用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示 3. 子系统
用来展示系统的一部分功能,这部分功能联系紧密。 4. 关系
用例图中涉及的关系有:关联、泛化、包含、扩展; a. 关联
表示参与者与用例之间的通信,任何一方都可发送或接受消息。 b. 泛化
就是继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。 c. 包含
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤; d. 扩展
扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。 e. 依赖
表示源用例依赖于目标用例;
4.2 建立对象模型
4.2.1 候选类的数据字典
类 名 User 中 文 用户 定 义 使用ATM自动取款机系统进行取款、存款、转账等业务。该类有插卡、选择业务等操作。 CardReader CashDipenser Bill BankAccount 读卡机 吐钞机 账单 存款账目 读出用户插入的银行卡信息。 将现金从取款机中递出。 由系统自动生成账单,在后台依此工作。 用户存款信息,包括用户的信息,存款数目等属性,并拥有更改用户银行数据的操作。 DrawAccount 取款账目 用户取款信息,包括用户的信息,取款数目等属性,并拥有更改用户银行数据的操作。 ATMScreen MaintenanceStaff ManageStaff ATM屏幕 显示系统要向用户展示的界面。 系统维护人员 维护ATM自动取款机系统的正常运行。 银行管理人员 向ATM自动取款机中赔款。 数据连接 与银行数据库进行连接,更新用户信息。 DatabaseConnector
4.2.2定义类 “用户”类
?属性
姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 住址(Address):文本(char)
?操作
插卡insert card() 输入Input()
修改密码changePWD() 查询inquiry()
“读卡机”类 ?属性 ?操作
接收卡accept card() 读卡read card() 退卡eject card()
“吐钞机”类 ?属性
余额(balance):字符串(string)
?操作
吐钞OutCash()
“账单”类 ?属性
账单号(AccountNumber):整形(int) 余额(balance):字符串(string)
?操作
打开open()
扣除存款deductFunds ()
存入存款withdrawFunds() “存款账目”类 ?属性
姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 余额(balance):字符串(string)
存款金额(DepositAmount): 字符串(string)
?操作
存款deposit () 取消Cancel ()
“取款账目”类 ?属性
姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 余额(balance):字符串(string)
ATM自动取款机系统分析与设计实验报告



