Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)
Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)
Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
EXAMPLE: BANK<br />
Life-Cycle Bank system:<br />
Openacc;(Transaction|Query|Openacc) ∗<br />
Openacc = OpenaccNC | OpenaccKC<br />
Query = query balance;#current balance<br />
Transaction = deposit money | Withdrawal<br />
OpenaccNC = open new customer account;<br />
(Schufaquery|#customer already known)<br />
OpenaccKC = open known customer account;<br />
(#account opened|#account not opened)<br />
Withdrawal = withdraw money;<br />
(#give money|#no cover)<br />
Schufaquery = #schufa query;<br />
(credit worthiness ok; #account opened)<br />
|(credit worthiness not ok;<br />
#account not opened)<br />
117<br />
LIFE-CYCLE MODEL AS STATE MACHINE<br />
➠ System o<strong>per</strong>ations as events<br />
➠ Output events as actions<br />
➠ Transitions between states: event / action<br />
Example: life-cycle of an account<br />
2<br />
1<br />
no account<br />
3<br />
5<br />
no account<br />
Schufa<br />
queried<br />
1: open_known_customer_account / #account_not_opened<br />
2: open_new_customer_account / #customer_arlready_known<br />
3: open_new_customer_account / #schufa_query<br />
4: open_known_customer_account / #account_opened<br />
5: credit_worthiness_not_ok / #account_not_opened<br />
4<br />
6<br />
119<br />
account<br />
without<br />
deposit<br />
7<br />
7<br />
8<br />
account<br />
with<br />
deposit<br />
7: query_balance / #current_balance<br />
8: deposit_money<br />
9: withdraw_money / #give_money<br />
10: withdraw_money / #no_cover<br />
8<br />
6: credit_worthiness_ok / #account_opened<br />
9<br />
10<br />
PROBLEM<br />
We can only express that some account must be opened before a transaction<br />
or query can take place. We cannot express that before a transaction or query<br />
on account X can take place, X must have been opened before.<br />
Alternative: Describe life-cycle of specific objects.<br />
Example: Lifecycle Account: Open | n Open<br />
Open = NewAcc; (query balance;#current balance) ∗ ;<br />
deposit money; (Transaction|Query) ∗<br />
n Open = (open new customer account;#schufa query<br />
credit worthiness not ok;#account not opened)<br />
|(open new customer account;#customer already known)<br />
|(open known customer account;#account not opened)<br />
NewAcc = open new customer account;#schufa query;<br />
credit worthiness ok;#account opened |<br />
open known customer account;#account opened<br />
LIFE-CYCLE MODEL FOR INSURANCE AGENCY<br />
Summary of system o<strong>per</strong>ations and their output events:<br />
118<br />
Upd = update product;#product updated<br />
EntCDat = enter c data;#c data entered<br />
Query = c data present?;<br />
(#c data present!|#c not data present!)<br />
Offer = prepare offer;#offer prepared<br />
Appl = prepare application;<br />
(#check application || #application prepared)<br />
Acc = application accepted;#contract prepared<br />
NAcc = application not accepted;#contract not prepared<br />
Chg = change contract;#confirm change<br />
ChY = change confirmed;#contract changed<br />
ChN = change not confirmed;#contract not changed<br />
120