ATM_Design.pdf atm design

  • 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