Object geOrienteerd Software-ontwerp - 6 Toestandsdiagram To do
Toestandsdiagram Voor één enkel object Bij een klasse waarvan de objecten in verschillende toestanden kunnen verkeren! OOS: zoek 1 geschikte klasse in jullie package en teken een toestandsdiagram. Zoek info en voeg toe aan ‘bewijsmateriaal’
Voorbeeld: telefoon
Notatie begintoestand eindtoestand (algemene) toestand event: gebeurtenis transition: overgang guards: [boolean] automatische overgang acties: / overgang, entry, exit activiteit toestandsnaam event [voorwaarde] event [voorwaarde] event / actie toestandsnaam do/activiteit
Ontwerp van toestandsdiagram Mogelijke events Mogelijke toestanden Wat is de invloed van elk event op elke toestand Guards en automatische transities
Opdracht 1 Toilet met een spoel- en spaarknop. Het indrukken van de spoelknop heeft tot effect dat het waterreservoir leegloopt. Het indrukken van de spaarknop breekt het leeglopen van het reservoir af. Zodra de uitloop vanuit het reservoir stopt wordt hij aangevuld totdat hij weer vol zit. Ontwerp een toestandsdiagram voor dit toilet.
Overgangsmatrix ↓van naar→ vollopend leeglopend vol spoelen [isVol] [isLeeg] of afbreken -
Opdracht 2 Op een veiling worden kavels bij opbod verkocht. Elke veiling kent een minimumbod. Een veiling eindigt zodra er na een vooraf vastgestelde tijd geen voldoende hoger bod is uitgebracht. Ontwerp een toestandsdiagram voor een veiling.
Opdracht 3 Bij een internetspel kunnen ingelogde spelers in de lobby chatten, óf aan maximaal een spel deelnemen, óf naar maximaal een spel kijken. Ontwerp een toestandsdiagram voor een speler.
Analyseresultaten toestandsdiagram events methoden guards precondities activiteiten threads entry-actie constructor subtype versus toestand
Dynamische classificatie Exemplaar leenUit(Lid) komtTerug() legApart() Aanwezig Uitgeleend Beschikbaar
<<abstract>> State Pattern <<abstract>> ToestandVan Exemplaar Exemplaar leenUit(Lid) komtTerug() legApart() 1 state leenUit(Lid) komtTerug() legApart() Beschikbaar Uitgeleend Aanwezig
To do Toestandsdiagram voor 1 klasse Voltooien View- en andere GUI-klassen Week 7 demo Week 8 individuele beoordeling Inleveren op papier: Klassendiagram Broncode domeinmodel Broncode van jouw GUI-deel Jouw sequencediagram