Upload
-
View
216
Download
0
Embed Size (px)
Citation preview
7/29/2019 ATM_Design.pdf atm design
1/40
ATM System use case model
ATMCustomer
Withdraw
Funds
Query
Account
TransferFunds
Add Cash
Startup
ShutdownOperator
Validate
PIN
include
include
include
7/29/2019 ATM_Design.pdf atm design
2/40
Conceptual static model
for ATM System - Problem Domain
ReceiptPrinterCashDispenserCardReaderATMCustomer
ATM
ATMCashATMCard
DispensesReads
1 1
ATMBankHas 1..*
Receipt
Prints
1
1
Maintains
1 1 1
1 1
1 1 1 1
Operator
7/29/2019 ATM_Design.pdf atm design
3/40
ATM System context diagram
system
Banking
System
external user
Operatorexternal user
ATMCustomer
CashDispenser
external output
device
ReceiptPrinter
external output
device
external I/O
device
CardReader
1
1
1
1
1
1..*
1..*
1..*
1..*
1
1
ATMCustomer
Operator
1..*1
1
1
1
1
Inputs
To
Outputs
To
Interacts
With
Outputs
To
InteractsWith
Outputs
To
7/29/2019 ATM_Design.pdf atm design
4/40
Conceptual static model
for ATM System - entity classes
entity
Savings
Account
entity
Checking
Account
entity
Customer
entity
Bank
entity
DebitCard
entity
ATMTransaction
entity
TransferTransaction
entity
QueryTransaction
entity
WithdrawalTransaction
Modifies
Owns
Manages
entity
Account
Has
entity
CardAccount
1..*
1..*
0..11..*
*
1..*
* 1..*
entity
PINValidationTransaction
11
entity
ATMInfo
Owns
Identifies
1
*
Maintains
1,2
Provides
Access to
1 1..*
7/29/2019 ATM_Design.pdf atm design
5/40
entity
Bank
bankName: String
bankAddress: String
entity
Customer
customerName: String
customerId: String
customerAddress: String
entity
DebitCard
cardId: String
PIN: StringstartDate: Date
expirationDate: Date
status:Integer
limit: Real
total: Real
entity
Account
accountNumber: String
balance: Real
entity
CheckingAccount
lastDepositAmount: Real
entity
SavingsAccount
interest: Real
Conceptual static model for ATM System
7/29/2019 ATM_Design.pdf atm design
6/40
entity
PINValidationTransaction
startDate: Date
expirationDate: Date
entity
ATMTransaction
transactionId: String
cardId: StringPIN: String
date: Date
time: Time
status: Integer
entity
WithdrawalTransaction
accountNumber: String
amount: Real
balance: Real
entity
QueryTransaction
accountNumber: String
balance: Real
lastDepositAmount: Real
entity
TransferTransaction
fromAccountNumber: String
toAccountNumber: String
amount: Real
Conceptual static model for ATM System
7/29/2019 ATM_Design.pdf atm design
7/40
entity
CardAccount
cardId: StringaccountNumber: String
entity
ATMInfo
ATMId: StringATMLocation: String
ATMAddress: String
Conceptual static model for ATM System
entity
ATMCash
cashAvailable: Integer
fives: Integer
tens: Integer
twenties: Integer
entity
ATMCard
cardId: String
startDate: Date
expirationDate: Date
7/29/2019 ATM_Design.pdf atm design
8/40
system
BankingSystem
subsystemATMClient
Subsystem
subsystemBankServer
Subsystem
1..* 1
external user
ATMCustomer
external user
Operator
external output
deviceReceiptPrinter
external input/ output
device
CardReader
external output
device
CashDispenser
1
1
1
1
1
11
1
1
1
ATM System - major subsystems
7/29/2019 ATM_Design.pdf atm design
9/40
ATM Subsystem Packaging of Use Cases
Server
Withdraw
Funds
Server
Query
Account
Server
Transfer
Funds
Server
Validate PIN
subsystem
ATMServerSubsystem
Client
Withdraw
Funds
Client
Query
Account
Client
Transfer
Funds
Client
Validate PIN
subsystem
ATMClientSubsystem
include
include
include
include
include
include
include
Add Cash
Startup
Shutdown
ATM S t t l l d i t f l
7/29/2019 ATM_Design.pdf atm design
10/40
system
BankingSystem
external user
Operator
external user
ATMCustomer
CashDispenser
external output
device
ReceiptPrinter
external output
device
external input/ output
device
CardReader
input/output device
interface
CardReader
Interface
ReceiptPrinter
Interface
output device
interface
user interface
CustomerInterface
CashDispenser
Interface
output device
interface
user interface
OperatorInterface
1
1
1
1
1
1 1
1 1
1
1 1
1
1 1
1
1
ATMCustomer
Operator
ATM System external classes and interface classes
7/29/2019 ATM_Design.pdf atm design
11/40
subsystem
ATMClient
Subsystem
user interface
OperatorInterface
user interface
CustomerInterface
CashDispenser
Interface
output device
interface
ReceiptPrinter
Interface
output deviceinterface
I/O device interface
CardReaderInterface
state dependent
control
ATMControl
entity
ATMTransaction
entity
ATMCard
entity
ATMCash
ATM Client subsystem classes
7/29/2019 ATM_Design.pdf atm design
12/40
Collaboration diagram:
ATM Client - Validate PIN use case
:CardReaderInterface
2.1: Card Request2.2: CardData
1.4: Pin Prompt
2: PIN Input
2.5: Validate PIN
(Customer Info)2.6 [Valid]:
Valid PIN
1: Card
Reader
Input
1.1: Card
Input Data
2.3: Customer Info
1.2: Card Inserted
2.4: PIN Entered
(Customer Info)
1.3: Get PIN
:ATMCard
:CustomerInterface :ATMTransaction
:ATMControl
2.7: Display
Menu
2.8: Selection Menu
2.7a: Update
Status
I/O device
interface
external I/O
device
:CardReader
entity
user interfaceentity
state dependent
control
subsystem
:BankServer
:ATMCustomer
Sequence diagram for Validate PIN use case
7/29/2019 ATM_Design.pdf atm design
13/40
1.2 : Card Inserted
1.1: Card
Input Data
1.4: PIN Prompt
2: PIN Input
2.1: Card Request
2.2: Card Data
2.3: Customer Info2.4: PIN
Entered
2.5: Validate PIN
2.6[Valid]: Valid PIN
2.7: Display Menu
2.8: Selection Menu
1.3: Get PIN
1: CardReader Input
2.7a: Update Status
I/O device interface
:CardReaderInterface
entity
:ATMCardSubsystem
:BankServer
state dependent
control
:ATMControl
:ATM
Customer
Sequence diagram for Validate PIN use case
user interface
:CustomerInterface
entity
:ATM
Transaction
7/29/2019 ATM_Design.pdf atm design
14/40
Waiting
for PIN
Validating PIN
Waiting for
Customer Choice
1.2: Card Inserted /1.3: Get PIN
2.6: Valid PIN /
2.7: Display Menu,
2.7a: Update Status
2.4: PIN Entered /
2.5: Validate PIN
IdleEntry/ Display
Welcome
Statechart for ATM Control - Validate PIN use case
7/29/2019 ATM_Design.pdf atm design
15/40
Collaboration diagram
ATM Server - Validate PIN use case
: PINValidation
TransactionManager
: DebitCard : CardAccount
PIN
Validation
Response (Status)
V1: PIN
Validation
Request(Card Id, PIN)
V2:
Validate
(Card Id, PIN)
V3:
Card
Data V4:
Read(Card Id)
V5:
Account
Numbers
V6:
subsystem
: ATMClient
business logic
entity entity
7/29/2019 ATM_Design.pdf atm design
16/40
Sequence diagram - ATM Client Withdraw Funds use case
7/29/2019 ATM_Design.pdf atm design
17/40
3.3: Withdrawal Selected
3.4: Request Withdrawal
3.6: Dispense Cash
3.7: Cash Withdrawal Amount
3.9: Dispenser Output
3.10: Cash Dispensed
3.11: Print Receipt
3.12: Transaction RequestTransaction Data
Printer Output
Receipt PrintedEject
3.18: Card Ejected
Card Reader Output
3.8: Cash Response
3.19: Display Ejected
3.13:
3.14:
3.15:3.16:3.17:
3.4a: Display Wait
3.11a: Display Cash Dispensed
3.4a.1: Wait Prompt
3.11a.1: Cash Dispensed Prompt
3.20: Card Ejected Prompt
Transaction Details3.2:
3.6 a:
3.5: Withdrawal OK
Update Status
3.11b: ACK Cash Dispensed
q g
3.1: Customer Selection3: Selection Input
I/Odi
:CardReaderInterface
odi
:Cash
Dispenser
Interface
entity
:ATMCash
odi
:Receipt
Printer
Interface
subsystem
:BankServer
sdc
:ATMControl
user interface
:CustomerInterface
entity
:ATM
Transaction
:ATM
Customer
7/29/2019 ATM_Design.pdf atm design
18/40
Dispensing
Printing
Ejecting
Terminating
3.18: Card Ejected /
3.19: Display Ejected
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
3.15: Receipt Printed /
3.16: Eject
After (Elapsed Time) [Closedown not Requested]IdleEntry / Display
Welcome
Statechart for ATM Control - Withdraw Funds use case
Waiting For
Customer Choice
Processing
Withdrawal
3.3: Withdrawal Selected /3.4: Request Withdrawal,
3.4a: Display Wait
7/29/2019 ATM_Design.pdf atm design
19/40
Collaboration diagram
ATM Server - Withdraw Funds use case
W6: Update
Daily Total
(Card Id, Amount)
business logic
:WithdrawalTransaction
Manager
entity
:Account
entity
:DebitCard
entity
:TransactionLog
W1: Withdrawal Request
(Transaction Details)
W4: Debit(Account #,Amount)
W5: Account
Data
W7: Log TransactionW3:
Daily Limit
Response
W8: Withdrawal
Response (Cash Details)
W2: CheckDaily Limit
(Card Id,Amount)
subsystem
:ATMClient
7/29/2019 ATM_Design.pdf atm design
20/40
Processing
Transaction
Terminating
Transaction
3.3: Withdrawal Selected /3.4: Request Withdrawal,
3.4a: Display Wait
Transfer Selected /
Request Transfer,
Display Wait
Query Selected /
Request Query,
Display Wait
Transfer Ok /Print Receipt, Update Status
Query Ok / Print Receipt, Update Status
3.5: Withdrawal Ok /
3.6: Dispense Cash,
3.6a Update Status
Rejected /
Eject,
Display Apology
Cancel / Eject, Display Cancel
Third Invalid, Stolen / Confiscate,Update Status
1.2: Card Inserted /
1.3: Get PIN IdleEntry / Display
WelcomeAfter(Elapsed Time)[Closedown not Requested]
Closed DownEntry / Display
System Down
StartupClosedown
After(Elapsed Time) [Closedown Requested]
Insufficient Cash /Eject
Top level statechart for ATM Control
Processing
Customer
Input
7/29/2019 ATM_Design.pdf atm design
21/40
Waiting
for PIN
Validating PIN
Waiting for
Customer Choice
1.2: Card Inserted /1.3: Get PIN
Cancel / Eject,
Display Cancel
Invalid PIN /
Invalid PIN Prompt,
Update Status
2.6: Valid PIN /
2.7: Display Menu,
2.7a: Update Status
2.4: PIN Entered /
2.5: Validate PIN
Third Invalid, Stolen / Confiscate,
Update Status
Transfer Selected / Request Transfer,
Display Wait
3.3: Withdrawal Selected /
3.4: Request Withdrawal,
3.4a: Display Wait
Query Selected /
Request Query,
Display Wait
IdleEntry/ Display
Welcome
Statechart for ATM Control -
Processing Customer Input superstate
Processing Customer
Input
7/29/2019 ATM_Design.pdf atm design
22/40
Statechart for ATM Control - Terminating Transaction superstate
7/29/2019 ATM_Design.pdf atm design
23/40
Confiscating
Dispensing
Printing
Ejecting
Terminating
3.18: Card Ejected /
3.19: Display Ejected
Rejected / Eject, Display Apology
3.5: Withdrawal Ok /
3.6: Dispense Cash,
3.6a: Update Status
Query Ok /
Print Receipt,
Update Status
Transfer Ok /Print Receipt,
Update Status 3.10: Cash Dispensed /
3.11: Print Receipt,
3.11a: Display Cash Dispensed
3.11b: ACK Cash Dispensed
3.15: Receipt Printed /
3.16: Eject
Card Confiscated /
Display Confiscated
After(Elapsed Time)[Closedown not Requested]
Third Invalid, Stolen / Confiscate
Cancel / Eject, Display Cancel
Insufficient Cash /
Eject
After(Elapsed Time)[Closedown Requested]
IdleEntry / Display
Welcome
Closed DownEntry / Display
System Down
Terminating Transaction
Statechart for ATM Control - Terminating Transaction superstate
7/29/2019 ATM_Design.pdf atm design
24/40
7/29/2019 ATM_Design.pdf atm design
25/40
user interface
Customer
Interface
device interface
CardReader
Interface
device interface
CashDispenser
Interface
device interface
ReceiptPrinter
Interface
entity
ATM
Cash
entity
ATM Card
entity
ATM
Transaction
entity
TransferTransaction
entity
QueryTransaction
entity
WithdrawalTransaction
entity
PINValidationTransaction
Reads Updates Notifies Controls Dispenses
state
dependent
control
ATMControlReplenishes
Notifies
ReadsCreates
Controls
Startup,
Close user interface
Operator
Interface
Refined static model -
ATM Client subsystem
Updates
Consolidated collaboration diagram for Bank Server subsystem
7/29/2019 ATM_Design.pdf atm design
26/40
coordinator
:Bank
TransactionServer
business logic
:PINValidation
TransactionManager
business logic
:Query
Transaction
Manager
business logic
:TransferTransactionManager
entity
:CheckingAccount
entity
:DebitCard
ATM
Transactions
Bank
Responses
Transfer
ResponseTransfer
Transaction
QueryTransaction
QueryResponse
Withdraw
Response
Withdraw,Confirm,
Abort
PIN Validation
Request
PIN Validation
Response
Card
Data
Validate
Account
Data
Account
Data
business logic
:WithdrawalTransactionManager
entity
:SavingsAccount
Read
AccountData
entity
:TransactionLog
Daily
Limit
Response
Check,
Update
Log
Log
Log
Debit,
Credit,Read
entity
:CardAccount
Read
Account
Numbers
Account
Data
ReadAccount
Data
Account
Data
subsystem
:ATMClient
server subsystem
:BankServer
Debit,
Credit,
Read
Debit,
Credit,
Read
Debit,
Credit,Read
Subsystem design high level collaboration diagram
7/29/2019 ATM_Design.pdf atm design
27/40
Subsystem design - high level collaboration diagram
for ATM System
client
subsystem
:ATMClient
server
subsystem
:BankServer
ATM Transactions
display
Information
printer
Output
dispenser
Output
cardReader
InputcardReader
Output
customerInput
Bank Responses
operator
Input operatorInformation
external I/O device:CardReader
external output device
: CashDispenser
external output device
: ReceiptPrinter
system
:BankingSystem
:ATMCustomer
:Operator
Subsystem interfaces high level concurrent collaboration diagram
7/29/2019 ATM_Design.pdf atm design
28/40
Subsystem interfaces - high level concurrent collaboration diagram
for ATM System
ATMTransaction
display
Information
printer
Output
dispenser
Output
cardReader
InputcardReader
Output
customerInput
bankResponse
operator
Input operatorInformation
external I/O device
:CardReader
system:BankingSystem
client
subsystem
:ATMClient
server
subsystem
:BankServer
external output device
: CashDispenser
external output device
: ReceiptPrinter
:ATMCustomer
:Operator
b t
Task Architecture - initial concurrent collaboration diagram for ATM Client subsystem
7/29/2019 ATM_Design.pdf atm design
29/40
asynchronous
I/O device
interface
:CardReader
Interface
user interface
:CustomerInterface
control
clustering
:ATMController
user interface
:Operator
Interface
data
abstraction
:ATM
Transaction
Customer
Input
ATM
Transaction
bankResponse
Card
Reader
Output
Customer Info. ,
Customer Selection
Cash
Response
Cash
Withdrawal
Amount
Card Inserted , Card Ejected,
Card Confiscated
Eject,
Confiscate
Dispenser
Output
Printer
Output
Transaction details
Update
Transaction Status
(Cash Details),
Update PIN Status,Transaction Request
Transaction
Data
Customer events
(Transaction details)
Display
Information
DisplayPrompts
data
abstraction
:ATMCard
Card
Reader
Input
Card
Input
Data
Card
Request
Card
Data
data abstraction
:ATMCash
Cash
AddedStart Up,Closedown
Operator
Input
Operator
Information
subsystem
:BankServer
:Operator
:ATMCustomer
passive output
device
:ReceiptPrinter
passive output
device
:CashDispenser
client subsystem:ATMClient
asynchronous
I/O device
:CardReader
subsystem
Task Architecture - revised concurrent collaboration diagram for ATM Client subsystem
7/29/2019 ATM_Design.pdf atm design
30/40
asynchronous
I/O device
interface
:CardReader
Interface
user interface
:CustomerInterface
control
clustering
:ATMController
user interface
:Operator
Interface
data
abstraction
:ATMTransaction
Customer
Input
ATM
Transaction
bank
Response
card
Reader
Output
updateCustomerInfo
(cardData, PIN) ,
updateCustomerSelection
(in selection, out
transactionDetails)
withdrawCash
(in cashAmount,
out fivesToDispense,
out tensToDispense,
out twentiesToDispense)
cardInserted , cardEjected,
cardConfiscated
eject,
confiscate
dispenser
Output
printer
Output
update
TransactionStatus
(cashDetails),
updatePINStatus
(status),read (out transaction
Data)
customerEvent(transactionDetails)
Display
Information
displayPrompts
data
abstraction
:ATMCard
card
Reader
Input
write
(card
Data)
read (out
Card
Data)
data abstraction
:ATMCash
addCash
(in fivesAdded,in tensAdded,
in twentiesAdded)startUp,
closedownoperator
Input
operator
Information
subsystem
:BankServer
:Operator
:ATMCustomer
passive output
device:ReceiptPrinter
passive output
device
:CashDispenser
client subsystem
:ATMClient
asynchronous
I/O device
:CardReader
ATMClient information hiding classes
7/29/2019 ATM_Design.pdf atm design
31/40
data abstraction
ATMCard
- cardNumber : String
- startDate : Date
- expirationDate : Date
+ write (in cardData)
+ read (out cardData)
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)
data abstraction
ATMTransaction
device interface
CashDispenserInterface
+ initialize ( )
+ dispenseCash (in cashAmount,
out dispenseStatus)
device interface
ReceiptPrinterInterface
+ initialize ( )
+ printReceipt (in receiptInfo,
outprinterStatus)
state dependent control
ATMControl
+ processEvent (in event, out action)+ currentState ( ) : State
+ updateCustomerInfo (cardData, PIN)
+ updateCustomerSelection (in selection,
out transactionDetails)
+ updatePINStatus (status)
+ updateTransactionStatus (cashDetails)
+ read(out transaction Data)
- transactionId: String- cardId: String
- PIN: String = null
- selection: TransactionType
- transactionData:TransactionRecord
Design of ATM Controller connectors
7/29/2019 ATM_Design.pdf atm design
32/40
g
connector
ATMControl
MessageQ
control
clustering
: ATMController
connectorbankServerProxyconnector
cardReader
MessageBuffer
asynchronous I/O
device interface
: CardReader
Interface
user interface
: OperatorInterface
user interface
: CustomerInterfaceconnector
promptMessage
Queue
receive (out cardreaderMsg)
send (in ATMControlRequest)
send (in ATMControlRequest)
send (in ATMControlRequest)
receive (out displayPrompt)
send (in
displayPrompt)
receive(out ATMControlRequest)
send
(in cardReaderMsg)
send (in ATMTransaction,
outbankResponse)
7/29/2019 ATM_Design.pdf atm design
33/40
output device
interface
:ReceiptPrinter
Interface
output device
interface:CashDispenser
Interface
coordinator
:ATM
Coordinator
printReceipt (in
receiptInfo, out
printStatus)
receive
(out ATMControlRequest)
dispenseCash (in
cashAmount, out
dispenseStatus)
control clustering:ATMController
state dependent
control
:ATMControl
processEvent (in event,
out action)
printerOutput
dispenserOutput
Detailed Software Design of ATM Controller
send(in ATMTransaction,
outbankResponse)
send(in displayPrompt)
send (in cardReaderMsg)
updateTransactionStatus
(cashDetails),
updatePINStatus (status)
read (out transaction
Data)
coordinator
BankTransaction
7/29/2019 ATM_Design.pdf atm design
34/40
business logic
TransferTransaction
Manager
business logic
QueryTransaction
Manager
business logic
WithdrawalTransaction
Manager
business logic
PINValidationTransaction
Manager
entity
TransactionLog
entity
Checking
Account
entity
Savings
Account
entity
Debit Card
entity
Card
Account
entity
Account
entity
Customer
entity
Bank
entityATMInfo
Delegates
toDelegates
toDelegates
to
Delegates
to
Logs
Credits,Debits,Reads
Checks,
Updates
Validates
Queries
Owns Has
Owns Manages
LogsLogs
Reads
Reads
MaintainsRefined static model -
Bank Server subsystem
BankTransaction
Server
Credits,Debits,Reads
Credits,Debits,Reads Credits,
Debits,Reads
Concurrent collaboration diagram
f S
ATMTransaction
subsystem
:ATMClient
7/29/2019 ATM_Design.pdf atm design
35/40
for Bank Server subsystem
coordinator
:BankTransactionServer
business logic
:PINValidationTransactionManager
business logic
:QueryTransactionManager
business logic
:TransferTransactionManager
database
wrapper
:Checking
Account
databasewrapper
:DebitCard
bankResponse
Transfer
Response
Transfer
Transaction
Query
TransactionQuery
Response
Withdraw
Response
Withdraw,
Confirm,
Abort
PIN Validation
Request
PIN Validation
Response
Card
Data
ValidateAccount
Data
Account
Data
business logic
:WithdrawalTransactionManager
database
wrapper
:Savings
Account
Read
Account
Data
databasewrapper
:TransactionLog
Daily
Limit
Response
Check,
Update
Log
Log
Log
Debit,
Credit,
Read
database
wrapper
:CardAccount
Read
Account
Numbers
Account
Data
Read
Account
Data
Account
Data
:ATMClient
server subsystem
:BankServer
Debit,
Credit,Read
Debit,
Credit,
Read
Debit,
Credit,
Read
Bank Server information hiding classes
7/29/2019 ATM_Design.pdf atm design
36/40
business logic
WithdrawalTransactionManager
+ initialize ( )
+ withdraw (in accountNumber,
in amount, out w_response)
+ confirm (accountNumber, amount)+ abort (accountNumber, amount)
business logic
PINValidationTransactionManager
+ initialize ( )
+ validatePIN (in cardId, in PIN,
out v_response)
business logic
TransferTransactionManager
+ initialize ( )
+ transfer (
in fromAccountNumber,
in toAccountNumber,
in amount, out t_response)
business logic
QueryTransactionManager
+ initialize ( )
+ query (in accountNumber,
out q_response)
database wrapperTransactionLog
+ read (out transaction )
+ log (in transaction )
Bank Server information hiding classes
7/29/2019 ATM_Design.pdf atm design
37/40
g
database wrapper
CardAccount
+ read ( in cardId, out accountNumber)
+ update (in cardId, in accountNumber)
database wrapperDebitCard
+ 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)
Bank Server information hiding classes
d t b
7/29/2019 ATM_Design.pdf atm design
38/40
database wrapper
Account
+ readBalance (accountNumber): Real
+ credit (accountNumber, amount)
+ debit (accountNumber, amount)
+ open (accountNumber)+ close (accountNumber)
+ readLastDepositAmount
(accountNumber) : Real
+ addInterest (accountNumber, interestRate)
+ readCumulativeInterest (accountNumber) : Real
database wrapper
CheckingAccount
database wrapper
SavingsAccount
ATM
Transactionsubsystem
:ATMClient
Concurrent collaboration diagram
for Bank Server subsystem architecture
7/29/2019 ATM_Design.pdf atm design
39/40
coordinator
:BankTransaction
Server
business logic
:PINValidationTransactionManager
business logic
:QueryTransactionManager
business logic
:TransferTransactionManager
database
wrapper:Checking
Account
databasewrapper
:DebitCard
bankResponse
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)
validatePIN (in cardId, in PIN,
out v_response)
validate
(cardId, PIN)
business logic
:WithdrawalTransactionManager
database
wrapper:Savings
Account
databasewrapper
:TransactionLog
checkDailyLimit
(cardId, amount),
updateDailyTotal
(cardId, amount)
debit (account#,
amount),
credit (account#,
amount),
readBalance
log (in
transaction)
log (in
transaction)log (in
transaction)
debit (account#, amount),
credit (account#, amount),
readBalance
database
wrapper:CardAccount
read (in cardId,
out account#)
readBalance,
readLastDepositAmount
server subsystem
:BankServer
for Bank Server subsystem- architecture
readBalance,
readCumulativeInterest
debit (account#, amount),
credit (account#, amount),
readBalance
debit (account#, amount),
credit (account#, amount),
readBalance
Deployment diagram for Banking System
7/29/2019 ATM_Design.pdf atm design
40/40
Deployment diagram for Banking System
:ATMClient{1 node per ATM}
:BankServer{1 node}
wide area network