银行系统UML分析与设计开发.pdf_第1页
银行系统UML分析与设计开发.pdf_第2页
银行系统UML分析与设计开发.pdf_第3页
银行系统UML分析与设计开发.pdf_第4页
银行系统UML分析与设计开发.pdf_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

银行系统银行系统 UML 分析与设计分析与设计 1 系统需求系统需求 银行是与人们生活密切相关的一个机构,银行可以提供存款、取款、转账和 管理账户等业务。在银行设立账户的人或机构被称为银行的客户。一个客户可以 在银行开设多个账户,客户可以存钱到账户中,也可以从自己的账户中取钱,还 可以将存款从一个账户转到另一个账户。另外,客户可以随时查询自己的账户情 况,以及查询以前所进行的存款、取款等交易记录。客户还有权利要求关闭自己 的账户。 通过分析简化版的银行系统的特点,确定了系统的功能需求。银行系统软件 软件所要完成的主要功能有三方面: (1)存取款功能。 存款时,用户填写存款单,然后交给收银员键入系统,同时系统还要记录存 款人姓名,住址,身份证号码,存款类型,存款日期,利率及密码(可选)等信 息,完成后由系统反馈成功存款信息给用户。 取款时,用户填写取款的相关信息(取款金额、取款币种)进行提交,系统 要求用户输入密码以确认身份, 核对密码正确无误后系统计算利息并印出利息单 给用户。 (2)转账功能。 转帐分为同一个银行之间的转帐和不同银行之间的转帐。用户填写转账的相 关信息进行提交,系统要求用户输入密码以确认身份,核对密码正确无误后进行 转帐操作,并反馈信息给用户。 (3)管理账户功能。 管理账户包括创建账户、删除帐户以及修改账户信息。创建账户时,用户提 交相关信息(姓名、ID 号、地址、金额等) ,系统为用户创建账户。删除账户时, 用户提交帐号,系统检索账户信息并且确认删除。修改账户时,用户提供账号, 系统检索账户信息,修改完毕后提交系统更新。 2 分析问题领域分析问题领域 2.1 系统的参与者系统的参与者 通过分析银行系统的功能需求, 可以识别出三个参与者:“Clerk”(银行职员) 、 “CustomerActor” (客户)、BankActor(银行) 。 参与者的描述如下: Clerk(银行职员) 描述:Clerk 可以创建、删除账户,并可以修改账户信息。 CustomerActor (客户) 描述:CustomerActor 可以存钱、取钱,并在不同的账户之间转账。 BankActor(银行) 描述:客户可以在 BankActor 中设立或关闭账户。 2.2 系统的用例系统的用例 通过对需求的进一步分析,可以确定系统中有如下用例存在: Login(登陆) ,提供验证用户身份的功能; Deposit fund(存款) ,提供存钱到账户的功能; Withdraw fund(取款) ,提供从账户中取钱的功能 MaintainAccount(管理账户) ,提供创建、删除、修改账户信息的功能 由于转账既可以在属于同一银行的账户之间发生,也可以在属于不同银行的 账户之间发生, 而发生于不同银行的账户之间的转账需要与参与者 BankActor 交 互,因此需要用两个不同的用例来描述银行内的转账和银行之间的转账; Transfer fund within a bank(行内转账) ,提供在银行内账户间转账的功能; Transfer fund between banks(在不同的银行之间转账) ,提供在属于不同银行 的账户之间进行转账的功能; 上面两个用例可以抽象出一个父用例“Transfer fund” 。 Transfer fund(转账), 描述转账的通用行为, 是用例 Transfer fund within a bank 与 Transfer fund between banks 的父用例。 用例图描述系统外部的执行者与系统提供的用例之间的某种联系。用例是指 对系统提供的功能或用途的一种描述, 执行者是可能使用这些用例的用户或外部 系统, 用例和执行者之间的联系描述了使用者和用例的对应关系。用例图着重于 从系统外部执行者的角度来描述系统需要提供哪些功能。 银行系统的用例图如图 2-1 所示, 参与者 “Clerk” 与用例 “Login” 、 “Maintain Account” 交互, 参与者 “Clerk” 作为参与者 “CustomerActor” 的代理与用例 “Deposit fund” 、 “Withdraw fund” 、 “Transfer fund”交互,也即参与者“CustomerActor” 依赖参与者“Clerk”完成存在、取钱、转账的动作。用例“Transfer fund”具有 两个子用例“Transfer fund within a bank”和“Transfer fund between banks” 。因 此他们之间存在类属关系。另外用例“Transfer fund between banks”要与代表另 一个银行的参与者“BankActor”交互。 图 2-1 系统用例图 2.3 用例的事件流描述用例的事件流描述 用例:Login(登录)(登录) 简述:描述了用户如何登录到系统银行中 参 与 者:Clerk 前提条件:无 主流: 1、系统提示用户输入用户名和密码 2、用户输入自己的用户名和密码、提交 3、系统验证输入的名字和密码,用户登录系统成功 其 他 流: 如果输入用户名和密码无效,系统提示错误信息,用户可 以重新输入或者终止该用例。 后置条件:如果用例成功, 则用户登录到系统中。 否则系统状态不变。 用例:Deposit fund(存款)(存款) 简述:本用例允许客户借助 Clerk 存款账户中。 参 与 者:Clerk,Customer 前提条件:Clerk 必须登录到系统中。 主流: 当客户需要存钱时,需要向 Clerk 提交存款单和现金,用 例启动。 1、系统提示 Clerk 殊途用户名、用户的 Id 号、账号和所存 款项的金额。 2、Clerk 输入相关的信息后提交,系统确认账户是否存在 并有效。 3、系统建立存款事件记录,并更新账户的相关信息。 其 他 流: 账户不存在或无效,显示提示信息,用户可以重新输入或 终止该用例。 后置条件: 如果用例成功, 则客户账户中存款的金额发生变化。 否则, 系统状态不变。 用例:Withdraw fund(取款)(取款) 简述:本用例允许 Clerk 按照客户的要求从客户的账户中取款。 参 与 者:Clerk,Customer 前提条件:Clerk 必须登录到系统中。 主流: 当客户需要存钱时,需要向 Clerk 提交取款单,用例启动。 1、系统提示 Clerk 殊途用户名、用户的 Id 号、账号和所存 款项的金额。 2、Clerk 输入相关的信息后提交,系统确认账户是否存在 并有效。 3、系统建立存款事件记录,并更新账户的相关信息。 其 他 流: 1、账户不存在或无效,显示提示信息,用户可以重新输入 或终止该用例。 2、账户中的存款金额不足,显示提示信息,用户可以重新 输入金额或终止该用例。 后置条件: 用例:Transfer fund(转帐)(转帐) 简述: 本用例允许 Clerk 按照客户的要求将资金从一个账户转到 另一个账户。 参 与 者:Clerk,Customer 前提条件:在本用例开始前,用例必须登录到系统中。 主流: 当客户要求转帐时,用例启动。 1、系统提示 Clerk 输入用户姓名、用户的 Id 号、账户号码 和转账金额。 2、Clerk 输入相关信息后提交。 3、系统确认资金转出账户是否存在并有效。 4、更新资金转出账户的相关信息。 5、为资金转出账户建立转账记录。 6、存储转帐记录。 7、判断资金转入账户是否属于同一银行 如果资金转入账户与资金转出账户属于同一银行,则执行 在同一银行转帐业务; 如果资金转入账户与资金转出账户属于不同银行,则执行 在不同银行的账户间转账业务。 其 他 流: 1、账户不存在或无效,显示提示信息,用户可以重新输入 或终止该用例。 2、账户中的存款金额不足,显示提示信息,用户可以重新 输入金额或终止该用例。 后置条件: 如果用例成功,则客户账户中的存款的金额发生变化。否 则,系统状态不变。 用例:MaintainAccount(管理帐户)(管理帐户) 简述: 本用例允许 Clerk 按照客户的要求将资金从一个账户转到 另一个账户。 参 与 者:Clerk,Customer 前提条件:在本用例开始前,用例必须登录到系统中。 主流: 当 Clerk 想添加、修改或删除账户时,用例启动。 系统要求 Clerk 选择所要执行的活动(添加账户、修改账 户信息、或者删除帐户) 。 其 他 流: 1、账户不存在或无效,显示提示信息,用户可以重新输入 或终止该用例。 2、账户中的存款金额不足,显示提示信息,用户可以重新 输入金额或终止该用例。 3、取消删除,删除账户操作被取消,用例终止。 后置条件: 如果这个用例成功,这账户信息会被添加到系统中、或被 更新(修改) ,或从系统中删除。否则系统的状态没有变化。 3 类类 类是一类具有相同特征的对象的描述,对象的基本特征包括对象的属性和对 象的行为。类描述了此类对象的属性和行为,对象则是某个类的实例。 3.1 系统对象类系统对象类 银行系统的对象类主要包括类 Bank (银行) 、 类 Account (账户) 、 类 Customer (客户) 、类 Transaction(交易) 。交易类又包括类 Transfer(转帐) 、类 Withdraw (取款) 、类 Deposit(存款) 。下面确定这些对象的属性和行为: (1)类 Bank 类 Bank 代表物理存在的银行。类 Bank 应该具有下列私有属性: bankCode: Stringname: Stringaddress: String phone: Stringfax: String 一般情况下,都要将属性声明为私有属性,访问私有属性必须通过方法来进 行,因此对于每个私有属性,都有相应的 setXX()方法用来设置私有属性值,相 应的 getXX()方法用来访问私有属性值。 (2)类 Account 类 Account 应该具有如下私有属性: bank: BankHolder: CustomerAccountNo:Date CreateDate: DateBanlance: floate 类 Account 的方法: getHolders():Customer获取账户的客户 newAccount(holder:Customer,balance:float) :void开户 remAccount(accountNo:String) :void 注销账户 withdraw(holderName:String,holderID:String,accountNo:String,money: float) :float取款 deposit(holderName:String,holderID:String,accountNo:String,money: float) :float存款 transferOut(accountNo:String,bankCode:String,money:float) :float transferIn(accountNo:String,bankCode:String,money:float) :float 银行 内转帐 newBalance():float 计算账户余额 update():void更新数据库中的账户信息 save():void账户信息存储到数据库 delete():void删除账户 closeAccount(accountNo:String) :void账户进行结算 getAccount(accountNo:String) :Account返回指定账号的账户信息 query (holderName: String, holderID:String, accountNo: String, money: float, isSaving:Boolean) :Boolean查询账户(是否存在、账户余额) (3)类 Customer 类 Customer 具有如下私有属性: name: StringcustomerID: Stringaddress:String account: Account 类 Customer 的方法: getAccount():Account query(name:String,id:String) :Boolean 查询指定客户名和 ID 号的客户 newCustomer (name: String, id: String, address: String, account: Account) : void创建客户对象 save():void将客户信息存储到数据库中 update():void更新数据库中客户的信息 hasAccount()Boolean判断客户是否还持有账户 delete():void删除数据库中的客户信息 在银行中,对账户进行存钱、取钱、转账操作,要保留业务记录,因此在系 统中海应有代表这些业务记录的对象存在,可以为这些对象建立如下 3 个类: Deposit(存款业务记录) 、Withdraw(取款业务记录) 、Transfer(转账业务记录) , 这 3 个类都是一中业务记录,因此可以抽象出父类:Transaction (4)类 Transaction 私有属性: account:AccountcreateDate:Datefund:float 公共方法: newTransaction(account:Account,fund:float,date:Date) :void 创建交 易记录 save():void将交易记录存储到数据库中 (5)类 Deposit 继承类 Transaction 公共方法: newDeposit(account:Account,fund:float,date:Date) :void 创建存款交 易记录 save():void将存款交易记录存储到数据库中 (6)类 Withdraw 继承类 Transaction 公共方法: newWithdraw(account:Account,fund:float,date:Date) :void 创建存款交易 记录 save():void将存款交易记录存储到数据库中 (7)类 Transfer 继承类 Transaction 私有属性: transferAccountNo:String transferBank:bank 公共方法: newTransfer(account:Account,transferAccountNo:String,transferBank: Bank,fund:float,date:Date) :void创建转账交易记录 save():void将转账交易记录存储到数据库中 3.2 用户界面类用户界面类 银行系统的用户界面类主要包括类 BankGUI(主界面) 、类 QueryDialog(查 询账户界面) 、类 DWDialog(存取款界面) 、类 AccountDialog(管理账户界面) 、 类 TransferDialog(转帐界面) 、类 LoginDialog(登录界面) 。下面确定这些对象 的属性和行为: (1)类 LoginDialog 界面类 LoginDialog 是用来输入用户名和密码的对话框。该对话框在启动系 统时弹出,用来提示用户输入验证信息(账号与密码) ,若验证成功,则系统启 动,用才有权限进行后续操作,否则,用户需重新输入验证信息或者终止操作。 私有属性: 标签:用来提示用户输入用户名和密码; 文本框:用来输入用户的用户名和密码; 按钮:用来提交、更改或者取消用户输入的信息。 公共方法 newLDialog():void创建用来输入用户名和密码的对话框 Submit():viod当对话框被提交时,该方法被调用 Validate(name:string,pass:string):Boolean 验证用户名和密码 (2)类 BankGUI BankGUI 是系统的主界面,系统主界面含有几个按钮,当选择不同按钮时, 系统可以执行不同的操作。当程序退出时,主界面窗口关闭。 私有属性: 按钮(个数待定) :用来提示用户选择不同操作。 公共方法: newBankGUI():void 该方法用来创建系统主界面 deposit():void当按下“存款”按钮时,该方法被调用 Withdraw():void当按下“取款”按钮时,该方法被调用 transfer():void 当按下“转账”按钮时,该方法被调用 newAccount():void当按下“创建账号”时,该方法被调用 delAccount():void 当按下“删除账户”按钮时,该方法被调用 modAccount():void当按下“修改账户”按钮时,该方法被调用 (3)类 QueryDialog 界面类 QueryDialog 是用来根据账户的账号查找账户的对话框。当按下主窗 口 BankGUI 中的 “删除账户” 按钮和 “修改账户信息” 按钮时, 对话框 QueryDialog 弹出,银行职员填写账号,点击提交后,系统查询数据库中具有指定账号的账户 信息 私有属性: 标签:用来提示用户输入账户账号; 按钮:用来提交账户账号。 公共方法 newQDialog():void创建查询窗口 query():void 当查询窗口被提交时,该方法被调用 (4)类 DWDialog 界面类 DWDialog 是用来存款或取款时所需的对话框,其界面如下图所示。 当按下主窗口 BankGUI 中的按钮“存款”或者“取款”时,该对话框弹出,对 话框中第一个按钮的标签根据操作的不同显示为“存款”或者“取款” 私有属性: 标签:用于提示用户输入客户姓名、客户 ID、账号、金额等信息; 文本框:用来输入客户姓名、客户 ID、账号,金额; 按钮:用来提交存款、取款等信息。 公共方法 newDWDialog():void创建用于填写存、取款信息的窗口 deposit():void按下“存款”按钮时,该方法被调 withdraw():void 按下“取款”按钮时,该方法被调用 (5)类 AccountDialog 界面类 AccountDialog 是用来填写或显示账户信息的对话框,当按下主窗口 BankGUI 中的“创建账户”时,对话框弹出,银行职员填写账户信息(客户名, 客户 ID 号,客户地址,账户金额) ,然后点击对话框中的“创建”按钮,系统创 建账户并将之存储在系统中。 当按下主窗口 BankGUI 中的按钮“删除账户”和“修改账户信息”按钮时, 对话框 QueryDialog 弹出,银行职员填写账号,提交,系统查询数据库获取账户 信息后弹出 AccountDialog 对话框,显示账户的详细信息,对话框的第一个按钮 的标签根据操作的不同显示为“删除”或“修改” 。如若是上一步是“删除账户” , 银行职员点击对话框中的按钮“删除” ,系统删除所存储的该账户信息。如若上 步是“修改账户信息” ,银行职员修改账户信息后,点击对话框中的“修改”按 钮,系统则更新对应账户的信息 私有属性 标签:提示银行职员填写账户信息; 文本框:用来填写客户名、客户 ID、客户地址等账户信息; 按钮:用来提交或取消填写的信息。 公共方法 newAccount():void“创建”按钮按下后,该方法被调用 delAccount():void“删除”按钮按下后,该方法被调用 modAccount():void“修改”按钮按下后,该方法被调用 (6)类 TransferDialog 界面类 TranferDialog 是用来填写转账信息的对话框。 当按下主窗口 BankGUI 中的“转账”按钮时,该对话框弹出,银行职员填写资金转出账户、转账金额、 资金转入账户等信息,确认后系统执行转账操作 私有属性 标签:用来提示银行职员填写转账信息; 文本框:用来填写资金转出账户账号、转账金额、资金转入账户账号信息; 按钮:用来提交、修改或取消所填信息。 公共方法 newTDialog():void创建用于填写转账信息的对话框 transfer();void当对话框被提交时,该方法被调用 4 类图类图 类图描述了系统中的类和类之间的各种关系,其本质反映了系统中包含的各 种对象的类型以及对象之间的各种静态关系,即关联关系和子类型关系。 根据系统需求,创建静态系统类图。银行系统中存在的主要实体类:银行 (Bank) 、账户(Account)和客户(Customer).辅助类包括存款(Deposit) 、取 款(Withdraw)和 Transfer(转账) ,这三个类又可以抽象出父类 Transaction(交 易) 。用户界面类包括主界面类(BankGUI) ,登录界面(LoginDialog) ,查询界 面(QueryDialog) ,存取款界面(DWDialog),账户界面(AccountDialog)和转 账界面(TransferDialog) 。 类之间的关系如图 4-1 所示。 图 4-1系统类图 BankGUI 和 LoginDialog 之间是关联关系。AccountDialog、QueryDialog、 TransferDialog、DWDialog 与 BankGUI 之间是组合关系,AccountDialog、 QueryDialog、 TransferDialog、 DWDialog 与 BankGUI 之间是依赖关系。 类 Account 和类 Customer 之间是“多对多”关系,类 Account 和类 Bank 之间是“一对多” 关系,类 Account 和类 Transaction 之间是“一对多”关联关系,类 Deposit、 Withdraw、Tranfer 继承类 Transaction,它们之间是类属关系。 5 用例的活动图用例的活动图 活动图的核心概念是活动,着重描述操作实现中的所完成的工作以及用例实 例或对象中的活动。活动图是由状态图转变而来,与状态图不同的是,活动图主 要是描述动作及对象状态改变的结果。状态中的动作被执行时,活动中的状态直 接转移到下一阶段。 Login(登录)用例的活动图如图 5-1 所示,首先系统提示用户输入用户名和 密码,然后 Clerk 输入上述信息后提交,系统验证用户名和密码是否正确,如若 正确,则启动系统,否则,显示错误信息,并提示用户重新输入用户名和密码。 图 5-1 登录用例活动图 Deposit fund(存款)用例的活动图如图 5-2 所示。存款活动过程,系统提示 输入用户的相关信息和存款金额,银行职员将相关信息输入后提交,系统判断账 户是否存在且有效,如果账户有效并存在,建立交易记录,同时修改账户金额, 保存交易记录。 图 5-2 存款用例活动图 Withdraw fund(取款)用例的活动图如图 5-3 所示。取款活动过程,系统提 示输入用户的相关信息和取款金额,银行职员将相关信息输入后提交,系统判断 账户是否存在且有效,账户中的余额是否大于取款金额,如果账户有效并存在同 时金额足够,建立交易记录,同时修改账户金额,保存交易记录。 图 5-3 取款用例活动图 Transfer fund(转款)用例的活动图如图 5-4 所示。转账活动过程,系统提示 输入用户的相关信息和转账金额,银行职员将相关信息输入后提交,系统判断账 户是否存在且有效,账户中的金额是否大于转账金额,如果账户有效并存在同时 金额足够,建立交易记录,同时修改账户金额,保存交易记录,判断转入账户是 否属于同一银行。如是同一银行,系统先确认转入账户是否存在并有效。如有效 更新账户相关信息,建立转账记录,保存转账记录,如果转入和转出账户不是同 一银行,则发送转账通知给另一个银行。 图 5-4 转帐用例活动图 MaintainAccount(管理账户)用例包括创建账户、删除帐户和修改账户。 创建账户活动过程如图 5-5 所示, 系统提示输入用户的相关信息和存款金额, 银行职员输入相关信息后提交,系统为客户创建账户,并将账户信息保存到数据 库。 图 5-5 创建账户用例活动图 删除账户活动过程如图 5-6 所示,系统提示银行职员输入帐号信息,银行职 员输入相关信息后提交,系统检索账户信息,并且显示,银行职员确认删除并关 闭账户,系统从数据库删除账户。 图 5-6 删除账户用例活动图 修改账户活动过程如图 5-7 所示,系统提示银行职员输入帐号信息,银行职 员输入相关信息后提交,系统检索账户信息,并且显示,银行职员修改账户信息 并且提交,系统更新账户信息。 图 5-7 修改账户用例活动图 6 时序图与协作图时序图与协作图 时序图主要表示对象间消息传递的时间顺序,可以清晰地表示对象在其生命 周期的某一时刻的动态行为。在时序图中,所有对象将从左到右排开,而每个对 象的生命周期就犹如一条生命线,只要对象没有被撤销,这条生命线就可以从上 倒下延伸,对象间的通信通过在对象的生命间画消息来表示。 协作图用来描述相互合作的对象间的交互关系和链接关系。对象间的合作情 况用消息来表示。协作图中的消息和时序图的消息本质上是相同的,但是没有消 息发送的时间和消息传递的概念。 “登陆”的时序图与协作图如图 6-1 所示,Clerk 启动系统,类 LoginDialog 的方法 newLDialog()被调用,创建用来填写登陆信息的对话框。Clerk 填写登陆 信息后,提交,执行方法 validate()验证用户名和密码是否正确,若正确,发送消 息 newBankGUI()给类 BankGUI,启动系统,创建系统主界面。 图 6-1 “登陆”的时序图与协作图 “存款” 时序图与协作图如图6-2所示, 客户要求存款, Clerk发送消息deposit() 给类 BankGUI,类 BankGUI 又发送消息 newDWDialog()给 DWDialog,也即类 DWDialog 的方法 newDWDialog()被调用,创建用于填写存款信息的窗口。Clerk 填写必要信息后, 提交, 类 DWDialog 的方法 deposit()被调用, 发送消息 deposit() 给类 Account。在类 Account 的方法 deposit()的执行过程中,首先,调用 Account 的方法 query(), 确认数据库中是否存在该账户, 若存在, 则发送消息 newDeposit() 给类 Deposit, 创建一个存款交易记录, 然后调用方法 save()将该记录存储到数据 库中。调用类 Account 的方法 newBanlance()计算新的账户余额,最后调用方法 update()更新数据库中该账户的信息。 图 6-2 “存款”时序图 “取款”的时序图与协作图如图 6-3 所示,客户要求取款,Clerk 发送消息 withdraw()给类 BankGUI, 类 BankGUI 发送消息 newDWDialog()给类 DWDialog, 创建用于填写取款信息的窗口。Clerk 填写必要的信息后,提交,类 DWDialog 的方法 withdraw()被调用,发送消息 withdraw()给类 Account。在类 Account 的方 法 withdraw()的执行过程中,首先,调用类 Account 的方法 query(),确认数据库 中是否存在该账户,并确认账户中的金额是否足够支付所取款项,若账户存在且 金额足够,则发送消息 newWithdraw()给类 Withdraw,创建一个取款交易记录, 然后再调用方法 save()将该记录存储到数据库中。调用方法 newBalance()计算新 的账户余额,最后调用方法 update()更新数据库中该账户的信息。 图 6-3 “取款”时序图与协作图 “在银行内转账”的时序图如图 6-4 所示。Clerk 发送消息 transfer()给类 BankGUI,类 BankGUI 发送消息 newTDialog()给类 TransferDialog,创建用于填 写转账信息的窗口。Clerk 填写必要的信息后,提交,类 TransferDialog 的方法 transfer()被调用, 发送消息 transferOut()给类 Account 的对象 t1 (资金转出账户) , 调用方法 query()查询账户 t1 是否存在且资金是否足够(大于转账金额) ,然后调 用方法 newBalance()计算新的账户余额,再调用方法 update()更新数据库中 t1 的 信息。然后发送消息 newTransfer()给类 Transfer,创建转账交易记录,然后发送 消息 save()给 Transfer,存储转账交易记录。类 TransferDialog 还发送消息 transferIn()给类 Account 的对象 t2(资金转入账户) ,调用方法 query()查询账户 t2 是否存在, 然后调用方法 newBalance()计算新的账户余额, 再调用方法 update() 更新数据库中 t2 的信息。然后发送消息 newTransfer()给类 Transfer,创建转账交 易记录,发送消息 save()给类 Transfer,存储转账交易记录。 图 6-4 “银行内转帐”时序图与协作图 “在银行之间转账” 的时序图与协作图如图6-5所示。 Clerk发送消息transfer() 给类 BankGUI,类 BankGUI 发送消息 newTDialog()给类 TransferDialog,创建用 于填写转账信息的窗口。Clerk 填写必要的信息后,提交,类 TransferDialog 的方 法 transfer()被调用,发送消息 transferOut()或 transferIn()(根据账户是资金转入 还是资金转出账户,发送不同的消息)给 Account 对象,调用方法 query()查询账 户是否存在, 如果资金是转出账户, 还要检查账户资金是否足够 (大于转账金额) , 调用类 Account 的方法 newBanlance()给类 Transfer,创建转账交易记录,发送消 息 save()给类 Transfer,存储转账交易记录,最后发送转账通知给另一个银行。 图 6-5 “银行之间转帐”时序图与协作图 “创建新账户”的时序图和协作图和协作图如图 6-6 所示。 图 6-6 “创建新账户”时序图和协作图 客户要求创建新账户,Clerk 发送消息 newAccount()给类 BankGUI,类 BankGUI 发送消息 newADialog()给类 AccountDialog,创建用于填写账户信息的 窗口。Clerk 填写必要的信息后,提交,类 AccountDialog 的方法 newAccount() 被调用,发送消息 newAccount()给类 Account,创建 Account 对象。在方法 newAccount()被执行过程中, 要调用方法 query()查询该客户是否已在数据库中存 在(该客户可能已在银行中开设其他账户,因此数据库中已有该客户信息) 。若 该客户信息已在数据库中存在,类 Account 发送消息 update()给类 Customer,更 新数据库中该客户的信息;反之,若数据库中不存在该客户信息,则类 Account 发送消息 newCustomer()给类 Customer, 创建 Customer 对象, 然后调用方法 save() 将客户信息存储到数据库中。最后,调用类 Account 的方法 save()将 Account 信 息存储到数据库中。 “删除账户”的时序图与协作图如图 6-7 所示。 图 6-7 “删除账户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论