Deel I Hoofdstuk 5: Modelleren van toestand -- gevorderd 2005 Prof Dr. O. De Troyer OO modelleren pag. 1 Problemen met platte toestandsdiagrammen Bij complexe systemen krijgt men een explosie van toestanden en transities 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 2 1
Subdiagrammen Subdiagrammen worden gebruikt om bepaalde toestanden verder te beschrijven Naam van de toestand : naam van het subdiagram 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 3 Subdiagrammen Betekenis: De toestand dient vervangen te worden door het subdiagram om het volledige diagram te bekomen Soort placeholder 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 4 2
Samengestelde toestanden Een samengestelde toestand groepeert toestanden. Het is een abstracte toestand. Samengestelde toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 5 Samengestelde toestanden push N in eerder welke Forward-toestand brengt het systeem terug in toestand Neutral stop in eerder welke Forward-toestand brengt het systeem in toestand First 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 6 3
Samengestelde toestanden Is ook mogelijk: Een transitie van een genestelde toestand naar een toestand buiten de samengestelde toestand Een transitie van een toestand naar een genestelde toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 7 Samengestelde toestanden 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 8 4
Samengestelde toestand Een samengestelde toestand kan ook een begin en eindtoestand hebben Begintoestand: default toestand die actief wordt bij een transitie naar de samengestelde toestand Eindtoestand: duidt aan dat de activiteit binnen de samengestelde toestand beëindigd is. Het bereiken van een eindtoestand in een samengestelde toestand veroorzaakt een voltooiingtransitie van de samengestelde toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 9 Samengestelde toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 10 5
Samengestelde toestanden Een samengestelde toestand kan andere samengestelde toestanden bevatten. Het niveau van nestelen is arbitrair. Samengestelde toestand vs subdiagram Hetzelfde wanneer er geen interactie is tussen de samengestelde toestand en de andere toestanden (behalve begin en einde) Samengestelde toestand is krachtiger 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 11 Afhankelijkheden In principe zijn objecten onafhankelijk van elkaar; ze kunnen onafhankelijk van toestand wijzigen en dingen doen. Echter soms is een vorm van synchronisatie nodig Bijvoorbeeld bij samengestelde objecten (aggregatie) 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 12 6
2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 13 Toestand van een aggregatie Het toestandsdiagram voor een aggregatie is een collectie van toestandsdiagrammen, nl één voor elk onderdeel. De actieve toestand van een aggregatie correspondeert met de combinatie van de actieve toestanden van de onderdelen. Soms kan de transitie voor een bepaald onderdeel afhangen van de toestand van een ander onderdeel Voorbeeld: Auto zal niet starten tenzij de transmissie in toestand neutraal is Toestandsdiagram voor een aggregatie 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 14 7
Gelijktijdige toestanden Soms kan een object gelijktijdig in twee of meer toestanden verkeren. Samengestelde toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 15 Voorbeeld - schrijver Gelijktijdige toestanden 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 16 8
Gelijktijdige toestanden Soms moet een object twee of meer activiteiten gelijktijdig uitvoeren Zonder synchronisatie moeten alle activiteiten uitgevoerd zijn voor men naar een volgende toestand kan Voorbeeld: cash automaat Cash geven Kaart terug geven Volgorde niet belangrijk maar beide moeten uitgevoerd zijn eer het toestel zich kan resetten 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 17 Gelijktijdige toestanden Opmerking: vork is hier niet echt nodig omdat elk subdiagram maar 1 toestand heeft Uitsplitsen van de controle in 2 gelijktijdige activiteiten 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 18 2 gelijktijdige subtoestanden Beide zijn gelijktijdig actief Impliciet samenvoegen van de gelijktijdigheid De transitie vindt enkel plaats indien beide gelijktijdige subtoestanden beëindigd zijn 9
Gelijktijdige toestanden Expliciet samenvoegen van de gelijktijdigheid kan men ook op dezelfde wijze als het uitsplitsen aangeven 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 19 Gelijktijdige toestanden Een transitie van één enkele gelijktijdige toestand naar een toestand buiten de samengestelde toestand beëindigt ook de andere gelijktijdige toestanden Een samengestelde toestand is beëindigd wanneer elk van zijn gelijktijdige toestanden beëindigd is. 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 20 10
Verband tussen klassendiagram en toestandsdiagram Het toestandsdiagram van een klasse is ook van toepassing op een subklasse van deze klasse De subklasse zelf kan zijn eigen toestandsdiagram hebben maar er mogen geen conflicten ontstaan. Toestandsdiagram van subklasse moet een verfijning zijn van het toestandsdiagram van de superklasse Of Toestandsdiagram van de subklasse moet onafhankelijk zijn van het toestandsdiagram van de superklasse Te beschouwen als gelijktijdige toestanden 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 21 Verband tussen klassendiagram en toestandsdiagram Transities zijn meestal te realiseren door middel van operaties, waarbij de naam van de operatie overeenkomt met het signaal 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 22 11
Voorbeeld Programmeerbare thermostaat Controleer de verwarming, de airco en de ventilatoren Bedoeling is de temperatuur gelijk te houden aan de ingestelde temperatuur Er zijn 8 verschillende periodes: 4 in de weekend 4 op weekdagen 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 23 Voorbeeld De user interface heeft 10 drukknoppen, 3 schakelaars en een alfanumeriek display Elke knop genereert een event TEMP UP TEMP DOWN TIME FWD TIME BACK SET CLOCK SET DAY RUN PRGM VIEW PRGM HOLD TEMP (behoudt de huidige doeltemperatuur) F-C BUTTON (alterneren tussen Fahrenheit en Celsius) 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 24 12
Voorbeeld De 3 schakelaars worden gemodelleerd door middel van onafhankelijke gelijktijdige subdiagrammen Elke toestand komt overeen met een stand van de schakelaar De schakelaars zijn: NIGHT LIGHT: verlicht het alfanumeriek toetsenbord: waarden:» Light off, light on SEASON: geeft aan welk toestel gecontroleerd wordt; waarden» Heat (verwarming)» Cool (airco)» Off (geen enkel) FAN: geeft aan wanneer de ventilator functioneert; waarden:» Fan on (continue)» Fan auto (enkel wanneer verwarming of airco werken) 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 25 Voorbeeld Er is een ingebouwde thermometer en klok We beschouwen temp en time als externe parameters omdat we geen toestand modellen van de thermometer of de klok willen maken Target time is een interne toestandsvariabele die gebruikt wordt om de doeltemperatuur te representeren Sommige activiteiten zullen die een waarde geven, andere zullen de waarde opvragen Laat communicatie toe tussen de verschillende delen van het toestandsmodel 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 26 13
Voorbeeld 7 gelijktijdige subdiagrams. 1. Voor de user interface 2. Voor de season schakelaar 3. Voor de fan schakelaar 4. Voor de verwarming 5. Voor de airco 6. Voor de ventilator 7. Voor het indicator licht Elk hebben een On en Off toestand 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 27 14
Voorbeeld User Interface toestandsdiagram 3 gelijktijdige subdiagrams. 1. Voor de display Met 2 toestanden: Operate en Setup Operate heeft 3 gelijktijdige subdiagrams: Eén voor run en hold Eén voor om de doeltemperatuur te tonen Eén voor het tonen van de huidige tijd of huidige temperatuur (verandert om de 2 seconden) In Run wordt de tijd elke seconde vergeleken met de tijd van het programma; indien gelijk wordt er overgegaan naar het volgende programma 2. Voor de temperatuur 3. Voor de night light 2005 Prof. Dr. O. De Troyer Toestandsmodel gevorderd pag. 29 begintoestand Hierdoor gaan de andere gelijktijdige subdiagrammen ook naar hun begin toestand 15
Geen expliciete uitgaande transities voor de verschillende toestandsdiagrammen: Ze worden beëindigd door een transitie naar een ander diagram in het diagram Interactive Display 16