Professional Documents
Culture Documents
There is one CRC card for each class, incorporating all responsibilities of
the class arising from all of the use cases, linked to from the icon for the
class in either Class Diagram. The CRC cards were created by "walking
through" each use case, assigning the responsibility for each task to some
class.
The Class Diagram pulls together all of the structural information from the
CRC Cards and shows the needed links between classes. Each class icon is
o
o
In terms of the order in which these would be created, the Analysis Class Diagram
and the CRC cards would be done first, then the overall Class Diagram, and
finally the Statechart and Interaction Diagrams. Thus, to understand the design
process, these could be read in the order they were created. However, in terms of
understanding the design itself, it may be desirable to read the Class Diagram
first.
2. The detailed design document was developed directly from the Interaction
diagrams and Class Diagram. The former determined what methods the class
would need, and both the former and the latter determined what attributes were
needed.
In terms of actually writing the code, the skeletons for the various classes were
created directly from the detailed design. The individual method bodies were
fleshed out by using the Statechart and Interaction diagrams. Each message on the
Interaction diagram becomes a line or so of code in the implementation. The
controller classes for which a statechart was done have a method that is structured
This is the ATM system use case diagram. It descript the geneal actions that user will
perform to the ATM machine.
UseCase Withdraw Money
Documentation
This is the withdraw money use case. User must login before using this use case. After
user has login, the system will ask for the amount that he want to withdraw. Once the
amount was entered, system will check for the current balance of the user. If the balance
is ok, then the requested amount of money will be dispense to the user, and current
balance will be updated. If the balance is not enough, then the system will inform the user
that he doesn't have enough amount of money to withdraw.
UseCase Transfer Money
Documentation
This is the transfer money use case. It require the user must login first. After the user has
login, the user will ask to enter the receiver's account number. Once the receiver's account
number was entered, then the system will then prompt the user to enter the amount that
he want to transfer. After the user has enter the amount, the system will check for account
balance of the user. If the balance is ok, then the system will do the transfer, otherwise the
system will prompt the user that he doesn't have enough balance and the action will be
cancel.
This is the check balance use case. It require the user must login first. After the user has
login, the system will list out the accounts that the user have, and ask to select the
account for query the balance. Once the user has select the account, the system will
displays the balance to the user.
UseCase Deposit Money
Documentation
This is the deposit money use case. It require user to login first. After user has login, the
system will ask for the amount that he want to deposit. Once the user has entered the
amount, the system will send out the envelop. The user will then put the same amount of
money as he entered into the envelop and insert it into the ATM system. After the system
receive the envelop, then it will show the deposit success message on the screen, and
print out the receipt.
UseCase Login
Documentation
This is the login use case, all other action are depend on this use case. When user login, it
require user to enter the account password. Once the system receive the password, then it
will verify the password with the account. If the password is valid, login was success.
Otherwise it will prompt the user that the password was invalid, and ask for the password
again.
Actor User
Documentation
This is the ATM system user.
Class Account
Documentation
This is the Account class. It hold the account information such as account number,
password(PIN), account type and the current balance.
Class Bank
Documentation
This is the Bank. It holds the bank information and the accounts.
Package atm
Documentation
This is the ATM system. It contain classes that directly related to the ATM machine.
Package consortium
Documentation
This is the consortium package.
Package bank
Documentation
This is the Bank package.
This is the subsystem level sequence diagram for the ATM system normal scenario
withdraw money use case. It expends from the system level sequence diagram, shows
how different subsystems inside the ATM system work together.
Actor User
Documentation
This is the ATM user, which will perform several tasks on the ATM system.
Object ATM
Documentation
This is the ATM subsystem.
Object Bank
Documentation
This is the Bank subsystem.
Object Bank Consortium
Documentation
This is the Bank Consortium subsystem. The bank consortium acts as the middle man
between the ATM subsystem and the Bank.
Actor User
Documentation
This is the ATM system user.
Message to Card Reader
Name : insert card
Sequence number : 1
Message to KeyPad
Name : enter PIN
Sequence number : 13
Message to KeyPad
Name : select withdraw money
Sequence number : 23
Message to KeyPad
Name : enter amount
Sequence number : 27
Message to User
Name : card
Sequence number : 39
Message to Card Controller
Name : verify card
Sequence number : 2
Parent : boundary object
Object KeyPad
Message to ATM Controller
Sequence number : 4
Message to ATM Controller
Name : PIN code
Sequence number : 14
Message to ATM Controller
Name : withdraw money
Sequence number : 24
Object Display
Message to User
Name : show PIN request
Sequence number : 12
Message to User
Name : show services request
Sequence number : 22
Message to User
Name : show enter amount request
Sequence number : 26
Message to User
Name : show withdraw success message
Sequence number : 36
Message to User
Message to Display
Sequence number : 4
Message to Bank Consortium
Name : verify account
Sequence number : 15
Message to Bank Consortium
Name : withdraw request
Sequence number : 29
Parent : control object
Name : withdraw OK
Sequence number : 34
Message to Bank
Name : verify card
Sequence number : 5
Message to Bank
Name : verify account with Bank
Sequence number : 16
Message to Bank
Name : withdraw request
Sequence number : 30
Parent : control object
Object Bank
Message to Bank Consortium
Name : card valid
Sequence number : 8
Message to Bank Consortium
Name : account OK
Sequence number : 19
Message to Bank Consortium
Name : withdraw OK
Sequence number : 33
Message to Account
Name : verify card
Sequence number : 6
Message to Account
Name : verify account
Sequence number : 17
Message to Account
Name : withdraw request
Sequence number : 31
Parent : control object
Object Account
Message to Bank
Name : card valid
Sequence number : 7
Message to Bank
Name : account OK
Sequence number : 18
Message to Bank
Name : withdraw OK
Sequence number : 32
Parent : entity object
SwimLane
Children:
Actor
SwimLane boundary object
Children:
Card Reader, KeyPad, Display, Cash Dispenser
Children:
Card Controller, ATM Controller, Bank Consortium, Bank
SwimLane entity object
Children:
Account
This is the state diagram of the ATM system, which model the detail state changes in the
withdraw money scenario.
Initial State InitialState
Transition link to Main screen
Transition link to Main screen
Guard detail
Name: valid card
Transition link insert card [invalid card] to Main screen
Guard detail
Name: invalid card
Transition link from process transaction, InitialState, Main screen, Cancel
State Cancel
Transition link operation cancel to Main screen
Transition link from wait for PIN, wait for entering amount, wait for selecting services.
This is the state diagram of the Card Controller. It is use to model the state change of a
control object. It shows up the detail state change of the first phrase verify ATM card
action.
Initial State InitialState2
Transition link to Check card type
This is the activity diagram for the atm user. It's shows that action that the user will
perform in the withdraw money scenario.
Initial State InitialState3
Transition link to Insert card
Synchronization BarSynchronizationBar
Documentation
Assume the cash and ATM card are dispense to the user at the same time.
Transition link to Get Money
Transition link to Get Card
Transition link from Enter amount
Synchronization BarSynchronizationBar3
Transition link to FinalState3
Transition link from Get Money, Get Card
Synchronization BarSynchronizationBar5
Documentation
Assume the error message and eject the invalid card are done in the same time.
Transition link to Show error message
Transition link to Eject card
Transition link from Card is invalid
Synchronization BarSynchronizationBar6
Transition link to FinalState5
Reciept
printer
Transaction
details
Card reader
Cash
dispenser
Account info
Update
Account info
ATM
machine
Network
interface
Bank server
Network
interface
Documentation
A component diagram in the Unified Modeling Language, depicts how components are
wired together to form larger components and or software systems.
Components are wired together by using an assembly connector to connect the required
interface of one component with the provided interface of another component.
This illustrates the service consumer - service provider relationship between the two
components.
An assembly connector is a connector between two components that defines that one
component provides the services that another component requires.
An assembly connector is a connector that is defined from a required interface or port to a
provided interface or port.
Documentation
Deployment diagram models the physical deployment of artifacts on nodes.
The nodes appear as boxes, and the artifacts allocated to each node appear as rectangles
within the boxes.
Nodes may have subnodes, which appear as nested boxes.
A single node in a deployment diagram may conceptually represent multiple physical
nodes, such as a cluster of database servers.
The diagram that follows illustrates two Nodes (the ATM itself, which is the focus of this
example), and the Bank Server, through which all connections to the inter-bank network
are made. Though the Bank Server is out of scope for the builders of the ATM, we show
it here to illustrate how network bandwidth can be documented. The diagram also shows
the processes and threads which execute on the ATM Node, which are discussed in the
next step Allocate processes to nodes.