Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Jason Gorman
advertisement
Business Modeling
Plus simple approaches to:
Apply UML to business
goals, processes, rules and
structure • Iterative & Incremental Development
• Change & Defect Management
www.parlezuml.com/training.htm • User Acceptance Testing
• Project Planning & Tracking
advertisement
Withdraw cash
Deposit cheques
Check balance
To deposit money
without going in to
the branch
Request mini-statement
Card Holder
system
boundary
actor name
Bank System
“communicates”
© Jason Gorman 2005. All rights reserved.
Relationships Between Use Cases
Make tea
<<include>>
Boil water
<<include>>
Class name
Account
Balance : float = 0 Attributes compartment
Limit : float = 0
deposit(amount : float)
withdraw(amount : float)
getAvailableFunds() : float
Operations compartment
Person
wed(partner : Person)
calculateWealth() : float Return type = “float”
gossip(about : Person, to : Person)
Account
- Balance : float = 0
# = protected # Limit : float = 0
+ deposit(amount : float)
+ withdraw(amount : float)
+ = public ~ getAvailableFunds() : float
~ = package
Class
(eg,
SeaLion SeaLion.getPopulation())
- population : int
- age : int
Is t Association End:
he
s am Role = “accounts”
ea Multiplicity = “0..*”
s…
Type = Collection of
Account
1..2
Customer
0..* holders
Account
accounts Association End:
Role = “holders”
Multiplicity = “1..2”
Type = Collection of
© Jason Gorman 2005. All rights reserved. Customer
Navigation
myCustomer.accounts
1..2
Customer
0..* holders
Account
accounts
myAccount.holders
1..2
Customer
0..* holders
Account
accounts
myAccount.holders
1..2
0..1
0..1
1..*
Personal Computer Hard drive
0..1
1
0..1
1..4
Motherboard CPU
1
0..*
Invoice Line Item
Person
eat(food : Food)
Person
eat(food : Food)
Person
<<interface>>
Person
eat(food : Food)
<<interface>>
Person
eat(food : Food)
Food
Scuba Diver
eat(food : Food)
advertisement
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
items
Item1 : Line Item
items
Item3 : Line Item
Object identity [optional] Object type [optional]
© Jason Gorman 2005. All rights reserved.
Object State
: Customer
holders
Name = “Jason Gorman”
: Account
Balance = 400.00
Limit = 250.00 accounts
: Invoice
/ total = 6.96
items Item1 : Line Item
quantity = 3
Dry Wipe Marker : Product
message(parameter_value)
return_value
focus of control
execute()
withdraw(amount)
deposit(amount)
deposit(amount)
fundsAvailable := getAvailableFunds()
deposit(amount)
: DataAccessObject : DataReader
notEof := Next()
{while notEof}
load()
ctx := Current()
session := Session()
transition object
event state
start state withdraw(amount)
withdraw(amount)
deposit(amount) [amount > Balance]
empty in credit overdrawn
withdraw(amount) deposit(amount)
[amount = Balance] [amount > 0 - Balance]
deposit(amount)
[amount = 0 - Balance]
end state
withdraw(amount)
deposit(amount) [amount > Balance]
/ balance = amount / balance = balance - amount
Overdrawn
empty in credit entry/ send nasty letter
do/ charge daily interest
withdraw(amount) deposit(amount)
[amount = Balance] [amount > 0 - Balance]
/ balance = 0 / balance = balance + amount
Sub state
active
in credit overdrawn
freeze
frozen
H empty
history state
Transfer funds
Withdraw cash
Deposit funds
System
Web Collections
<<import>>
System
Web Collections
<<import>> Hashtable
DateTime
System::Collections::Hashtable
System::DateTime
View
notify call
Model Controller
update
Encapsulate problem domain data & logic Execute requested actions by manipulating model
<<control>>
Login Controller
Login Page
User Account
Login Controller