UML系统分析与设计教程(第2版) 课件 第14章 银行系统的分析与设计_第1页
UML系统分析与设计教程(第2版) 课件 第14章 银行系统的分析与设计_第2页
UML系统分析与设计教程(第2版) 课件 第14章 银行系统的分析与设计_第3页
UML系统分析与设计教程(第2版) 课件 第14章 银行系统的分析与设计_第4页
UML系统分析与设计教程(第2版) 课件 第14章 银行系统的分析与设计_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

UML系统分析与设计SystemAnalysis&Design冀振燕北京交通大学

第十四章银行系统的分析与设计系统需求分析问题领域静态结构模型动态行为模型物理模型UML系统分析与设计第2版ZhenyanJi2系统需求域描述:银行是与人们日常生活紧密相关的一个机构,银行可提供存款、取款、转账等业务。在银行设立账户的个人或机构通常被称为银行的客户。一个客户可以在银行开多个账户,客户可以存钱到账户中,也可以从自己的账户中取钱,还可以将存款从一个账户转到另一个账户。另外,客户还可以随时查询自己的账户情况,以及查询以前所进行的存款、取款等交易记录。客户也有权利要求关闭自己的账户。UML系统分析与设计第2版ZhenyanJi3系统需求在对上述银行系统的基本需求进行分析后,可知这个简化的银行系统至少应该具有如下功能:一个银行可以有多个账户一个银行可以有多个客户一个客户可以持有多个账户一个账户可以有多个持有者可以开户可以注销账户可以取钱可以存钱可以在银行内的账户之间转账可以在不同银行的账户之间转账UML系统分析与设计第2版ZhenyanJi4分析问题领域识别参与者(1)Clerk(银行职员)。描述:Clerk可以创建、删除账户,并可以修改账户信息。示例:银行的工作人员。(2)CustomerActor(客户)。描述:CustomerActor可以存钱、取钱,还可以在不同的账户之间转账。示例:任何在银行中开有账户的个人或组织。(3)BankActor(银行)。描述:客户可以在BankActor中设立或关闭账户。示例:任意一个提供存款、取款、转账等业务的银行。UML系统分析与设计第2版ZhenyanJi5分析问题领域识别用例(1)Login(登录)。本用例提供了验证用户身份的功能。(2)Depositfund(存款)。本用例提供了存钱到账户的功能。(3)Withdrawfund(取款)。本用例提供了从账户中取钱的功能。(4)MaintainAccount(管理账户)。本用例提供了创建、删除账户,以及修改账户信息的功能。UML系统分析与设计第2版ZhenyanJi6分析问题领域识别用例(5)Transferfundwithinabank(在银行内转账)。本用例提供了在属于同一银行的账户之间转账的功能。(6)Transferfundbetweenbanks(在不同的银行之间转账)。本用例提供了在属于不同银行的账户之间转账的功能。(7)Transferfund(转账)。本用例描述了转账的通用行为,是用例(5)与(6)的父用例。UML系统分析与设计第2版ZhenyanJi7系统用例图UML系统分析与设计第2版ZhenyanJi8分析问题领域用例的事件流描述—登录1“Login”(登录)1.1简单描述本用例描述了用户如何登录到系统中。1.2前置条件(Pre-Conditions)无。1.3后置条件(Post-Conditions)如果用例成功,则用户登录到系统中。否则,系统状态不变。1.4扩充点(ExtensionPoints)无。1.5事件流1.5.1基流(BasicFlow)当用户想登录到银行信息系统中时,用例启动。UML系统分析与设计第2版ZhenyanJi9分析问题领域用例的事件流描述—登录(1)系统提示用户输入用户名和密码。(2)用户输入自己的用户名和密码,提交。(3)系统验证输入的名字和密码(E-1),用户登录系统成功。1.5.2替代流(AlternativeFlow)E-1:如果输入的用户名和/或密码无效,系统提示错误信息,用户可以重新输入或终止该用例。UML系统分析与设计第2版ZhenyanJi10“登录”活动图UML系统分析与设计第2版ZhenyanJi11分析问题领域用例的事件流描述—存款2“Depositfund”(存款)2.1简单描述本用例允许客户通过Clerk存款到账户中。2.2前置条件(Pre-Conditions)在本用例开始前,Clerk必须登录到系统中。2.3后置条件(Post-Conditions)如果用例成功,则客户CustomerActor账户中存款的金额发生变化。否则,系统状态不变。2.4扩充点(ExtensionPoints)无。2.5事件流UML系统分析与设计第2版ZhenyanJi12分析问题领域用例的事件流描述—存款2.5.1基流(BasicFlow)当CustomerActor想存钱到自己的账户时,要向Clerk提交存款单和现金,用例启动。(1)系统提示Clerk输入用户姓名、用户的id号、账号和所存款项的金额。(2)Clerk输入相关信息后提交,系统确认账户是否存在并有效(当用户名、用户id与账户的户主信息一致,且账户处于非冻结状态时,账户有效)(E-1)。(3)系统建立存款事件记录,并更新账户的相关信息。2.5.2替代流(AlternativeFlow)E-1:账户不存在或无效,显示提示信息,用户可以重新输入信或终止该用例。UML系统分析与设计第2版ZhenyanJi13“存款”活动图UML系统分析与设计第2版ZhenyanJi14分析问题领域用例的事件流描述—取款3“Withdrawfund”(取款)3.1简单描述本用例允许Clerk按照客户的要求从客户的账户中取款。3.2前置条件(Pre-Conditions)在本用例开始前,用户必须登录到系统中。3.3后置条件(Post-Conditions)如果用例成功,则客户CustomerActor账户中存款的金额发生变化。否则,系统状态不变。3.4扩充点(ExtensionPoints)无。UML系统分析与设计第2版ZhenyanJi15分析问题领域用例的事件流描述—取款3.5事件流3.5.1基流(BasicFlow)当Customer想从自己的账户中取钱时,要向Clerk提交取款单,用例启动。(1)系统提示Clerk输入用户姓名、用户的id号、账号和取款金额。(2)Clerk输入相关信息后提交,系统确认账户是否存在并有效(当用户名、用户id与账户的户主信息一致,且账户处于非冻结状态时,账户有效)(E-1),以及账户中的存款金额是否足够支付所取款项(E-2)。(3)系统建立取款事件记录,并更新账户的相关信息。3.5.2替代流(AlternativeFlow)E-1:若账户不存在或无效,显示提示信息,用户可以重新输入或终止该用例。E-2:若账户中的存款金额不足,显示提示信息,用户可以重新输入金额或终止该用例。UML系统分析与设计第2版ZhenyanJi16“取款”活动图UML系统分析与设计第2版ZhenyanJi17分析问题领域用例的事件流描述—转账4“Transferfund”(转账)4.1简单描述本用例允许Clerk按照客户的要求将指定数量的资金从一个账户转到另一个账户。4.2前置条件(Pre-Conditions)在本用例开始前,用户必须登录到系统中。4.3后置条件(Post-Conditions)如果用例成功,则客户CustomerActor账户中存款的金额发生变化。否则,系统状态不变。4.4扩充点(ExtensionPoints)无。UML系统分析与设计第2版ZhenyanJi18分析问题领域用例的事件流描述—转账4.5事件流4.5.1基流(BasicFlow)当Customer要求转账时,用例启动。(1)系统提示Clerk输入用户姓名、用户的id号、账户号码和转账金额。(2)Clerk输入相关信息后提交。(资金转入账户所在的银行只能在所提供的银行列表中选择。)(3)系统确认资金转出账户是否存在并有效(当用户名、用户id与账户的户主信息一致,且账户处于非冻结状态时,账户有效)(E-1),并确认资金转出账户中的金额是否足够支付所转款项(E-2)。(4)更新资金转出账户的相关信息。(5)为资金转出账户建立转账记录。(6)存储转账记录。(7)判断资金转入账户是否属于同一银行。UML系统分析与设计第2版ZhenyanJi19分析问题领域用例的事件流描述—转账如果资金转入账户与资金转出账户属于同一银行,则执行分支流S-1:在同一银行的账户间转账。如果资金转入账户与资金转出账户属于不同银行,则执行分支流S-2:在不同银行的账户间转账。4.5.2分支流(Subflows)S-1:在同一银行的账户间转账(1)系统确认资金转入账户是否存在并有效(当账户处于非冻结状态时,账户有效)(E-1)。(2)更新资金转入账户的相关信息。(3)为资金转入账户建立转账记录。(4)存储转账记录。UML系统分析与设计第2版ZhenyanJi20分析问题领域用例的事件流描述—转账S-2:在不同银行的账户间转账发送转账通知给另一个银行。4.5.3替代流(AlternativeFlow)E-1:账户不存在或无效,显示提示信息,用户可以重新输入或终止该用例。E-2:账户中的存款金额不足,显示提示信息,用户可以修改所转款项的金额或终止该用例。UML系统分析与设计第2版ZhenyanJi21“转账”活动图UML系统分析与设计第2版ZhenyanJi22分析问题领域用例的事件流描述—管理账户5MaintainAccount(管理账户)5.1前置条件(Pre-Conditions)在这个用例开始前,Clerk必须登录到系统中。5.2后置条件(Post-Conditions)如果这个用例成功,新账户会被创建,或者账户信息被更新(修改),或账户从系统中被删除。否则,系统的状态没有变化。5.3扩充点(ExtensionPoints)没有5.4事件流5.4.1基流(BasicFlow)当Clerk想创建、修改或删除账户信息时,用例启动。系统要求Clerk选择所要执行的操作(创建账户、修改账户信息或删除账户)。如果所选的操作是“创建账户”,则执行分支流S-1:创建账户。如果所选的操作是“删除账户”,则执行分支流S-2:删除账户。如果所选的操作是“修改账户”,则执行分支流S-3:修改账户信息。UML系统分析与设计第2版ZhenyanJi23分析问题领域用例的事件流描述—管理账户5.4.2分支流(Subflows)S-1:创建账户(1)系统要求Clerk输入客户信息(姓名、id号、地址、存储金额等)(2)Clerk输入所要求的信息后提交。(3)系统为客户建立账户。(4)将账户信息存储到数据库中。S-2:删除账户(1)系统提示Clerk输入账号(E-1)。(2)Clerk输入账号后提交。(3)系统检索账户信息(E-2)。(4)显示账户信息。(5)Clerk确认删除账户(E-3)。(6)关闭账户。(7)从系统中删除账户。UML系统分析与设计第2版ZhenyanJi24分析问题领域用例的事件流描述—管理账户S-3:修改账户信息(1)系统提示Clerk输入账号(E-1)。(2)Clerk输入账号后提交。(3)系统检索账户信息(E-2)。(4)显示账户信息。(5)Clerk修改账户信息。(6)Clerk修改完毕后提交。(7)系统更新账户信息。5.4.3替代流(AlternativeFlow)E-1:输入无效的账号,Clerk可以重新输入或终止该用例。E-2:账户不存在,系统显示错误信息,Clerk重新输入账号或取消操作(用例终止)。E-3:取消删除,删除账户操作被取消,用例终止。UML系统分析与设计第2版ZhenyanJi25“创建账户”活动图UML系统分析与设计第2版ZhenyanJi26“删除账户”活动图UML系统分析与设计第2版ZhenyanJi27“修改账户”活动图UML系统分析与设计第2版ZhenyanJi28静态结构模型定义系统对象类(1)类Bank。类Bank代表物理存在的银行。类Bank应该具有下列私有属性。bankCode:String

name:String

address:Stringphone:String

fax:String为了设置和访问对象的私有属性值,类Bank应该具有下述方法。setBankCode(code:String) setName(name:String)setAddress(address:String) setPhone(phone:String)setFax(fax:String) getBankCode():String getName():StringgetAddress():String getPhone():String getFax():StringUML系统分析与设计第2版ZhenyanJi29静态结构模型(2)类Account。在确定类Account的属性和方法时,应考虑如下需求。一个银行可以有多个账户。一个账户可以有多个持有者。可以开户。可以注销账户。可以取钱。可以存钱。可以在银行内的账户之间转账。可以在不同银行的账户之间转账。UML系统分析与设计第2版ZhenyanJi30静态结构模型(3)类Customer。在确定类Account的属性和方法时,应考虑如下需求。一个银行可以有多个客户。一个客户可以有多个账户。查询数据库中是否存在指定客户名和ID号的客户信息。创建客户对象。将客户信息存储到数据库中。更新数据库中的客户信息。判断客户是否还持有账户。删除数据库中的客户信息。UML系统分析与设计第2版ZhenyanJi31静态结构模型(4)类Transaction。私有属性如下。account:AccountcreateDate:Datefund:float公共方法如下。newTransaction(account:Account,fund:float,date:Date):void创建交易记录。save():void将交易记录存储到数据库中。UML系统分析与设计第2版ZhenyanJi32静态结构模型(5)类Deposit。继承类Transaction。私有属性如下。无。公共方法如下。newDeposit(account:Account,fund:float,date:Date):void创建存款交易记录。save():void将存款交易记录存储到数据库中。UML系统分析与设计第2版ZhenyanJi33静态结构模型(6)类Withdraw。继承类Transaction。私有属性如下。无。公共方法如下。newWithdraw(account:Account,fund:float,date:Date):void创建取款交易记录。save():void将取款交易记录存储到数据库中。UML系统分析与设计第2版ZhenyanJi34静态结构模型(7)类Transfer。继承类Transaction。私有属性如下。transferAccountNo:StringtransferBank:Bank公共方法如下。newTransfer(account:Account,transferAccountNo:String,transferBank:Bank,fund:float,date:Date):void创建转账交易记录。save():void将转账交易记录存储到数据库中。UML系统分析与设计第2版ZhenyanJi35静态结构模型定义用户界面类(1)类BankGUI。BankGUI是系统的主界面,系统的主界面含有几个按钮,当选择不同按钮时,系统可以执行不同的操作。当程序退出时,主界面窗口关闭。(2)类QueryDialog。界面类QueryDialog是用来根据账户的账号查找账户的对话框。当按下主窗口BankGUI中的“删除账户”按钮和“修改账户信息”按钮时,对话框QueryDialog弹出,银行职员填写账号并提交,然后系统查询数据库中具有指定账号的账户信息。UML系统分析与设计第2版ZhenyanJi36静态结构模型(3)类DWDialog。界面类DWDialog是客户在存款或取款时所需的对话框,其界面如图14.9所示。当按下主窗口BankGUI中的“存款”按钮或“取款”按钮时,该对话框弹出,对话框中第1个按钮的标签根据操作的不同显示为“存款”或“取款”。(4)类AccountDialog。界面类AccountDialog是用来填写或显示账户信息的对话框UML系统分析与设计第2版ZhenyanJi37静态结构模型(5)类TransferDialog。界面类TransferDialog是用来填写转账信息的对话框。当按下主窗口BankGUI中的“转账”按钮时,该对话框弹出,银行职员填写资金转出账户、转账金额、资金转入账户等信息,然后单击“OK”按钮确认操作,系统执行转账操作。(6)类LoginDialog。界面类LoginDialog是用来输入用户名和密码的对话框。该对话框在启动系统时弹出,提示用户输入验证信息,若验证成功,则系统启动;否则,用户重新输入验证信息或终止操作。UML系统分析与设计第2版ZhenyanJi38静态结构模型系统类图UML系统分析与设计第2版ZhenyanJi39系统数据库的逻辑模型UML系统分析与设计第2版ZhenyanJi40动态行为模型登录首先,Clerk启动系统,类LoginDialog的方法newLDialog()被调用,创建用来填写登录信息的对话框。Clerk填写登录信息后,提交信息,执行方法validate()验证用户名和密码是否正确,若正确,发送消息newBankGUI()给类BankGUI,启动系统,创建系统主界面;若不正确,则提示用户重新输入信息,对重新输入的用户信息进行验证;若用户连续三次输入错误信息,系统终止运行。UML系统分析与设计第2版ZhenyanJi41“登录”顺序图UML系统分析与设计第2版ZhenyanJi42动态行为模型存款客户要求存款,Clerk发送消息deposit()给类BankGUI,类BankGUI又发送消息newDWDialog()给类DWDialog,即类DWDialog的方法newDWDialog()被调用,创建用于填写存款信息的窗口。Clerk填写必要的信息后提交信息,类DWDialog的方法deposit()被调用,发送消息deposit()给类Account。在类Account的方法deposit()的执行过程中,首先调用类Account的方法query(),确认数据库中是否存在该账户,若存在(若账户不存在,则显示提示信息),则发送消息newDeposit()给类Deposit,创建一个存款交易记录,然后调用方法save()将该记录存储到数据库中。调用类Account的方法newBalance()计算新的账户余额,最后调用方法update()更新数据库中该账户的信息。UML系统分析与设计第2版ZhenyanJi43“存款”顺序图UML系统分析与设计第2版ZhenyanJi44动态行为模型取款客户要求取款,类BankGUI的方法withdraw()被调用,类BankGUI发送消息newDWDialog()给类DWDialog,创建用于填写取款信息的窗口。Clerk填写必要的信息后,提交信息,类DWDialog的方法withdraw()被调用,发送消息withdraw()给类Account。在类Account的方法withdraw()的执行过程中,首先调用类Account的方法query(),确认数据库中是否存在该账户,并确认账户中的金额是否足够支付所取款项,若账户存在且金额足够(否则,若账户不存在或账户中金额不足,则显示提示信息),则发送消息newWithdraw()给类Withdraw,并创建一个取款交易记录,然后再调用方法save()将该记录存储到数据库中。调用方法newBalance()计算新的账户余额,最后调用方法update()更新数据库中该账户的信息。UML系统分析与设计第2版ZhenyanJi45“取款”顺序图UML系统分析与设计第2版ZhenyanJi46动态行为模型在银行内转账客户要求在银行内转账,类BankGUI的方法transfer()被调用,类BankGUI发送信息newTDialog()给类TransferDialog,创建用于填写转账信息的窗口。Clerk填写必要的信息后提交信息,类TransferDialog的方法transfer()被调用,发送消息transferOut()给类Account的对象t1(资金转出账户),调用方法query()查询账户t1、t2是否存在且t1中资金是否足够(即大于转账金额),如果账户t1或t2不存在,或资金不够,发送操作失败信息给Clerk;反之,如果账户t1、t2都存在且t1中资金足够,调用方法newBalance()计算新的账户余额,再调用方法update()更新数据库中t1的信息。然后发送消息newTransfer()给类Transfer,创建转账交易记录,然后发送消息save()给类Transfer,存储转账交易记录。类TransferDialog还发送消息transferIn()给类Account的对象t2(资金转入账户),调用方法newBalance()计算新的账户余额,再调用方法update()更新数据库中t2的信息。最后发送消息newTransfer()给类Transfer,创建转账交易记录,发送消息save()给类Transfer,存储转账交易记录。UML系统分析与设计第2版ZhenyanJi47“在银行内转账”顺序图UML系统分析与设计第2版ZhenyanJi48动态行为模型在银行之间转账客户要求在银行之间转账,类BankGUI的方法transfer()被调用,类BankGUI发送信息newTDialog()给类TransferDialog,创建用于填写转账信息的窗口。Clerk填写必要的信息后提交信息,类TransferDialog的方法transfer()被调用,发送消息transferOut()给Account对象,调用方法query()查询账户是否存在且账户资金是否足够(大于转账金额),如果账户不存在或账户资金不足,发送失败消息给Clerk;如果账户存在且账户资金足够,调用类Account的方法newBalance(),计算新的账户余额,再调用方法update()更新数据库中的账户信息。然后发送消息newTransfer()给类Transfer,创建转账交易记录,发送消息save()给类Transfer,存储转账交易记录。最后给另一个银行发送转账通知。UML系统分析与设计第2版ZhenyanJi49“在银行之间转账”顺序图UML系统分析与设计第2版ZhenyanJi50动态行为模型创建新账户客户要求创建新账户,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信息存储到数据库中。UML系统分析与设计第2版ZhenyanJi51“创建新账户”顺序图UML系统分析与设计第2版ZhenyanJi52动态行为模型删除账户客户要求删除账户,类BankGUI的方法delAccount()被调用,类BankGUI发送消息newQDialog()给类QueryDialog,创建用于填写账号的窗口。Clerk填写账号后提交信息,类QueryDialog的方法query()被调用,发送消息getAccount()给类Account,返回匹配指定账号的账户信息,若账户信息为空,发送消息给Clerk;反之,若账户信息存在,调用方法newADialog()创建窗口并将账户信息显示在窗口中。Clerk确认删除,类AccountDialog的方法delAccount()被调用,发送消息remAccount()给类Account。在方法remAccount()被执行的过程中,首先调用类Account的方法closeAccount()结清账户的利息和余额,关闭账户,然后调用方法delete()从数据库中删除该账户,发送消息update()给类Cus

温馨提示

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

评论

0/150

提交评论