银行系统的分析与设计2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)类Account的属性和行 为
bank: Bank holder: Customer[] accountNo: String createDate: Date balance: float (私有属性) getHolders(): Customer[ ] newAccount(holder:Customer,balance:float):void remAccount(accountNo:String):void(销户) Withdraw(holderName:String,holderID:String,accountNo:String,mo ney:float):float(返回取户余额) Deposit(holderName:String,holderID:String,accountNo:String,mone y:float):float(返回存款户余额)
(二)、定义用户界面类
用户与系统需要交互,一个用户友好的系统通常都采用直观的图
形化界面,因此需要定义系统的用户界面类。 识别系统对象类和用户界面类,对于后面建立相应的系统类图和 时序图都具有关键性的作用。
1、类BankGUI(系统的主界面)
是系统的主界面,含有存、取、转、开、销、改等相应操作按 钮,当程序退出时,主界面窗口关闭。 newBankGUI(): void(创建系统主界面) deposit(): void(按下“存款”按钮,调用该方法); withdraw(): void transfer(): void newAccount(): void delAccount():void modAccount(): void
(4)Maintain Account(管理帐户):创建帐户(开户)、删除帐户
(销户)及修改帐户信息。 (5)Transfer fund(转帐) (6)Transfer fund within a bank(在银行内转帐) (7)Transfer fund between banks 其中用例(5)是(6)和(7)的父用例。
DWDialog界面(存款)示例图
DWDialog界面(取款)示例图
4、类AccountDialog(帐户信息 对话框)
界面类AccountDialog用来填写(开户时)或显示(删改时)帐户
(4)类Transaction的属性和行为
私有属性:account: Account
createDate: Date
fund: float(交易金额) newTransaction(account: Account, fund: float, date: Date): void save():void(将交易记录存储到数据库中)
类QueryDialog帐户查询对话示例图
3、类DWDialog(存取界面框)
此对话框提示输入客户姓名、ID号、帐号、密码等相关信息。
含有两个操作按钮:存款(或取款)、取消
newDWDialog(): void创建存(取)款对话 deposit(): void(按“存款”按钮调用此方法) withdraw(): void(按“取款”按钮调用此方法)
二、分析问题领域 (一)、识别参与者(角色)
参与者代表与系统交互的人、硬件设备或另一系统。它存在于系统的
外部。 通过分析银行系统的功能需求,可以识别出3个参与者: (1)Clerk(银行职员):银行的工作人员 (2)CustomerActor(客户):任何在银行中开户的个人或组织 (3)BankActor(银行):提供存、取等业务的银行。客户可在银行中开 户或销户(关闭帐户)。
(二)、识别用例
用例:规定系统或部分系统的行为,描述系统所执行的动作序列集, 并为执行者产生一个可供观察的结果。
通过对需求的进一步分析,可确定系统中有如下用例存 在: (1)Login(登录):验证用户身份。 (2)Deposit fund(存款):存钱到帐户。
(二)、识别用例
(3)Withdraw fund(取款):从帐户中取钱。
(一)、定义系统对象类
从上述分析可知,系统至少具有3个重要的类:Bank、Account、
Customer。 在银行中,对帐户进行存钱、取钱、转帐操作,要保留业务记录。 因此在系统中还应有代表这些业务记录的对象存在:存(Deposit)、 取(Withdraw)、转帐(Transfer),这三个类都是一种业务记录,故 可抽象出父类:Transaction。 接着需确定这些对象的属性和行为。
6、“删除帐户”的活动图
前提是待删除帐户的余额为零,
对于需结息的单位帐户,还要让 该帐户的余额积数为零时才可以 删除,否则影响轧帐平衡,系统 将不能正常工作。实际应用中要 根据是何种帐户来作不同的处理。 (P188图有误)
7、“修改帐户”的活动图
三、静态结构模型
进一步分析系统需求,识别出类及类之间的关系,确定它们的静
系统用例图
类属
(三)、用例的事件流描述
用例的事件流是对完成用例行为所需的事件的描述。事件流描述
了系统应该作什么,而不是描述系统应该怎样做。
下面对前面识别出的用例逐个进行描述。
1、“登录”活动图
2、“存款”的活动图
3、“取款”的活动图
4、“转帐”的活动图
5、开户(创建帐户)的活动图
用卡、代理等多种业务。 在银行设立帐户的人或机构通常被称为银行的客户。 为了简化,本次系统分析只考虑存款、取款、转帐等基本功能。
根据上面对银行系统的基本需求分析, 可知这个简化的银行系统至少应该具 有如下功能:
1、一个银行可以有多个帐户; 2、一个银行可以有多个客户; 3、一个客户可以持有多个帐户; 4、一个账户可以有多个持有者; 5、可以开户;6、可以注销账户; 7、可以取钱;8、可以存钱; 9、在银行内帐户转帐; 10、不同银行的账户之间转帐
继承类Transaction(同样有account,createDate及交易金额fund属
性)。 无私有属性。 newWithdraw(account: Account, fund: float, date: Date): void(创建新的取款交易记录) save(): void(将取款交易记录存储到DB中)
(5)类Deposit的属性和行为
继承类Transaction,无私有属性
newDeposit(account: Account, fund: float, date: Date):void(创
建存款交易记录) save(): void(将存款交易记录存储到DB中)
(6)类Withdraw的属性和行为
(2)类Account的属性和行为
transferOut(accountNo: String, bankCode: String, money: float):
float transferIn(accountNo:String, bankCode: String, money: float): float newBalance(): float(计算新的帐户余额) update(): void(更新数据库中的帐户信息) save(): void(将帐户信息存储到数据库中) delete(): void(从数据库中删除帐户)
money:float, isSaving: Boolean):Boolean(查询存取帐户是否存在, 若是取款,还要查询帐户余额是否足够)
(3)类Customer的属性和行为
Name: String customID: String address: String account: account[ ] getAccounts(): Account[ ] Query(name: String, id: String): Boolean newCustomer(name: String, id: String, address: String, account: Account[ ]):void(创建客户对象) save(): void(将客户信息存储到数据库中) update(): void(更新DB中客户信息) hasAccount():Boolean(判断客户是否还持有帐户) delete(): void(删除DB中的客户信息)
(1)类Bank的属性和行为
getBankCode(code: String)
getName(name: String)
getAddress(address: String) getPhone(phone: String) getFax(fax: String))(访问私有属性)
(1)类Bank的属性和行为
bankCode: String
name: String address: String Phone:String Fax:String setBankCode(code: String) setName(name: String) setAddress(address: String) setPhone(phone: String) setFax(fax: String))(设置私有属性)
(7)类Transfer的属性和行为
继承类Transaction
transferAccountNo: String
transferBank:Bank newTransfer(account: Account, transferAccountNo: String,
transferBank: Bank, fund: float, date: Date): void(创建新的转帐 交易记录,可是收帐户或付帐户) save(): void(将转帐交易记录存储到DB中)
态结构和动态行为,是面向对象分析的基本任务。 系统的静态结构模型主要用类图或对象图描述。 静态建模分三步:(1)定义类、(2)确定类的名字、属性和操 作(3)确定类与类之间的关系,建立类图。
(一)、定义系统对象类
定义过系统需求,就可以根据系统需求来识别系统中所存在的对
百度文库
象。 系统对象的识别可以通过寻找系统域描述和需求描述中的名词来 进行,从系统需求描述中可以找到的名词有银行(Bank)、帐户 (Account)、客户(Customer)、资金(Funds),这些是对象图中的 候选对象。 判断是否应该为这些候选对象创建类的方法是:是否有与该对象 相关的身份和行为。如果有,则它是一个存在于模型中的对象, 应该为之创建类。资金没有对象,也没有与资金相关的行为。
(2)类Account的属性和行为
closeAccount(accountNo: String): void
getAccount(accountNo:String): Account(返回指定贴的帐户信息)
query(holderName:String,holderID:String, accountNo:String,
银行系统的分析与设计 --UML应用案例
Faculty of Software Engineering ,Chongqing University Wen Junhao E-mail: jhwen@cqu.edu.cn Tel: 86-23-65111964 (O)
一、系统需求
银行是与生活紧密相关的一个机构,提供存款、取款、转帐、信
类BankGUI系统主界面示例图
2、类QueryDialog(帐户查询)
界面类QueryDialog是用来根据帐户的帐号查找帐户信息的对话框。
当按下主窗口BankGUI中的按钮“删除帐户”和“修改帐户信息” 时,应先显示该帐户的基本信息(弹出对话框QueryDialog),然 后才能进入删改操作。 newQDialog(): void(创建查询窗口) query(): void 执行帐户查询操作