Beruflich Dokumente
Kultur Dokumente
Query Account
include
Validate PIN
include
ATM Customer
Startup
Shutdown
Operator
Figure 19.2 Conceptual static model for Banking System - Problem Domain
1
Bank Has
1..*
ATM
Maintains ATM
Operator
1
ATMCustomer
1
CardReader
1
CashDispenser
1
ReceiptPrinter
1 Reads 1
ATMCard
1 Dispenses 1
ATMCash
1 Prints 1
Receipt
1..*
Inputs To Outputs To
1 1
Operator
1 1
Outputs To
1 1 1
Interacts With
1..*
Outputs To
1..*
Figure 19.4 Conceptual static model for Banking System - entity classes
entity Bank
1 1
Maintains
1..*
entity ATMInfo
Manages
Has Identifies
1..*
Owns entity Customer Provides 1..* Access to Owns
1..*
1..* 1,2
Modifies
* *
entity ATMTransaction
entity Account
entity CheckingAccount
lastDepositAmount: Real
interest: Real
entity ATMCash cashAvailable: Integer fives: Integer tens: Integer twenties: Integer
1 1
include
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
Operator
entity output device interface ReceiptPrinter Interface ATMTransaction user interface entity ATMCard output device interface CashDispenser Interface CustomerInterface
entity ATMCash
Figure 19.12 Collaboration diagram: ATM Client - Validate PIN use case
subsystem :BankServer
1.2: Card Inserted 2.5: Validate PIN (Customer Info) 2.6 [Valid]: Valid PIN
entity :ATMCard 2.4: PIN Entered (Customer Info) 1.3: Get PIN 2.2: Card Data 1.4: Pin Prompt 2.8: Selection Menu 2: PIN Input :ATMCustomer
Copyright 2000 H.Gomaa
entity :ATMTransaction
1.1: Card Input Data 1.2 : Card Inserted 1.3: Get PIN
1.4: PIN Prompt 2: PIN Input 2.1: Card 2.2: Card Request Data 2.3: Customer Info 2.4: PIN Entered 2.5: Validate PIN 2.6[Valid]: Valid PIN 2.7: Display Menu 2.7a: Update Status 2.8: Selection Menu
Figure 19.14 Statechart for ATM Control - Validate PIN use case
1.2: Card Inserted / 1.3: Get PIN
Idle
Entry/ Display Welcome
Waiting for PIN 2.4: PIN Entered / 2.5: Validate PIN Validating PIN
2.6: Valid PIN / 2.7: Display Menu, 2.7a: Update Status Waiting for Customer Choice
Figure 19.15 Collaboration diagram ATM Server - Validate PIN use case
subsystem : ATMClient V1: PIN Validation Request (Card Id, PIN) V6: PIN Validation Response (Status)
entity : DebitCard
entity : CardAccount
Figure 19.16 Collaboration diagram: ATM Client - Withdraw Funds use case
subsystem :BankServer 3.4: Request Withdrawal (Transaction Details) 3.11b: ACK Cash Dispensed 3.5: Withdrawal OK (Cash Details) output device interface :CashDispenser Interface external output device :CashDispenser
3.6: Dispense Cash (Cash details) 3.7: Cash 3.8: Cash Response 3.18: Card Withdrawal I/O device Ejected Amount interface 3.10: Cash :CardReader entity Dispensed Interface :ATMCash 3.16: state dependent Eject control :ATMControl 3.3 Withdrawal Selected (Transaction details) 3.15: Receipt Printed 3.6a: Update Status (Cash Details) 3.11: Print Receipt
3.4a.1 : Wait Prompt 3.11a.1: Cash Dispensed Prompt 3.20: Card Ejected Prompt
3.4a: Display Wait 3.11a: Display Cash Dispensed 3.19: Display Ejected 3.1: Customer Selection 3.2: Transaction details
3.12:Transaction Request output device interface :ReceiptPrinter 3.13: Interface Transaction Data
Figure 19.17 Sequence diagram - ATM Client Withdraw Funds use case
:ATM Customer
entity :ATMCash
subsystem :BankServer
3.2: Transaction Details 3.3: Withdrawal Selected 3.4: Request Withdrawal 3.4a: Display Wait 3.4a.1: Wait Prompt 3.5: Withdrawal OK 3.6: Dispense Cash 3.6 a: Update Status 3.7: Cash Withdrawal Amount 3.8: Cash Response 3.9: Dispenser Output 3.10: Cash Dispensed 3.11: Print Receipt 3.11a: Display Cash Dispensed 3.11b: 3.11a.1: Cash Dispensed Prompt 3.14: Printer Output 3.17: Card Reader Output 3.16: Eject 3.15: Receipt Printed
Figure 19.18 Statechart for ATM Control - Withdraw Funds use case
Idle
Entry / Display Welcome After (Elapsed Time) [Closedown not Requested]
Terminating 3.18: Card Ejected / 3.19: Display Ejected Ejecting 3.15: Receipt Printed / 3.16: Eject Waiting For Customer Choice 3.3: Withdrawal Selected / 3.4: Request Withdrawal, 3.4a: Display Wait Printing
3.10: Cash Dispensed / 3.11: Print Receipt, 3.11a: Display Cash Dispensed 3.11b: ACK Cash Dispensed Dispensing
Processing Withdrawal
Figure 19.19 Collaboration diagram ATM Server - Withdraw Funds use case
subsystem :ATMClient W1: Withdrawal Request (Transaction Details) W8: Withdrawal Response (Cash Details)
business logic :WithdrawalTransaction Manager W4: Debit (Account #,Amount) W2: Check Daily Limit (Card Id,Amount)
W5: Account W6: Update Daily Total Data (Card Id, Amount) entity :Account
entity :DebitCard
entity :TransactionLog
Closed Down
Entry / Display System Down Startup 1.2: Card Inserted / 1.3: Get PIN Closedown
Idle
Entry / Display Welcome After(Elapsed Time)[Closedown not Requested]
Terminating Transaction
Transfer Selected / Request Transfer, Display Wait Query Selected / Request Query, Display Wait
Rejected / Eject, Display Apology Transfer Ok / Print Receipt, Update Status Processing Transaction Query Ok / Print Receipt, Update Status
Figure 19.21 Statechart for ATM Control Processing Customer Input superstate
1.2: Card Inserted / 1.3: Get PIN Processing Customer Input
Idle
Entry/ Display Welcome Cancel / Eject, Display Cancel
Waiting for PIN 2.4: PIN Entered / 2.5: Validate PIN Invalid PIN / Invalid PIN Prompt, Update Status
Validating PIN
2.6: Valid PIN / 2.7: Display Menu, 2.7a: Update Status Waiting for Customer Choice Transfer Selected / Request Transfer, Display Wait
Processing Transaction Transfer Selected / Request Transfer, Display Wait Processing Transfer
Transfer Ok / Print Receipt, Update Status Query Ok / Print Receipt, Update Status
Query Selected / Request Query, Display Wait 3.3: Withdrawal Selected / 3.4: Request Withdrawal, 3.4a: Display Wait
Processing Query
Processing Withdrawal
Idle
Entry / Display Welcome
Terminating Transaction Terminating Cancel / Eject, Display Cancel Third Invalid, Stolen / Confiscate Confiscating Ejecting 3.15: Receipt Printed / 3.16: Eject Printing Insufficient Cash / Eject Card Confiscated / Display Confiscated 3.18: Card Ejected / 3.19: Display Ejected
Transfer Ok / Print Receipt, Update Status Query Ok / Print Receipt, Update Status 3.5: Withdrawal Ok / 3.6: Dispense Cash, 3.6a: Update Status
3.10: Cash Dispensed / 3.11: Print Receipt, 3.11a: Display Cash Dispensed 3.11b: ACK Cash Dispensed Dispensing
Eject, Confiscate
entity :ATMCash Cash Added user interface :Operator Interface Operator Information
:Operator
Transaction Data
Transaction details
Transaction Request
Notifies
Creates
ATM Transaction
Reads
Transfer Response
Query Response
Account Data
Read
PIN Validation Response business logic :PINValidation TransactionManager Check, Update Validate Read
Account Data
Account Data
Debit, Credit, Read Daily Limit Response Card Data entity :DebitCard Account Numbers entity :CardAccount
entity :SavingsAccount
Figure 19.27 Subsystem design - high level collaboration diagram for Banking System
external I/O device :CardReader cardReader Input system :BankingSystem customerInput
cardReader Output
ATM Transactions
display Information
:ATMCustomer
Bank Responses
operator Input
operator Information
printer Output
dispenser Output
Figure 19.28 Subsystem interfaces - high level concurrent collaboration diagram for Banking System
external I/O device :CardReader cardReader Input system :BankingSystem
cardReader Output
customerInput
ATMTransaction
display Information
:ATMCustomer
bankResponse
operator Input
operator Information
printer Output
dispenser Output
Figure 19.29 Task Architecture - 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
Card Inserted , Card Ejected, Card Confiscated Eject, Confiscate control clustering :ATMController Customer events (Transaction details)
data abstraction :ATMCash Cash Added user interface :Operator Interface Operator Input
Card Data
Card Request Update Transaction Status (Cash Details), Update PIN Status, Transaction Request Transaction Data
Printer Output
Transaction details
Figure 19.30 Task Architecture - 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
withdrawCash (in cashAmount, out fivesToDispense, out tensToDispense, out twentiesToDispense) control clustering :ATMController data abstraction :ATMCash
addCash (in fivesAdded, in tensAdded, in twentiesAdded)
customerEvent (transactionDetails)
startUp, closedown
Customer Input
update TransactionStatus (cashDetails), updatePINStatus (status), display read (out transaction Prompts Data) updateCustomerInfo (cardData, PIN) , updateCustomerSelection (in selection, out data transactionDetails) abstraction :ATM Transaction
operator Input
printer Output
Figure 19.31 ATMClient information hiding classes data abstraction ATMCard - cardNumber : String - startDate : Date - expirationDate : Date data abstraction ATMCash - cashAvailable : Integer = 0 - fives : Integer = 0 - tens : Integer = 0 - twenties : Integer = 0
+ addCash (in fivesAdded, in tensAdded, in twentiesAdded) + withdrawCash (in cashAmount, out fivesToDispense, out tensToDispense, out twentiesToDispense)
connector bankServerProxy
send (in ATMControlRequest) send (in displayPrompt) user interface : CustomerInterface receive (out displayPrompt) connector promptMessage Queue
printerOutput
dispenserOutput
Delegates to
coordinator BankTransaction Server Delegates to business logic QueryTransaction Manager Reads Delegates to
Checks, Credits, Updates Debits, Reads Credits, Debits, Validates Reads Reads Credits, Debits, Reads entity Savings Account
Queries
entity TransactionLog
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, Confirm, Abort PIN Validation Request
Account Data
Account Data Log Log Log database wrapper :TransactionLog Debit, Credit, Read
Account Data
+ initialize ( ) + withdraw (in accountNumber, in amount, out w_response) + confirm (accountNumber, amount) + abort (accountNumber, amount)
database wrapper DebitCard database wrapper CardAccount + create (cardId) + validate (cardId, PIN) + updatePIN (cardId, PIN) + checkDailyLimit (cardId, amount) + updateDailyTotal (cardId, amount) + updateExpirationDate (cardId, expirationDate) + updateCardStatus (cardId, status) + updateDailyLimit (cardId, newLimit) + clearTotal (cardId) + read (in cardId, out PIN, out expirationDate, out status, out limit, out total) + delete (cardId)
Figure 19.36c Bank Server information hiding classes database wrapper Account
+ readBalance (accountNumber): Real + credit (accountNumber, amount) + debit (accountNumber, amount) + open (accountNumber) + close (accountNumber)
subsystem :ATMClient
Figure 19.37 Concurrent collaboration diagram for Bank Server subsystem- architecture
coordinator :BankTransaction Server transfer (in fromAccount#, in toAccount#, in amount, out t_response) query (in account#, out q_response)
withdraw (in account#, in amount, out w_response), confirm (account#, amount), abort (account#, amount)
debit (account#, amount), credit (account#, amount), readBalance log (in transaction) checkDailyLimit (cardId, amount), updateDailyTotal (cardId, amount)
log (in transaction) debit (account#, amount), credit (account#, amount), readBalance
debit (account#, amount), credit (account#, amount), database readBalance wrapper :TransactionLog
:BankServer {1 node}