Professional Documents
Culture Documents
CH 19
CH 19
Add CashStartupValidate
PIN Shutdown
include
Customer
2000Copyright H.Gomaa
Prints
Receipt
Maintains
11
1111
ATM11
2000Copyright H.Gomaa
1
1 1..*1 1 1
ReceiptPrinterInputs To Outputs To
external I/O
device ToCardReaderOutputs Interacts
userCashDispenser1With
external
1To
1
2000Copyright H.Gomaa
1..*
1
ATM 1..*Customer 1
1..*
Manages Identifies
1
1..*entity ATMInfoentity CustomerOwns
Modifies
*1,2
ngentity entity CheckiOwnsSavings AccountAccountHas Maintains entity
Account
1..*0..1
Bank1..* entity ny etit DebitCard ATMTransaction
2000Copyright H.Gomaa
1..*
entityentity
DebitCardSavingsAccount cardId: String PIN: String startDate: Dateinterest: Real expirationDate: Date status:Integer limit: Real total: Real
entityentity
entity TransferTransaction
accountNumber: String entitybalance: Real ATMTransactionlastDepositAmount: Real transactionId: String cardId: String PIN: String date: Dateentity
status: Integer
String 2000Copyright
H.Gomaa
accountNumber:
amount: Real balance: Real
entity ATMInfoentity ATMCard ATMId: String ATMLocation: StringcardId: String ATMAddress: StringstartDate: Date expirationDate: Date
entityentity CardAccountATMCash cashAvailable: Integer cardId: String fives: Integer accountNumber: String
1
1
subsystemsmajor
CardReader
subsystem ATMServerSubsystem
includeincludeinclude include
subsystem ATMClientSubsystem include include Client Client ClientClient Validate PINWithdraw Query Transfer FundsAccountFunds include
Use Cases
Add Cash
2000Copyright H.Gomaa
Startup
Shutdown
external user
Operator
evice dCashDispenseroutput evice dinput/output Interfaceinterface system interfaceReceiptPrinteroutput evice d BankingSystemCardReaderInterfaceinterface ReceiptPrinterInterface
external output input/ device user interface CardReader CustomerInterface external userCashDispenser1 external output
deviceATMCustomerexternal output
e19.10 Systemdevice11Figure
1
1
2000Copyright H.Gomaa
1111
11 ATM 111Customer 1
11 Operator
interfaceuseruser interface
OperatorInterface CustomerInterface
2.7a: Update Status tion :ATMTransac:ATMControl 1: Card Reader Input sys tem 1.2: Card Insrtsub eed:BankServer2.5 : Validate PIN (Custo m2.6 [Valid]: erIfo) Valid PIN n 2.7: Display 1.1: CardMenu Input Data 2.8: Selection Menu
2.4: PIN Entered (CustomerInfo) 1.3: Get PIN 2.2: Card 2.1: Card RequestDatastate ependent d co ntrol
device :CardReaderInterface1.4: Pin Prompt:ATMCardI/Oentity 2.3: Customer Infointerface :CustomerInterface 2: PIN Input
ATM Client -
Subsystem :BankServer
entity :ATMTransaction
entity 1: Card:ATMCard Input1.1: CardReader Input Data 1.2 : Card Inserted 1.3: Get PIN 1.4: PIN Prompt
Idle
Entry/ Display Welcome
V1: PIN
ValidationV6: :PIN CardAccountValidation Response (Status)Request (Card Id, PIN)
2000Copyright H.Gomaa
external output external output devi ce device :ReceiptPrintr:CashDispenser e 3.9: Dispenser Output entity Interface:ATMCash Interfaceoutput device output device interface :ReceiptPrintrinterface e :CashDispenser
3.4: Request Withdrawal 3.5: Withdrawal (Transa ction Details) OK (Cash Details) 3.11b: ACK Cash Dispensed3.6: Dispense Card3.17: entity TransactionReaderCash (Cash details) Cash 3.8: Cash3.7: ependentsubsystem d:ATMstateOutputResponseWithdrawal3.18: Card AmountEjected :BankServer 3.10: Cashcontrol Dispensed:ATMControl
3.16: Eject Selected3.3 Withdrawal (Transaction details) 3.15: Receipt Printed 3.11: PrintInterface device Update StatusI/OReceipt3.6a: Details)interface(Cash Interface :CardReader user intrfc e ae :Customer3.1: Customer 3.12:Transaction Selectio nRequest 3: Selection3.2: Transaction 3.13: Input3.14:detailsTransaction Printer
Collaboration19.16 Client ATM Funds diagram:-Withdraw use case : Wait Prompt3.4a: Display WaitFigureOutputData3.4a.1
3.11a.1: Cash Dispensed Prompt:ATM
I/O Customer 2000Copyright H.Gomaa3.11a: Display Cashexternal 3.20: Card Ejected Prompt Dispenseddevice 3.19: Display Ejected:CardReader
subsystem :BankServer
odiPrinter :ReceiptInterface
entity :ATMCash
Interface3.8: Cash Responseodi :CashDispenser ACK Data3.11b:Transaction y Output Printer3.12: Transaction Request entit :ATMTransaction Receipt Printed 3.13:3.11: Print Receipt D3.4: Request Withdrawaltion SelectionInput 3.14:3: 3.1: Customer SelectionTransac3.2: 3.15:etails 3.16: 3.17:3.5: intrfc OKuser Withdrawal e ae :CustomerInterface 3.10: Cash Dispensed Display EjectedUpdate Selected3.3: Withdrawal Status3.6: Dispense Cash3.19: Cash Dispensed
sdc 3.7: Cash Withdrawal Amount 3.4a: Display Wait 3.11a: Display C Dispensed:ATMControlash 3.9: Dispenser Output Eject 3.6 a:
Figure 19.17 Sequenceithdraw diagram W Funds use case -ATM Client3.18: Card Ejected
3.4a.1: Wait PromptI/Odi 3.11a.1: Cash Dispensed Prompt:CardRdeterface earIn
rCard Reader Output 3.20: Card Ejected Prompt e
TMm :A
2000Copyright H.GomaaCusto
3.10: Cash Dispensed / 3.11: Print Receipt, 3.11a: Display C Dispensedash 3.11b: ACK Cash Dispensed Time)After [Closedown not Requested] (Elapsed Ok /3.5: Withdrawal 3.6: Dispense Cash, 3.6a: Update Status Selected /ithdrawal
case3.3: ATM -ithdraw FFigureunds for use Control 19.18 Statechart W3.4:Request Withdrawal, WWaProcessing3.4a: Display Wait
or Fiting Withdrawal
IdleCustomer Choice
Entry / Display Welcome
2000Copyright H.Gomaa
entity
:TransactionLog
Managerentity business logic :DebitCardsubsystem :WithdrawalTransaction:ATMClient W6: Update Dailyotal T (Card Id,Amount)
Response Data
2000Copyright H.Gomaa
Terminating Transaction
1.2: Card Insrt eed / Get PINat1.3: e Status a te,Upd / Third Invlid, Stolicieash a CsplInsuffnt acel EjectTime) [Closedown Requested] Cancel /Eject, Diay CnAfter(Elapsed en / Confisc Time)[Closedown not Requested] ProcessingAfter(Elapsed Transaction /Rejectedelected STransfer /Closedown Request Transfer,Eject, DisplayaitDisplay W ApologyIdle Ok / Transfer
2000Copyright H.Gomaa
Idle
Entry/ Display Welcome
Waiting for PINWaitingor f IN PValidating /Eject, Customer ChoiceCancel Display Cancel I N/ Prompt,PINInvalid 2.4: PIN Entered / PaProcessingInvalid Customer
2.5: Validate PINte,Figure ATM 19.21 Update StatusInput Third Invlid, Stol
2.7: Display Menu, 2.7a: Update Status /electedequest S Transfer, RTransfer ait W 2000Copyright H.GomaaDisplay
/elected S Ok /TransferTransfer Transfer,Print Receipt,Request Apology aitRejected W / DisplayEject,Update StatusDisplay Selected /Query Ok /Query Query,Print Receipt,Request ait WUpdate StatusDisplay
Selected Withdrawal / Ok /3.3:3.5: Withdrawal Request Withdrawal,3.6: Dispense Cash,3.4: Display Wait3.6a: Update Status3.4a: ProcessingProcessing TransferQueryProcessing Withdrawal
Processing Transaction
2000Copyright H.Gomaa
Ok / Transfer Time)[ClosedownRequested]Print Receipt,After(Elapsed Time)[Closedown not Requested] Update StatusAfter(Elapsed 3.10: Cash Dispensed / Query Ok / 3.11: Print Receipt,
Print Receipt,3.11a: Display C Dispensedash Update Status3.11b: ACK Cash Dispensed Ok /3.5: Withdrawal 3.6: Dispense Cash,splyancel
r terpuser niceint e ouiceisperatoernaltPr devv :OpextputeipernaldehD t nouext :Rec:Cas ser ttatio enutter tpupurm tprinInfo Operator DispOuPOuOperatorIn hse e ssponshvic
inter e erceCah
et ddedr eer acnseRipyCaAt defactPfacrfae terteratofacutrfeetedtit Cas inetertpteispfacRecrinenTMutpuintereipIn inhDteralP:Ao:Recser:OpInue awtuoicIn dev:Casshdroun Caithm, n WAtow dteipactionctiontt Uped ashhseincsDatasaquesStars CsenPrRerananReClo sesseetails) CaTTr en dDisp h ank esponDisp BR(Casr l m ve nt ntroy etitMction atedtrolnTsaster Coe stM:AranussynkSe depenconTTstatuba :As:B Status S actiontails), M sectione PIN
anected, a De ATTrsh rd Ejed Updatranpdat) aiscatT(CasUstails. , ectiontailst de nfoonfeen n dnys evpt , Card Cctioerctiolamer Imer Selserted stostoCatesatomsaDispProm Inect,fiscranusranCuCuard CT EjnC(T Co etm t cefacrdequesysten iceedererfanter CaRbsClie suMevaceafacterIyCard fetittT O dterterer inmenTMn:A I/in:CardRInussto:Ad tclie rpu :Curd CaInData CaData ut rdtrrdtpn eaderpueader
ReadsNotifiesControlsDispenses Updates
Replenishes NotifiesControls
entityATMstate Transactiondependent
ATMControl
entity ATM Card entity Withdrawal user intrfcdevice interface deviceidevice iTransaction e ae terface terface Customer CardReanCashDispensernReceiptPrinter InterfaceeInterfaceInterfaceInterface dr
2000Copyright H.Gomaa
Read entity :CardAccount business logic :PINValidationTransactionManager Account Check,Numbers Update entityd :DebitCar Daily Limit Response entity TransactionManager:SavingsAccount
Read ATMBankAccount TransactionsResponsesData Debit, PIN ValidationCredit, TransactionManagerRequestAccountentityRe ad system coorinator business logicData:TransactionLogLogsubDebit,
Figure 19.26 Server subsystemTransferWithdrawAbortPIN Consolidated diagram for collaboration Bank ValidationDebit,
TransactionCredit,Debit, ResponseResponseAccount Credit, DataRead Read business logic :Withdrawal entity Account subsystem:Checkinserver Validate business logicg:BankServer :TransferTransactionManagerAccount
2000Copyright H.GomaaAccountAccountData
serve
r subsystem :BankServer
externalevic e d output
: CashDispenser ATM Transactions
client
I/O devicesubsystemcardReadercardReaderexternal
Information
terdispenser
OutputOutput
2000Copyright H.Gomaa:ATMCustomer
prin
serve
r subsystem :BankServer
externalevic e d output
ATMTransaction: CashDispenser
client
external I/O devicesubsystem :CardReader:ATMClientexternalevice d output cardReader
Input: ReceiptPrinter Output system :BankingSystem customerInputoperator Inputoperator
cardReader
Information displaybankResponse:Operator
printerdispenser utput
2000Copyright H.GomaaOutput:ATMCustomer
rputterputser enut rinut oiceisperato oicetP vvev :OpssivedeeipssidehD npapa :Rec:Cas ser ttatio enutter tpupurm tprinIno DispOuPOuOperatorOperatorInf
hh acer ectionsdded raCasCa terfratofactMA ineterT abs:Aser:OpInata ud , n sealtow rawtshh Uped ponsdouns eCaesCaithmStar RAClo W esponsction kRsaData an banTr ller nr vetrolringntroata M ctionm onteCodTsatster csMtractio:Aranus, uessy cluTqbankSe :AabsTtatesu:B Status S R actiontails), M sectione PINction anected, a Dea ATTrshs rd Ejed Updatranpdatran) aiscatT(CasUTstails. ,
ectiontailst de nfoonfeen n dnys evpt , Card Cctioerctiolamer Imer Selserted stostoCatesatomsaDispProm Inect,fiscranusranCuCuard CT EjnC(T Co t temts e ou rdequesysnacefac ice eadererfternCaRbsClie suMhronfacefacterInCard ncterterr ractioMntT inmedata lie:AsyI/O devinCardRInsetotT a:usabs:Ardtc pu :Curd CaInData CaData ut rdtrrdtpn eaderpueader metCaROu atioCaRIn puym lar
19.29 Taskrchitecture A -ous CustoInfomerFigure collaboration concurrent subsystemder for ATM Client diagramDispIninitial
stoonicea
rputterputser enut rinut oiceisperato oicetP vevvevD eeipe n:Opassidassidh rorp:Recp:Cas sert utotmatio enuinter tppuor tprInoperatf dispOupOuoperatIn
ha
h
, se)due, t,sseen shunpenenisp,n CaoisDrtUpw mo rawToDoDispsTstaedo sT thdcashAvesntieclos fitene sewi(intttw ouout nk sponou baRe ller nr vetrolringntroata M ctionm steronteCodTsan csMtractio:Aransy cluTsctiobankSe :AabsTussasu:B tat actionnSs), tran M snINStatut anetail ATTrected, d esactioDtePs),ou eha ectiot (nfocaupdatranpdread
tsT(casu(statuData) cardEji etails) merIIN) , merSel, ouetails)d,onfnt s ptstostonnDevenDay uerttiol eCuata, PcardCemerEacsp teCactiosdiProm daselectioscatsto updat(cardDup(intrancardInseje ct,iscu(tran conf t s eoutemt ou rdysnacefac ice eadererfternbsClie suMhronfacefacterInCardread (CaData) ncterterr ractioMntT inmedata lie:AsyI/O devinCardRInsetotT a:usabs:Aitec :Cu wr(card Data) utn rtpy atiot eaderpueader RIn ROularmcardmetcard pufo
Figure 19.30 Task collaboration -revised concurrent diagram ArchitectureATM Client subsystem for CustoInDispInerus
moder storoniceea Cunch ardR dev:CTMasyI/O
2000Copyright H.Gomaa:A
transactionId: String cardId: String Strin-N: PIg = null -tionT Transacypeselection: transactionData:TransactionRecord
tion D
data abstraction(outtransac
t)
ATMTransactionaa
eCustomerInfo (cardData, PIN) updatATMControl+ + updateCustomerSelection (inselection, outtransactionDetails) + updatePINStatus (status) + updateTransactionStatus (cashD + read etails)
stateependentcontrol d
+inevent, outaction)
processEvent ( : State ) +( currentState
: fives = Integer0)+incashAmount,
-dwithdrawCash(
Stringns)erStus-:
+(inreceiptInfo, eprintReceiptoutprintat)
cardNumber
Date-: startDate Date-: expirationDate device interface + write (incardData)nterce CashDispenserIfa + read (outcardData)
2000Copyright H.Gomaa
+ initialize ( )
+incashAmount, dispenseCash ( outdispenseStatus)
control cluseiconnet trngcor :bankServerProxy ATMController send (inATMTransaction, outbankResponse) send (indisplayPrompt ) send (incardReaderMsg) receive (outATMControlRequest)
send (inATMControlRequest)
Interface rf asynchronous I/O send (inATMControlRequest)user interfaceuser inteace device interface:OperatorInterface:CustomerInterface : CardReader
2000Copyright H.Gomaa
InterfaceInterface
output device output device interface interface :ReceiptPrinter:CashDispenser
s)
s tatuu nS(stat s sactio), s ranNStatu etailI ateThDteP pdda printReceiptinu(casup ( receiptInfo,out printStatus)
send(inATMTransaction, outbankResponse)
coordinatorCoordinator
:ATMstate dependent control
2000Copyright H.Gomaareceivesend
entity Card Account entity y entit Bank ATMInfo entity Maintains Debit Card
Readsentity
Credits,
LogsDebits,
Credits,Checks,Reads Debits,Updatesentity ngentity entity business logicTransactionLogCheckiReadsQueries Savings TransferTransactionAccountLogsValidates Account ManagerFigure
2000Copyright H.Gomaa
Bank
se oun ccead atabarapperAR dward :Ct unbers m erateAccoNu cnag ogiatioanValid ss lMe nes ction usiINValidsaitCardnd b:Prandatabarapperr Tw:DebatiotnCaData, see equesatioseyitheckpdat m N ValidRsponDailLisponCU PIReRe N Validt PIun gerData gicalanaAcco w,, oawMse gsnt ru drairmess ldinnt ithonfAbortnithactiondatabarapperAccouit,it, WCbusi:Wsw:SavDataead ranAccoDebCredR T wse drait,it, sponead
c oordiranness latabarappersa c:Quactiondwran ankTbusiansnt:T :BTreryctionug sa eQuranAccoDataLoRead seT sfert nt it,it, esponsansponunu reead MctionkRTRferctionDataDataDebCredR as ATsbanransaAccoAcco ranTan erTTrnt cagu ogier ane g tData fMsnAcco ss lsiun tneranappereck ctionatabahnm usi:TsadwrCAccomter bran:steCliesrve Tit,it,syMbsy b DebCredReadu:ATnkSe sa rver su:B se
2000Copyright H.Gomaa
ber, )
canagerse ogiMtNumpon ss lctionunres nesaccoq_ usiranat byT (inou y Queritialize ( )er + in+ qu
) r, se anagerbe cMr, pon umberes ogitNt_ um ss lactiontNt nenscoun, ou t usiraAccoun berTer (omAcoun sfsffrtoam anitialize ( ) Trininin + in+ tran er agN, anPI Min cnse) ogiactio scardId, pon ss linres neTran(v_ usinINt
)t) erseunt) agmoun anber,spono rer, am conMNumw_ber, an ) te ogictiuntumbogn ) aouNapper ss lnsccot, tumrionLsactioctio neaaountNe wctsa usialTr (inounaccssattran bwam (ranoutran drawdrainirm (accoundatabaT (in ithitialize ( )ith W+ read (+ log + in+ w+ conf+ abort
2000Copyright H.Gomaa
database wrapper
CardAccount + read ( incardId, out accountNumber) + update (incardId, inaccountNumber)
2000Copyright H.Gomaa
+ create (cardId)
PIN)+ validate (cardId, + updatePIN (cardId, PIN) + checkDailyLimitount) am(cardId, + updateDailyTotal(cardId, amount)
+ updateExpirationDate(cardId, expirationDate) + updateCardStatus(cardId,tatus) s + updateDailyLimit(cardId, newLimit) + clearTotal (cardId) + read (incardId, outPIN, outexpirationDate, outstatus, outlimit, outtotal) + delete (cardId)
database wrapper
Account
+ readBalance(accountNumber): Real+ (accountNumber)lose c amount) credit (accountNumber,Figure 19.36c BankServer information hiding classes+ + debit (accountNumber, amount) +(accountNumber open
database wrapperdatabase wrapper SavingsAccount + readLastDepositAmount (accountNumber,interestRate)CheckingAccount+ addInterest (accountNumber) : Real+ readCumulativeInterest(accountNumber) Real:
2000Copyright H.Gomaa
se oun c Ac
PI:outaccount#) in
er )cnagcardId, ogiatioan(insevalidate
PIN)(cardId,
ss lMe INpon
er clagecheckDailyLimit
st
ogiwaansgun(cardId, amount),
inupdateDailyTotal ss ldraMatabaapper(cardId, amount) neithdwr:SavAcco
amount),
Figure
account#,debit (amount), (amount),foraccount#, Bank Server subsystem-architecturelog (incredit readBalancereadBalance, n(intransaction)log nlog (inreadCumulativeInterest
toractiogicctioe ogtransaction)transaction) naserosawithdraw (inaccount#, sionL ranvss outw_response), laninamount,ct r canusierManagert#, abort (account#, amount)wran
:Bb):T
:Que couns eacpon (in Mctionsponserytq_res a ATsRet#, ,quou ank Trount bancounmd
account#, ebit (amount),debitaccount#, (amount),
steemrusisfManagerdatabarapperhecksftoAtt_readLastDepositAmount
branw:CAccotraninousyMCliestve
n{1ode}
2000Copyright H.Gomaa