You are on page 1of 40

Figure 19.

1 Banking System use case model
Withdraw Funds «include»

Query Account

«include»

Validate PIN

«include»

ATM Customer

Transfer Funds Add Cash

Startup

Shutdown

Operator

Copyright 2000 H.Gomaa

Figure 19.2 Conceptual static model for Banking System - Problem Domain
1
Bank Has

1..*

ATM

Maintains ATM

1

1

Operator

1
ATMCustomer

1
CardReader

1
CashDispenser

1
ReceiptPrinter

1 Reads 1
ATMCard

1 Dispenses 1
ATMCash

1 Prints 1
Receipt

Copyright 2000 H.Gomaa

Figure 19.3 Banking System context diagram
1

«external I/O device» CardReader

1..*
Inputs To Outputs To

1 1

Operator

1 1

«external output 1..* device» ReceiptPrinter

Outputs To

1 «system» Banking System 1
Interacts With 1..*

1 1 1

1 ATM Customer 1 «external output device» CashDispenser «external user» ATMCustomer

«external user» Operator

Interacts With

1..*
Outputs To

1..*

Copyright 2000 H.Gomaa

Figure 19.4 Conceptual static model for Banking System - entity classes
«entity» Bank

1 1

Maintains

1..*

«entity» ATMInfo

1

1

Manages

Has Identifies

1..*
Owns «entity» Customer Provides 1..* Access to Owns

1..* 0..1 «entity» *
DebitCard

1..*

1..* 1,2
Modifies

* *
«entity» ATMTransaction

«entity» Account

«entity» CardAccount «entity» Checking Account «entity» Savings Account

«entity» Withdrawal Transaction

«entity» Query Transaction

«entity» Transfer Transaction

«entity» PINValidation Transaction

Copyright 2000 H.Gomaa

Figure 19.5 Conceptual static model for Banking System «entity» Bank bankName: String bankAddress: String «entity» Customer customerName: String customerId: String customerAddress: String «entity» DebitCard cardId: String PIN: String startDate: Date expirationDate: Date status:Integer limit: Real total: Real «entity» SavingsAccount «entity» Account accountNumber: String balance: Real «entity» CheckingAccount lastDepositAmount: Real interest: Real Copyright 2000 H.Gomaa .

Figure 19.Gomaa .6 Conceptual static model for Banking System «entity» ATMTransaction transactionId: String cardId: String PIN: String date: Date time: Time status: Integer «entity» PINValidationTransaction startDate: Date expirationDate: Date «entity» WithdrawalTransaction accountNumber: String amount: Real balance: Real «entity» QueryTransaction accountNumber: String balance: Real lastDepositAmount: Real «entity» TransferTransaction fromAccountNumber: String toAccountNumber: String amount: Real Copyright 2000 H.

Gomaa .7 Conceptual static model for Banking System «entity» CardAccount cardId: String accountNumber: String «entity» ATMInfo ATMId: String ATMLocation: String ATMAddress: String «entity» ATMCash cashAvailable: Integer fives: Integer tens: Integer twenties: Integer «entity» ATMCard cardId: String startDate: Date expirationDate: Date Copyright 2000 H.Figure 19.

* 1 «subsystem» BankServer Subsystem «external user» 1 Operator 1 1 «external user» ATMCustomer Copyright 2000 H.8 Banking System .Figure 19..major subsystems «external output device» ReceiptPrinter 1 «system» Banking System «external input/ output device» CardReader 1 1 1 1 1 «external output device» CashDispenser «subsystem» ATMClient Subsystem 1 1.Gomaa .

9 Subsystem Packaging of Use Cases «subsystem» ATMClientSubsystem «subsystem» ATMServerSubsystem Client Validate PIN «include» Server Validate PIN «include» Client Withdraw Funds «include» Add Cash Client Query Account «include» Client Transfer Funds Shutdown «include» Server Transfer Funds «include» Server Query Account Server Withdraw Funds «include» Startup Copyright 2000 H.Gomaa .Figure 19.

10 Banking System external classes and interface classes «system» BankingSystem 1 «external input/ output device» 1 CardReader 1 1 «external output device» ReceiptPrinter 1 ATM Customer 1 «external output device» CashDispenser 1 1 «output device interface» CashDispenser Interface «external user» ATMCustomer 1 1 CustomerInterface «user interface» 1 1 «output device interface» ReceiptPrinter Interface «user interface» 1 OperatorInterface 1 «external user» Operator 1 1 1 «input/output device interface» CardReader Interface Operator Copyright 2000 H.Gomaa .Figure 19.

Gomaa .«subsystem» ATMClient Subsystem Figure 19.11 ATM Client subsystem classes «state dependent control» «I/O device interface» CardReader Interface ATMControl «user interface» OperatorInterface «entity» «output device interface» ReceiptPrinter Interface ATMTransaction «user interface» «entity» ATMCard «output device interface» CashDispenser Interface CustomerInterface «entity» ATMCash Copyright 2000 H.

1: Card Request 2.Validate PIN use case «subsystem» :BankServer «external I/O device» :CardReader 1: Card Reader Input «I/O device interface» :CardReader Interface 1.4: Pin Prompt 2.2: Card Inserted 2.7a: Update Status «user interface» :CustomerInterface «entity» :ATMTransaction .1: Card Input Data «state dependent control» :ATMControl «entity» :ATMCard 2.5: Validate PIN (Customer Info) 2.Figure 19.4: PIN Entered (Customer Info) 1.6 [Valid]: Valid PIN 1.12 Collaboration diagram: ATM Client .8: Selection Menu 2: PIN Input :ATMCustomer Copyright 2000 H.7: Display Menu 2.3: Get PIN 2.2: Card Data 1.Gomaa 2.3: Customer Info 2.

2: Card Request Data 2.1: Card 2.7a: Update Status 2.3: Customer Info 2.8: Selection Menu Copyright 2000 H.13 Sequence diagram for Validate PIN use case :ATM Customer 1: Card Reader Input «I/O device interface» :CardReaderInterface «entity» :ATMCard «state dependent control» :ATMControl «user interface» :CustomerInterface «entity» :ATM Transaction «Subsystem» :BankServer 1.Figure 19.5: Validate PIN 2.7: Display Menu 2.3: Get PIN 1.4: PIN Entered 2.1: Card Input Data 1.6[Valid]: Valid PIN 2.Gomaa .4: PIN Prompt 2: PIN Input 2.2 : Card Inserted 1.

4: PIN Entered / 2.14 Statechart for ATM Control .Figure 19.6: Valid PIN / 2. 2.7a: Update Status Waiting for Customer Choice Copyright 2000 H.7: Display Menu.Gomaa .Validate PIN use case 1.2: Card Inserted / 1.5: Validate PIN Validating PIN 2.3: Get PIN Idle Entry/ Display Welcome Waiting for PIN 2.

PIN) V6: PIN Validation Response (Status) «business logic» : PINValidation TransactionManager V2: Validate (Card Id.Validate PIN use case «subsystem» : ATMClient V1: PIN Validation Request (Card Id.Gomaa .Figure 19.15 Collaboration diagram ATM Server . PIN) V3: Card Data V4: Read (Card Id) V5: Account Numbers «entity» : DebitCard «entity» : CardAccount Copyright 2000 H.

7: Cash 3.6: Dispense Cash (Cash details) 3.4: Request Withdrawal (Transaction Details) 3.18: Card Withdrawal «I/O device Ejected Amount interface» 3.13: Interface Transaction Data «external output device» :ReceiptPrinter 3.Withdraw Funds use case «subsystem» :BankServer 3.4a.4a: Display Wait 3.Gomaa .12:Transaction Request «output device interface» :ReceiptPrinter 3.1: Customer Selection 3.11: Print Receipt 3.8: Cash Response 3.11a.3 Withdrawal Selected (Transaction details) 3.15: Receipt Printed 3.1: Cash Dispensed Prompt 3.10: Cash :CardReader «entity» Dispensed Interface :ATMCash 3.16: «state dependent Eject control» :ATMControl 3.14: Printer Output Copyright 2000 H.5: Withdrawal OK (Cash Details) «output device interface» :CashDispenser Interface «external output device» :CashDispenser 3.Figure 19.20: Card Ejected Prompt 3.11b: ACK Cash Dispensed 3.9: Dispenser Output 3.16 Collaboration diagram: ATM Client .19: Display Ejected 3.6a: Update Status (Cash Details) 3.1 : Wait Prompt 3.17: Card Reader Output «external I/O device» :CardReader 3.2: Transaction details «user interface» :Customer Interface :ATM Customer 3: Selection Input «entity» :ATM Transaction 3.11a: Display Cash Dispensed 3.

11a: Display Cash Dispensed 3.17 Sequence diagram .8: Cash Response 3.4a: Display Wait 3.Figure 19.11b: 3.16: Eject 3.13: Transaction Data 3.19: Display Ejected .20: Card Ejected Prompt Copyright 2000 H.4: Request Withdrawal 3.9: Dispenser Output 3.2: Transaction Details 3.18: Card Ejected 3.17: Card Reader Output 3.11: Print Receipt 3.6: Dispense Cash 3.14: Printer Output 3.10: Cash Dispensed 3.4a.3: Withdrawal Selected 3.12: Transaction Request 3.ATM Client Withdraw Funds use case :ATM Customer «I/Odi» :CardReaderInterface 3: Selection Input «sdc» «user interface» :ATMControl :CustomerInterface «entity» :ATM Transaction 3.15: Receipt Printed ACK Cash Dispensed 3.11a.5: Withdrawal OK 3.Gomaa 3.7: Cash Withdrawal Amount 3.6 a: Update Status 3.1: Customer Selection «odi» :Cash Dispenser Interface «entity» :ATMCash «odi» :Receipt Printer Interface «subsystem» :BankServer 3.1: Wait Prompt 3.1: Cash Dispensed Prompt 3.

4: Request Withdrawal.6: Dispense Cash.11b: ACK Cash Dispensed Dispensing Processing Withdrawal 3.16: Eject Waiting For Customer Choice 3.6a: Update Status Copyright 2000 H.11a: Display Cash Dispensed 3.10: Cash Dispensed / 3.Figure 19. 3.18: Card Ejected / 3.Withdraw Funds use case Idle Entry / Display Welcome After (Elapsed Time) [Closedown not Requested] Terminating 3.4a: Display Wait Printing 3.Gomaa . 3.3: Withdrawal Selected / 3.19: Display Ejected Ejecting 3.5: Withdrawal Ok / 3.15: Receipt Printed / 3.11: Print Receipt.18 Statechart for ATM Control . 3.

Gomaa .Amount) W2: Check Daily Limit (Card Id.Amount) W5: Account W6: Update Daily Total Data (Card Id.Withdraw Funds use case «subsystem» :ATMClient W1: Withdrawal Request (Transaction Details) W8: Withdrawal Response (Cash Details) «business logic» :WithdrawalTransaction Manager W4: Debit (Account #.19 Collaboration diagram ATM Server .Figure 19. Amount) «entity» :Account W3: Daily Limit Response W7: Log Transaction «entity» :DebitCard «entity» :TransactionLog Copyright 2000 H.

Display Wait Query Selected / Request Query. 3. Update Status Processing Transaction Query Ok / Print Receipt.2: Card Inserted / 1.Update Status Cancel / Eject.3: Get PIN Closedown Insufficient Cash / Eject After(Elapsed Time) [Closedown Requested] Idle Entry / Display Welcome After(Elapsed Time)[Closedown not Requested] Processing Customer Input Third Invalid. Display Cancel Terminating Transaction Transfer Selected / Request Transfer.6a Update Status . Stolen / Confiscate.5: Withdrawal Ok / 3.3: Withdrawal Selected / 3.6: Dispense Cash. Update Status 3. 3.4a: Display Wait Copyright 2000 H.Figure 19.4: Request Withdrawal. Display Wait Rejected / Eject. Display Apology Transfer Ok / Print Receipt.Gomaa 3.20 Top level statechart for ATM Control Closed Down Entry / Display System Down Startup 1.

7a: Update Status Waiting for Customer Choice Transfer Selected / Request Transfer.21 Statechart for ATM Control Processing Customer Input superstate 1.3: Get PIN Processing Customer Input Idle Entry/ Display Welcome Cancel / Eject.4: PIN Entered / 2. 2. 3.3: Withdrawal Selected / 3. Stolen / Confiscate.6: Valid PIN / 2.2: Card Inserted / 1.Figure 19.Gomaa .5: Validate PIN Invalid PIN / Invalid PIN Prompt.7: Display Menu. Update Status 2. Update Status Validating PIN Third Invalid. Display Cancel Waiting for PIN 2. Display Wait Copyright 2000 H.4a: Display Wait Query Selected / Request Query.4: Request Withdrawal. Display Wait 3.

5: Withdrawal Ok / 3. Display Wait Processing Transfer Rejected / Eject. Update Status Query Selected / Request Query. 3.4a: Display Wait Processing Query Processing Withdrawal 3.Figure 19.6: Dispense Cash. 3. Display Apology Transfer Ok / Print Receipt.3: Withdrawal Selected / 3.Gomaa . Display Wait 3.22 Statechart for ATM Processing Transaction superstate Processing Transaction Transfer Selected / Request Transfer. Update Status Query Ok / Print Receipt.4: Request Withdrawal.6a: Update Status Copyright 2000 H.

Gomaa .6a: Update Status 3.6: Dispense Cash.15: Receipt Printed / 3. 3.10: Cash Dispensed / 3. Update Status Query Ok / Print Receipt.Figure 19.Terminating Transaction superstate Closed Down Entry / Display System Down After(Elapsed Time)[Closedown Requested] Idle Entry / Display Welcome After(Elapsed Time)[Closedown not Requested] Terminating Transaction Terminating Cancel / Eject.19: Display Ejected Rejected / Eject.16: Eject Printing Insufficient Cash / Eject Card Confiscated / Display Confiscated 3.11b: ACK Cash Dispensed Dispensing Copyright 2000 H.11: Print Receipt.5: Withdrawal Ok / 3.18: Card Ejected / 3. Display Apology Transfer Ok / Print Receipt. Stolen / Confiscate Confiscating Ejecting 3.11a: Display Cash Dispensed 3. Display Cancel Third Invalid. 3. Update Status 3.23 Statechart for ATM Control .

24 Consolidated collaboration diagram for ATM Client subsystem «subsystem» :BankServer ATM Transactions Card Reader Input «client subsystem» :ATMClient «I/O device interface» :CardReader Interface Card Input Data «entity» :ATMCard Customer events (Transaction details) Card Data Card Request Update Transaction Status (Cash Details).Figure 19.Gomaa Transaction details Transaction Request «output device interface» :ReceiptPrinter Interface «external output device» :ReceiptPrinter . Card Confiscated Dispense Cash (Cash details) Dispenser Output «external output device» :CashDispenser Eject. Card Ejected. . Closedown Operator Input Print Receipt Receipt Printed Printer Output :Operator Display Prompts Customer Input «user interface» :CustomerInterface Customer Info. Confiscate «entity» :ATMCash Cash Added «user interface» :Operator Interface Operator Information Start Up. Update PIN Status «output device interface» :CashDispenser Interface Cash Withdrawal Amount «state dependent control» :ATMControl Cash Dispensed Cash Response Bank Responses «external I/O device» :CardReader Card Reader Output Card Inserted . Customer Selection «entity» :ATM Transaction Transaction Data Display Information :ATMCustomer Copyright 2000 H.

Gomaa «entity» Query Transaction «entity» Transfer Transaction «entity» PINValidation Transaction .Figure 19.25 Refined static model ATM Client subsystem «user interface» Customer Interface Reads Updates «device interface» CardReader Interface Notifies Controls Startup. Close «device interface» CashDispenser Interface «device interface» ReceiptPrinter Interface Dispenses «entity» ATM Card «state dependent control» ATMControl Updates «entity» «user interface» Operator Interface Replenishes Controls «entity» ATM Cash Notifies Creates ATM Transaction Reads «entity» Withdrawal Transaction Copyright 2000 H.

Figure 19. Read Account Data Debit.26 Consolidated collaboration diagram for Bank Server subsystem «subsystem» :ATMClient Bank Responses «server subsystem» :BankServer ATM Transactions PIN Validation Request «coordinator» :Bank TransactionServer Transfer Response Query Transaction Transfer Transaction Query Response «business logic» :Transfer TransactionManager Account Data Read Withdraw Response «business logic» :Query Transaction Read Manager Withdraw. Credit. Credit. Read Account Data Account Data Debit. Abort PIN Validation Response «business logic» :PINValidation TransactionManager Check. Credit. Confirm.Gomaa «entity» :SavingsAccount . Update Validate Read «business logic» :Withdrawal TransactionManager Account Data Debit. Read Log Account Data Log Log «entity» :TransactionLog Debit. Credit. Read Daily Limit Response Card Data «entity» :DebitCard Account Numbers «entity» :CardAccount «entity» :Checking Account Copyright 2000 H.

27 Subsystem design .Gomaa .Figure 19.high level collaboration diagram for Banking System «external I/O device» :CardReader cardReader Input «system» :BankingSystem customerInput cardReader Output «client subsystem» :ATMClient ATM Transactions display Information :ATMCustomer Bank Responses «server subsystem» :BankServer operator Input operator Information printer Output dispenser Output «external output device» : ReceiptPrinter :Operator «external output device» : CashDispenser Copyright 2000 H.

Gomaa .high level concurrent collaboration diagram for Banking System «external I/O device» :CardReader cardReader Input «system» :BankingSystem cardReader Output customerInput «client subsystem» :ATMClient ATMTransaction display Information :ATMCustomer bankResponse «server subsystem» :BankServer operator Input operator Information printer Output dispenser Output «external output device» : ReceiptPrinter :Operator «external output device» : CashDispenser Copyright 2000 H.28 Subsystem interfaces .Figure 19.

Gomaa Transaction details . . Customer Selection «data abstraction» :ATM Transaction Printer Output «passive output device» :ReceiptPrinter Display Information :ATMCustomer Copyright 2000 H.initial concurrent collaboration diagram for ATM Client subsystem «subsystem» :BankServer ATM Transaction Card Reader Input «client subsystem» :ATMClient «asynchronous I/O device interface» :CardReader Interface Card Input Data «data abstraction» :ATMCard bankResponse «asynchronous I/O device» :CardReader Card Reader Output Card Inserted . Closedown «data abstraction» :ATMCash Cash Added «user interface» :Operator Interface Operator Input Card Data Card Request Update Transaction Status (Cash Details). Confiscate «control clustering» :ATMController Customer events (Transaction details) Dispenser Output «passive output device» :CashDispenser Cash Withdrawal Amount Cash Response Start Up. Transaction Request Transaction Data Operator Information :Operator Display Prompts Customer Input «user interface» :CustomerInterface Customer Info.Figure 19. Card Ejected.29 Task Architecture . Card Confiscated Eject. Update PIN Status.

out fivesToDispense. out tensToDispense. cardConfiscated eject. out twentiesToDispense) «control clustering» :ATMController «data abstraction» :ATMCash addCash (in fivesAdded.Gomaa update TransactionStatus (cashDetails). cardEjected. in tensAdded. closedown read (out Card Data) Customer Input «user interface» :CustomerInterface Display Information :ATMCustomer Copyright 2000 H. out «data transactionDetails) abstraction» :ATM Transaction «user interface» :Operator Interface operator Input operator Information :Operator printer Output «passive output device» :ReceiptPrinter . display read (out transaction Prompts Data) updateCustomerInfo (cardData.Figure 19. updateCustomerSelection (in selection.30 Task Architecture . in twentiesAdded) dispenser Output «passive output device» :CashDispenser customerEvent (transactionDetails) startUp.revised concurrent collaboration diagram for ATM Client subsystem «subsystem» :BankServer ATM Transaction card Reader Input «client subsystem» :ATMClient «asynchronous I/O device interface» :CardReader Interface write (card Data) «data abstraction» :ATMCard bank Response «asynchronous I/O device» :CardReader card Reader Output cardInserted . confiscate withdrawCash (in cashAmount. PIN) . updatePINStatus (status).

cashAvailable : Integer = 0 . in twentiesAdded) + withdrawCash (in cashAmount. out transactionDetails) + updatePINStatus (status) + updateTransactionStatus (cashDetails) + read (out transaction Data) + write (in cardData) + read (out cardData) «device interface» CashDispenserInterface « device interface » ReceiptPrinterInterface «state dependent control» ATMControl + initialize ( ) + dispenseCash (in cashAmount.fives : Integer = 0 . in tensAdded. PIN) + updateCustomerSelection (in selection.cardId: String .selection: TransactionType .twenties : Integer = 0 + addCash (in fivesAdded.expirationDate : Date «data abstraction» ATMCash . out printerStatus) + processEvent (in event.31 ATMClient information hiding classes «data abstraction» ATMCard . out dispenseStatus) + initialize ( ) + printReceipt (in receiptInfo.Gomaa . out fivesToDispense. out tensToDispense.tens : Integer = 0 .Figure 19.startDate : Date .cardNumber : String .transactionId: String . out action) + currentState ( ) : State Copyright 2000 H. out twentiesToDispense) «data abstraction» ATMTransaction .PIN: String = null .transactionData:TransactionRecord + updateCustomerInfo (cardData.

Figure 19.32 Design of ATM Controller connectors receive (out cardreaderMsg) «asynchronous I/O device interface» : CardReader Interface «connector» cardReader MessageBuffer send (in ATMControlRequest) send (in cardReaderMsg) «connector» bankServerProxy send (in ATMTransaction. out bankResponse) «user interface» send (in ATMControlRequest) : OperatorInterface «connector» ATMControl MessageQ receive (out ATMControlRequest) «control clustering» : ATMController send (in ATMControlRequest) send (in displayPrompt) «user interface» : CustomerInterface receive (out displayPrompt) «connector» promptMessage Queue Copyright 2000 H.Gomaa .

out printStatus) receive (out ATMControlRequest) «coordinator» :ATM Coordinator «output device interface» :ReceiptPrinter Interface printerOutput dispenseCash (in cashAmount.Figure 19. updatePINStatus (status) «state dependent control» :ATMControl « output device interface» :CashDispenser Interface dispenserOutput Copyright 2000 H. out action) updateTransactionStatus (cashDetails).33 Detailed Software Design of ATM Controller send (in cardReaderMsg) send(in ATMTransaction. out dispenseStatus) read (out transaction Data) send (in displayPrompt) processEvent (in event. out bankResponse) «control clustering» :ATMController printReceipt (in receiptInfo.Gomaa .

Reads «entity» Savings Account Queries «entity» TransactionLog «entity» Checking Account «entity» Debit Card «entity» Card Account Owns «entity» Account Owns «entity» Customer Has Manages «entity» Bank Figure 19. Debits. Updates Debits. Credits. Reads Logs Logs Logs «business logic» WithdrawalTransaction Manager Checks. Debits. Debits.Gomaa . Validates Reads Reads Credits.Delegates to «coordinator» BankTransaction Server Delegates to «business logic» QueryTransaction Manager Reads Delegates to Delegates to «business logic» PINValidationTransaction Manager «business logic» TransferTransaction Manager Credits.34 Refined static model Bank Server subsystem Maintains «entity» ATMInfo Copyright 2000 H. Reads Credits.

Abort PIN Validation Request PIN Validation Response «business logic» :PINValidation TransactionManager Account Data Account Data Debit. Read Debit.Gomaa Debit. Confirm. Read Account Data Account Data Card Data Daily Limit Response «database wrapper» :DebitCard Validate Read Account Numbers «database wrapper» :CardAccount «database wrapper» :Checking Account Copyright 2000 H. Read «database wrapper» :Savings Account .ATM Transaction «subsystem» :ATMClient bankResponse «server subsystem» :BankServer Figure 19. Credit.35 Concurrent collaboration diagram for Bank Server subsystem «coordinator» :BankTransactionServer Transfer Transaction Query Transaction Transfer Response «business logic» :Transfer TransactionManager «business logic» :Query TransactionManager Read Read Check. Update Query Response Withdraw Response «business logic» :Withdrawal TransactionManager Withdraw. Credit. Read Account Data Account Data Log Log Log «database wrapper» :TransactionLog Debit. Credit. Credit.

in PIN. amount) + abort (accountNumber.Figure 19. amount) + initialize ( ) + validatePIN (in cardId. out q_response) «database wrapper» TransactionLog + read (out transaction ) + log (in transaction ) Copyright 2000 H. out t_response) + initialize ( ) + query (in accountNumber. out v_response) + initialize ( ) + transfer ( in fromAccountNumber. in amount. in amount. out w_response) + confirm (accountNumber.Gomaa .36a Bank Server information hiding classes «business logic» WithdrawalTransactionManager «business logic» PINValidationTransactionManager «business logic» TransferTransactionManager «business logic» QueryTransactionManager + initialize ( ) + withdraw (in accountNumber. in toAccountNumber.

out limit.Figure 19. PIN) + updatePIN (cardId. amount) + updateExpirationDate (cardId. in accountNumber) Copyright 2000 H. expirationDate) + updateCardStatus (cardId. out PIN. PIN) + checkDailyLimit (cardId.36b Bank Server information hiding classes «database wrapper» DebitCard «database wrapper» CardAccount + create (cardId) + validate (cardId. out expirationDate. out total) + delete (cardId) + read ( in cardId. amount) + updateDailyTotal (cardId.Gomaa . out accountNumber) + update (in cardId. newLimit) + clearTotal (cardId) + read (in cardId. out status. status) + updateDailyLimit (cardId.

amount) + open (accountNumber) + close (accountNumber) «database wrapper» CheckingAccount «database wrapper» SavingsAccount + readLastDepositAmount (accountNumber) : Real + addInterest (accountNumber.36c Bank Server information hiding classes «database wrapper» Account + readBalance (accountNumber): Real + credit (accountNumber. interestRate) + readCumulativeInterest (accountNumber) : Real Copyright 2000 H.Figure 19. amount) + debit (accountNumber.Gomaa .

amount). out t_response) query (in account#. amount). updateDailyTotal (cardId. amount). readCumulativeInterest «business logic» :PINValidation TransactionManager readBalance.architecture «server subsystem» :BankServer «coordinator» :BankTransaction Server transfer (in fromAccount#. in amount. in amount. credit (account#. readBalance log (in transaction) «database wrapper» :Checking Account Copyright 2000 H. amount).Gomaa debit (account#. readBalance log (in transaction) checkDailyLimit (cardId. readLastDepositAmount debit (account#. amount). amount). credit (account#. out account#) log (in transaction) debit (account#. amount) validatePIN (in cardId. in toAccount#. amount) validate (cardId. credit (account#. PIN) read (in cardId. abort (account#.«subsystem» :ATMClient ATM Transaction bankResponse Figure 19.37 Concurrent collaboration diagram for Bank Server subsystem. «database readBalance wrapper» :TransactionLog «database wrapper» :Savings Account «database wrapper» :DebitCard «database wrapper» :CardAccount . readBalance debit (account#. out w_response). amount). amount). in PIN. out v_response) «business logic» :TransferTransaction Manager «business logic» :QueryTransaction Manager «business logic» :Withdrawal TransactionManager readBalance. amount). out q_response) withdraw (in account#. amount). confirm (account#. credit (account#.

Figure 19.38 Deployment diagram for Banking System :ATMClient {1 node per ATM} «wide area network» :BankServer {1 node} Copyright 2000 H.Gomaa .