Elaboration Phase 1
Elaboration Phase 1
Elaboration Phase 1
Deposit
Teller Withdraw
Transfer Customer
Deposit
Teller Withdraw
Transfer Customer
Primary actors
go on the left
A Sample Use Case Diagram
In-Branch Services
Deposit
Teller Withdraw
Transfer Customer
Secondary
actors on the
right
A Sample Use Case Diagram
In-Branch Services
Deposit
Teller Withdraw
Transfer Customer
Post-conditions:
For a deposit of N dollars, the balance of the
account is increased by N
A transaction record is recorded for
accountability, tracing, and customer
information
Another Format of Use Case
Contract
Use Case: Deposit into Account
Input: Account, Amount
Output: transaction successful?
Pre-conditions:
ValidAccount(Account)
Post-conditions:
Account.balance = Account.balance + Amount
These are the reasons why a University degree prepares you for
your entire career
Even if you don’t learn all the technologies and languages you
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
The passage of
time goes down
A Sample SSD
: System
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
The system on
the right
A Sample SSD
: System
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
These are
lifelines
A Sample SSD
: System
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
These are
activity
blocks
A Sample SSD
: System
Teller
verifyAccount(Account)
increaseBalance(Account, Amount)
This is a
message
Domain Model
A domain model is a representation of the classes in
the application domain
The application domain is the area of business for which
the application is intended
For our example, the application domain is banking
For this model, we use a simple class diagram
Class diagrams are diagrams showing classes, attributes,
operations, and class relationships
Operations are typically not included in the domain model
class diagrams, however
Domain Model
owner
Account Customer
balance: Amount
type: Name
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
These are
classes
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
The name of
the class goes
in the top box
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Attributes go in
the second box
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Attributes types
go on the right
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Attribute types
are conceptual,
not programming
language types
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Attributes names
go on the left
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
withdraw(a: Amount)
deposit(a: Amount)
Operations would
go in the third box
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Associations are
shown as lines
A Partial Domain Class Diagram
owner
Account Customer
balance: Amount
type: Name
Association role
names are also
included
A Partial Domain Class Diagram
Multiplicity can
indicate how many
objects are involved
Other Elaboration Artifacts
As this point:
The Use Case Model is at 80-90% complete
The Domain Model is fairly detailed
The Architectural Model is nearly complete
The Design Model is at least 60% complete
The Implementation Model has been started, and
significant progress made (10-20%)
This is around where Elaboration leaves off