SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Modelovanje stanja korišćenjem Statechart
dijagrama (dijagrama stanja)
Analiza i specifikacija informacionih sistema


                  dr Zoran Jeremić
                  zoran.jeremic@gmail.com




                                                1
Sadržaj


 Uvod u statechart dijagrame
 Statechart gradivni blokovi
    Stanja
    Promene
 Napredne karakteristike
    Složena stanja
    Paralelna stanja
Proces razvoja sistema

     Faza                      Aktivnost                          Izlaz
                                                             Biznis
Započinjanje     Utvrđivanje poslovnih potreba
                                                             dokumenta
                 Intervjuisanje stejkholdera, istraživanje   Organizovana
Analiza          sistemskog okruženja                        dokumentacija
                 Analiza inženjerskih aspekata sistema,      Logički model
Specifikacija    definisanje koncepata sistema               sistema
                 Programiranje, testiranje jedinica,         Proverljiv
Implementacija   integrisanje, dokumentovanje                sistem
                                                             Resultati
Testiranje &     Integrisanje svih komponenti, verifikacija, testiranja,
Integracija      validacija, instalacija, obuka              funkcionalan
                                                             sistem
                 Popravljanje bagova, modifikacije,
Održavanje       adaptacija
                                                             Verzije sistema
Šta nedostaje u modelovanju ponašanja?


                        p : Product                : ShooppingCart
customer
           display()

           getPrice()

                                  addProduct (p)

                                  checkout ()



                                                                     U dijagramu sekvence ne
                                                                     znamo kako se stanje
                                                                     šoping karte menja.
Modelovanje stanja

                   ShoppingCart
                                                                   Product
        dateCreated : Date
        dateUpdated : Date           *              *   productId : String
                                                        name : String
        addNewProduct(p : Product,                      photo : Picture
        quantity : int)
        removeProduct(p : Product)

                                             Item

                                         quantity



 Kako možemo modelovati stanje šoping
  karte?
 Zavisi od:
       Stanja objekta (npr. kreiran, ugašen)
       Dodeljivanja vrednosti promenljivima
       Stanja relacije (npr. broj artikala)
       Operativnih metoda i procesa
       Istorije
Automata

 Mašina čije izlazno ponašanje nije samo direktna
  posledica trenutnog ulaza, već i nekih ranijih ulaza.
 Karakteriše ga interno stanje koje predstavlja njegovo
  ranije iskustvo.

                                    Ako je telefon uključen,
                                    pritisak na dugme će ga
                                    isključiti


                                    Ako je telefon uključen,
                                    pritisak na dugme će ga
                                    uključiti
Sadržaj


 Uvod u statechart dijagrame
 Statechart gradivni blokovi
    Stanja
    Promene
 Napredne karakteristike
    Složena stanja
    Paralelna stanja
Stanja i klase

      Pogled klase                Pogled stanja    Stanje

                                  created
         Order                                     Tranzicija

 status: {created, sent,
                                            in gathering
 received}
 hasProblems : boolean

 gatherItems()
                                     sent
 updateInventory()
 sendOrder()
 received(customer)
 sendReciept()
                           is received            in problem
Aktivnosti

 Dok se nalazi u određenom
                                               in gathering
  stanju, komponenta može
  izvršavati aktivnosti.                do: gatherItems()
    Može biti neprekidna u             do: updateInventory()
     određenom ili neograničenom
     vremenu
    Aktivnosti unutar stanja su
                                                 created
     sekvencijalne
    Aktivnosti mogu biti prekinute   enter: set hasProblems to false
                                      do: init gathering list
 Postoje specijalni tipovi
                                      exit: clean log file
  aktivnosti, klasifikovanih kao
  ulazne, izlazne i događaji
Tranzicije

                  događaj [uslov] | akcija
             x                                       y




                                             Akcija koja će se
                                             desiti kada dođe
   Događaj koji       Uslov koji se mora     do tranzicije
   pokreće            ispuniti da bi došlo
   tranziciju         do tranzicije
Događaji

 Osnovni događaji
   Pozivi metoda: received(customer)
   Signali događaja: inventoryReady                 created

 Vremenski događaji:                                            inventoryReady

   Istek intervala;                                     in gathering
    tm(3 days), tm(1000 ms)
   kalendar/sat vreme; when(11:50)                            false(hasProblems)

 Događaji promene:                              sent
   Promena vrednosti nekog             received()
                                                        tm(3 days)
    entiteta; false(hasProblems)
    true(hasProblems)
                                                                 in problem
                                         is received
Uslovi

         gatheringFinished [all items were gathered]
                                                          sent
   in gathering

                                                       in problem
           gatheringFinished [items are not found]

 Boolean iskazi.
 Proveravaju se kada je tranzicija aktivirana
 Tipovi uslova:
    Jednostavan: [hasProblems], [x > 0]
    Kombinovani:
      [¬hasProblems ∨ (hasProblems ∧ order.sum < 100]
    Uslovi nad aktivnostima: [active(gatherItems)]
Uslovi - primer

bid [value < 100]

                                   bid [value >= 200]
                    Selling                                      Happy




                        bid [(value >= 100) AND (value < 200)]




                    Unhappy
Grananje statičkih uslova

  Grafička prečica predstavljanje stabla odlučivanja



                    Selling                                 Happy

                       bid

                              [value >= 200]
    [value < 100]

                         [(value >= 100) & (value < 200)]


                Unhappy
Prazne tranzicije


 Tranzicija može imati bilo kakvu kombinaciju događaja,
  uslova i akcija (uključujući i ništa)
 Kada tranzicija nema događaj, ona se dešava kada su
  sve aktivnosti završene                      Prazna
  Employee                                                      tranzicija

                rest[break]     Cleaning
   Working                    do: put water
                               do: put soap     doing nothing
   do: shovel      work       do: wash soap
                                do: drain

                                              work
Uslovi i događaji


 Koja je razlika između dve mašine?

                   E1                  true(C)
        S1                   S2                     S3




                   E1                    [C]
        S1                   S2                     S3




             Šta se dešava ako C promeni stanje u
             True ili False pre E1?
Akcije

Tipovi akcija
    Dodeljivanje promenljive:
               received() | status := received
    sent                                                    is received


    Slanje signala:
               received() | throw(InventoryUpdate)
   sent                                                     is received



    Aktivnosti započinjanja ili zaustavljanja:
              | start(sendBill); stop(delivery); x := x+1
   sent                                                     is received
Kako mašina za veš funkcioniše?

                   On / Off dugme. Start dugme
                    (Nema stop dugmeta.)
                   Povratna poruka se daje o
                    trenutnom stanju (potapanje,
                    ispiranje, ceđenje, sušenje)
                   Tri plana:
                      Regularni
                      Osetljivi (bez potapanja)
                      Super osetljivi (bez potapanja,
                       bez sušenja)
                   Off se može pritisnuti samo pre
                    početka ili nakon završetka
Mašina za pranje

                                                                                                 idle-prazan hod, soak-potapanje,
                                     off                                                         rinse-ispiranje, drain-ceđenje.
                                                                                                 dry- sušenje, delicate-fino
                                                                                                 stir-mešanje
                      click(power)         click(power)



                                   idle                                                              Tm(10 mins) | light(off)



                       click(start) [plan=regular]


                                  soak
click(start) [plan=delicate
                            Do: light(soak)
    or super delicate]
                            Do: pump(in)


                                                              Tm(5 mins) [plan=super delicate] | light(off)
                              tm(30 mins)


                                  rinse                                          drain                                           dry
                                                                                                       tm(5 mins)
                           Do: light(rinse)               tm(30 mins)      Do: light(drain)         [plan=not super       Do: light(dry)
                           Do: stir()                                      Do: pump(out)                delicate]         Do: stir()
Sadržaj


 Uvod u statechart dijagrame
 Statechart gradivni blokovi
    Stanja
    Promene
 Napredne karakteristike
    Složena stanja
    Paralelna stanja
Eksplozija stanja: Primer


                                     off                                                          Šta ukoliko bi se off dugme
                                                                                                  moglo pritisnuti bilo kad?
                      click(power)         click(power)



                                   idle                                                              Tm(10 mins) | light(off)



                       click(start) [plan=regular]


                                  soak
click(start) [plan=delicate
                            Do: light(soak)
    or super delicate]
                            Do: pump(in)


                                                              Tm(5 mins) [plan=super delicate] | light(off)
                              tm(30 mins)


                                  rinse                                          drain                                           dry
                                                                                                       tm(5 mins)
                           Do: light(rinse)               tm(30 mins)      Do: light(drain)         [plan=not super       Do: light(dry)
                           Do: stir()                                      Do: pump(out)                delicate]         Do: stir()

                                                                                 Šta ukoliko želimo da se
                                                                                 vratimo u isto stanje iz
                                                                                 koga smo izašli?
Apstrakcija u statechart dijagramima

 Pronalaženje zajedničkog    Odvajanje nezavisnih regiona
         ponašanja




         Kompozitna stanja              Paralelna stanja
Kompozitna stanja

                                                             off


                                              click(power)
                                                             click(power)


                                                                             On



                                   idle                                                         Tm(10 mins) | light(off)



                       click(start) [plan=regular]


                                  soak
click(start) [plan=delicate
                            Do: light(soak)
    or super delicate]
                            Do: pump(in)


                                                         Tm(5 mins) [plan=super delicate] | light(off)
                              tm(30 mins)


                                  rinse                                     drain                                           dry
                                                                                                  tm(5 mins)
                           Do: light(rinse)          tm(30 mins)      Do: light(drain)         [plan=not super       Do: light(dry)
                           Do: stir()                                 Do: pump(out)                delicate]         Do: stir()
Kompozitna stanja + istorija

                                                              off
                                                                                    click(power)



                                                     click(power)

                                                                             On


                                                          H
                                   idle                                                            Tm(10 mins) | light(off)



                       click(start) [plan=regular]


                                  soak
click(start) [plan=delicate
                            Do: light(soak)
    or super delicate]
                            Do: pump(in)


                                                         Tm(5 mins) [plan=super delicate] | light(off)
                              tm(30 mins)


                                  rinse                                     drain                                              dry
                                                                                                  tm(5 mins)
                           Do: light(rinse)          tm(30 mins)      Do: light(drain)         [plan=not super          Do: light(dry)
                           Do: stir()                                 Do: pump(out)                delicate]            Do: stir()
Duboka(deep) i plitka(shallow) istorija


             Shift ended | clh()
 Stop
              pause
                                              Diagnosing
            return
                         H         Diagnostic1        Diagnostic2
          return-full

                         H*           setup                Find a vein


clh() – brisanje                   Check blood
istorije                                               Draw Blood
                                    pressure
Paralelna stanja


 Ponekad su određeni aspekti entiteta nezavisni od
  drugih aspekata
                                             employee
  Marital


    single                                     Staff
                                              Member


   married
                                             Manager

  divorced
Označavanje paralelnih stanja

 Kombinovanje višestrukih simultanih opisa
 Martial                                      employee


   single
                                                Staff
                                               Member
  married
                     Martial   employee

                  single                      Manager
  divorced
                                  Staff
                                 Member
                 married



                 divorced        Manager
Račvanje (fork) i spajanje (join) tranzicija



                                                        shipping

              Processing          Sent           Confirmed




               Credit Card        [ok]
               verification                   Receipt Sent


   račvanje                                                        spajanje
                      [not ok]                         charging


                                 In problem

Contenu connexe

Plus de Zoran Jeremic

Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHPZoran Jeremic
 
T 3.8 design paterni (c)
 T 3.8 design paterni (c) T 3.8 design paterni (c)
T 3.8 design paterni (c)Zoran Jeremic
 
T 3.6 design paterni (b)
 T 3.6 design paterni (b) T 3.6 design paterni (b)
T 3.6 design paterni (b)Zoran Jeremic
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)Zoran Jeremic
 
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 T 3.1 definisanje zahteva koriscenjem use case dijagrama T 3.1 definisanje zahteva koriscenjem use case dijagrama
T 3.1 definisanje zahteva koriscenjem use case dijagramaZoran Jeremic
 
T 2 zivotni ciklus i metodologije razvoja softvera
 T 2 zivotni ciklus i metodologije razvoja softvera T 2 zivotni ciklus i metodologije razvoja softvera
T 2 zivotni ciklus i metodologije razvoja softveraZoran Jeremic
 
T 1 uvod u softversko inzenjerstvo
 T 1 uvod u softversko inzenjerstvo T 1 uvod u softversko inzenjerstvo
T 1 uvod u softversko inzenjerstvoZoran Jeremic
 
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSSynergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 
Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Zoran Jeremic
 
Semantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsSemantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 
Project-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsProject-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 

Plus de Zoran Jeremic (15)

Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
 
T 3.8 design paterni (c)
 T 3.8 design paterni (c) T 3.8 design paterni (c)
T 3.8 design paterni (c)
 
T 3.6 design paterni (b)
 T 3.6 design paterni (b) T 3.6 design paterni (b)
T 3.6 design paterni (b)
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)
 
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 T 3.1 definisanje zahteva koriscenjem use case dijagrama T 3.1 definisanje zahteva koriscenjem use case dijagrama
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 
T 2 zivotni ciklus i metodologije razvoja softvera
 T 2 zivotni ciklus i metodologije razvoja softvera T 2 zivotni ciklus i metodologije razvoja softvera
T 2 zivotni ciklus i metodologije razvoja softvera
 
T 1 uvod u softversko inzenjerstvo
 T 1 uvod u softversko inzenjerstvo T 1 uvod u softversko inzenjerstvo
T 1 uvod u softversko inzenjerstvo
 
PhD Dissertation
PhD DissertationPhD Dissertation
PhD Dissertation
 
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSSynergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 
Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...
 
Semantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsSemantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software Patterns
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 
Project-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsProject-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software Patterns
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 

T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama

  • 1. Modelovanje stanja korišćenjem Statechart dijagrama (dijagrama stanja) Analiza i specifikacija informacionih sistema dr Zoran Jeremić zoran.jeremic@gmail.com 1
  • 2. Sadržaj  Uvod u statechart dijagrame  Statechart gradivni blokovi  Stanja  Promene  Napredne karakteristike  Složena stanja  Paralelna stanja
  • 3. Proces razvoja sistema Faza Aktivnost Izlaz Biznis Započinjanje Utvrđivanje poslovnih potreba dokumenta Intervjuisanje stejkholdera, istraživanje Organizovana Analiza sistemskog okruženja dokumentacija Analiza inženjerskih aspekata sistema, Logički model Specifikacija definisanje koncepata sistema sistema Programiranje, testiranje jedinica, Proverljiv Implementacija integrisanje, dokumentovanje sistem Resultati Testiranje & Integrisanje svih komponenti, verifikacija, testiranja, Integracija validacija, instalacija, obuka funkcionalan sistem Popravljanje bagova, modifikacije, Održavanje adaptacija Verzije sistema
  • 4. Šta nedostaje u modelovanju ponašanja? p : Product : ShooppingCart customer display() getPrice() addProduct (p) checkout () U dijagramu sekvence ne znamo kako se stanje šoping karte menja.
  • 5. Modelovanje stanja ShoppingCart Product dateCreated : Date dateUpdated : Date * * productId : String name : String addNewProduct(p : Product, photo : Picture quantity : int) removeProduct(p : Product) Item quantity  Kako možemo modelovati stanje šoping karte?  Zavisi od:  Stanja objekta (npr. kreiran, ugašen)  Dodeljivanja vrednosti promenljivima  Stanja relacije (npr. broj artikala)  Operativnih metoda i procesa  Istorije
  • 6. Automata  Mašina čije izlazno ponašanje nije samo direktna posledica trenutnog ulaza, već i nekih ranijih ulaza.  Karakteriše ga interno stanje koje predstavlja njegovo ranije iskustvo. Ako je telefon uključen, pritisak na dugme će ga isključiti Ako je telefon uključen, pritisak na dugme će ga uključiti
  • 7. Sadržaj  Uvod u statechart dijagrame  Statechart gradivni blokovi  Stanja  Promene  Napredne karakteristike  Složena stanja  Paralelna stanja
  • 8. Stanja i klase Pogled klase Pogled stanja Stanje created Order Tranzicija status: {created, sent, in gathering received} hasProblems : boolean gatherItems() sent updateInventory() sendOrder() received(customer) sendReciept() is received in problem
  • 9. Aktivnosti  Dok se nalazi u određenom in gathering stanju, komponenta može izvršavati aktivnosti. do: gatherItems()  Može biti neprekidna u do: updateInventory() određenom ili neograničenom vremenu  Aktivnosti unutar stanja su created sekvencijalne  Aktivnosti mogu biti prekinute enter: set hasProblems to false do: init gathering list  Postoje specijalni tipovi exit: clean log file aktivnosti, klasifikovanih kao ulazne, izlazne i događaji
  • 10. Tranzicije događaj [uslov] | akcija x y Akcija koja će se desiti kada dođe Događaj koji Uslov koji se mora do tranzicije pokreće ispuniti da bi došlo tranziciju do tranzicije
  • 11. Događaji  Osnovni događaji  Pozivi metoda: received(customer)  Signali događaja: inventoryReady created  Vremenski događaji: inventoryReady  Istek intervala; in gathering tm(3 days), tm(1000 ms)  kalendar/sat vreme; when(11:50) false(hasProblems)  Događaji promene: sent  Promena vrednosti nekog received() tm(3 days) entiteta; false(hasProblems) true(hasProblems) in problem is received
  • 12. Uslovi gatheringFinished [all items were gathered] sent in gathering in problem gatheringFinished [items are not found]  Boolean iskazi.  Proveravaju se kada je tranzicija aktivirana  Tipovi uslova:  Jednostavan: [hasProblems], [x > 0]  Kombinovani: [¬hasProblems ∨ (hasProblems ∧ order.sum < 100]  Uslovi nad aktivnostima: [active(gatherItems)]
  • 13. Uslovi - primer bid [value < 100] bid [value >= 200] Selling Happy bid [(value >= 100) AND (value < 200)] Unhappy
  • 14. Grananje statičkih uslova  Grafička prečica predstavljanje stabla odlučivanja Selling Happy bid [value >= 200] [value < 100] [(value >= 100) & (value < 200)] Unhappy
  • 15. Prazne tranzicije  Tranzicija može imati bilo kakvu kombinaciju događaja, uslova i akcija (uključujući i ništa)  Kada tranzicija nema događaj, ona se dešava kada su sve aktivnosti završene Prazna Employee tranzicija rest[break] Cleaning Working do: put water do: put soap doing nothing do: shovel work do: wash soap do: drain work
  • 16. Uslovi i događaji  Koja je razlika između dve mašine? E1 true(C) S1 S2 S3 E1 [C] S1 S2 S3 Šta se dešava ako C promeni stanje u True ili False pre E1?
  • 17. Akcije Tipovi akcija  Dodeljivanje promenljive: received() | status := received sent is received  Slanje signala: received() | throw(InventoryUpdate) sent is received  Aktivnosti započinjanja ili zaustavljanja: | start(sendBill); stop(delivery); x := x+1 sent is received
  • 18. Kako mašina za veš funkcioniše?  On / Off dugme. Start dugme (Nema stop dugmeta.)  Povratna poruka se daje o trenutnom stanju (potapanje, ispiranje, ceđenje, sušenje)  Tri plana:  Regularni  Osetljivi (bez potapanja)  Super osetljivi (bez potapanja, bez sušenja)  Off se može pritisnuti samo pre početka ili nakon završetka
  • 19. Mašina za pranje idle-prazan hod, soak-potapanje, off rinse-ispiranje, drain-ceđenje. dry- sušenje, delicate-fino stir-mešanje click(power) click(power) idle Tm(10 mins) | light(off) click(start) [plan=regular] soak click(start) [plan=delicate Do: light(soak) or super delicate] Do: pump(in) Tm(5 mins) [plan=super delicate] | light(off) tm(30 mins) rinse drain dry tm(5 mins) Do: light(rinse) tm(30 mins) Do: light(drain) [plan=not super Do: light(dry) Do: stir() Do: pump(out) delicate] Do: stir()
  • 20. Sadržaj  Uvod u statechart dijagrame  Statechart gradivni blokovi  Stanja  Promene  Napredne karakteristike  Složena stanja  Paralelna stanja
  • 21. Eksplozija stanja: Primer off Šta ukoliko bi se off dugme moglo pritisnuti bilo kad? click(power) click(power) idle Tm(10 mins) | light(off) click(start) [plan=regular] soak click(start) [plan=delicate Do: light(soak) or super delicate] Do: pump(in) Tm(5 mins) [plan=super delicate] | light(off) tm(30 mins) rinse drain dry tm(5 mins) Do: light(rinse) tm(30 mins) Do: light(drain) [plan=not super Do: light(dry) Do: stir() Do: pump(out) delicate] Do: stir() Šta ukoliko želimo da se vratimo u isto stanje iz koga smo izašli?
  • 22. Apstrakcija u statechart dijagramima Pronalaženje zajedničkog Odvajanje nezavisnih regiona ponašanja Kompozitna stanja Paralelna stanja
  • 23. Kompozitna stanja off click(power) click(power) On idle Tm(10 mins) | light(off) click(start) [plan=regular] soak click(start) [plan=delicate Do: light(soak) or super delicate] Do: pump(in) Tm(5 mins) [plan=super delicate] | light(off) tm(30 mins) rinse drain dry tm(5 mins) Do: light(rinse) tm(30 mins) Do: light(drain) [plan=not super Do: light(dry) Do: stir() Do: pump(out) delicate] Do: stir()
  • 24. Kompozitna stanja + istorija off click(power) click(power) On H idle Tm(10 mins) | light(off) click(start) [plan=regular] soak click(start) [plan=delicate Do: light(soak) or super delicate] Do: pump(in) Tm(5 mins) [plan=super delicate] | light(off) tm(30 mins) rinse drain dry tm(5 mins) Do: light(rinse) tm(30 mins) Do: light(drain) [plan=not super Do: light(dry) Do: stir() Do: pump(out) delicate] Do: stir()
  • 25. Duboka(deep) i plitka(shallow) istorija Shift ended | clh() Stop pause Diagnosing return H Diagnostic1 Diagnostic2 return-full H* setup Find a vein clh() – brisanje Check blood istorije Draw Blood pressure
  • 26. Paralelna stanja  Ponekad su određeni aspekti entiteta nezavisni od drugih aspekata employee Marital single Staff Member married Manager divorced
  • 27. Označavanje paralelnih stanja  Kombinovanje višestrukih simultanih opisa Martial employee single Staff Member married Martial employee single Manager divorced Staff Member married divorced Manager
  • 28. Račvanje (fork) i spajanje (join) tranzicija shipping Processing Sent Confirmed Credit Card [ok] verification Receipt Sent račvanje spajanje [not ok] charging In problem