Meer over de semantiek van basiselementen van TM en AD van UML (er zijn elementen en aspecten die niet door deze slides gedekt zijn) Meer over Toestandmachine.

Slides:



Advertisements
Verwante presentaties
Tevredenheids onderzoek Door Lizanne Jespers HBO-V studente Maart 2014
Advertisements

Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Sequence Diagrammen & Toestandsdiagrammen
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
“ff Anders”.  Het thema van dit jaar is “ff Anders” 2.
Prekenserie Handelingen - deel 6 (slot) ‘Gods Woord overwint omdat het mensen in de vrijheid zet!’ Hand 28,31.
PROS2 Les 2 Programmeren en Software Engineering 2.
Programmeren met Alice
Objecten en Volgordediagrammen
Ronde (Sport & Spel) Quiz Night !
HOOFDSTUK 12 Media.
Hoe pas je de interacties in in je analyse van je domein?
prNBN D addendum 1 Deel 2: PLT
Klassieke AO Leseenheid1
Start.
Titel presentatie Vragen subsets OM1 Gemeente Amsterdam 1 januari 2003.
Datastructuren Analyse van Algoritmen en O
Inkomen Begrippen 1 t/m 5 Werkboek blz 5
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
WISKUNDIGE FORMULES.
Persoonlijk worden.
Beoordelen van docenten loont de moeite!
MEDIALANDSCHAP We onderscheiden: Visuele media Auditieve media
Hoofdstuk 1 De grote lijn..
Deel I Hoofdstuk 5: Modelleren van toestand -- gevorderd
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
H51 12 resolutie H51 PHOTOSHOP 1 audiovisueel centrum meise.
Oefeningen F-toetsen ANOVA.
Ontwerpen van Informatiesystemen met
Interaction diagrams: Sequence Diagram
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Beslisbomen Robert de Hoog College Beslissingsondersteuning 26 september 2002.
Onderwijsconferentie
Object Oriented Modeling
Werken aan Intergenerationele Samenwerking en Expertise.
Les 9 Gelijkstroomschakelingen
De eerste presentatie voor Nederlands
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Informatiesystemen in de Bouw
Wanneer heb je een echt, levend, geloof?
Cybersecurity puzzelen aan en mét computers Erik Poll
Schitterende Organisaties®
Module 7 – Hoofdstuk 3 Unified Modeling Language.
ZijActief Koningslust 10 jaar Truusje Trap
Versie 1: ; v2: ; v3: ; v4:… ca. 50 minuten met maken van tekening (vraag 12) ca. 40 minuten zonder maken van tekening (vraag.
Prekenserie Handelingen - deel 5 ‘Gods Woord overwint omdat het mensen in de vrijheid zet!’ Hand 19,20.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
2 januari 2009Nieuwjaarsreceptie "Meule wal straete" 1 Nieuwjaarsreceptie 2 januari 2009 Eerste bijeenkomst van de bewoners van de “Meule wal straete”
1. Zicht op zwemmend redden
De financiële functie: Integrale bedrijfsanalyse©
Oefeningen Workshop RIE Gemeenten
Kirti Zeijlmans MSc Rijksuniversiteit Groningen Voor meer informatie:
Les 3: Verkeer TOETS.
Even voorstellen : Groep 3b
Toets 1 Examen Reinder Reen.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Strijd tegen de zonde?.
ZijActief Koningslust
Het christendom: een dwangbuis? Welkom in de kerk
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
1 XSLT processing & control Datamodellering 2006.
Cegeka & TenForce Ronde tafel 17/06/2014 Doelstellingenmanagement VO.
UML 1. Use cases1. Use cases. Het probleem: Hoe inventariseer ik wensen en eisen voor mijn project? Hoe leg ik ze vast? Hoe geef ik vorm en structuur.
UML De Basics en de Use-case Diagrammen. UML Introductie Unified Modeling Language Grafische modelleertaal Waarom UML? - UML wordt gebruikt om de werking.
Unified Modeling Language
Transcript van de presentatie:

Meer over de semantiek van basiselementen van TM en AD van UML (er zijn elementen en aspecten die niet door deze slides gedekt zijn) Meer over Toestandmachine en Activiteitdiagram in UML

Bronnen 2 Arlow en Neustadt, UML 2 and the Unified Process, UML Spec van 2.2, 2009  Object Management Group 

UML Een groot “taal”. De basis concepten zijn meestal intuïtief, maar er zijn ook allerlei details… Staat beschreven in de officiële definitie van UML (UML spec), hoewel het niet echt “toegankelijk” is … 3 check voorraad bestel lever af [v < k ] Bestelling Handel bestelling af Het heeft geen beginknoop, is dat ok? Van wie is de “v” ? Is eindknoop goed? Het heeft geen beginknoop, is dat ok? Van wie is de “v” ? Is eindknoop goed?

TM vs AD Gebruik je TM of AD? Beide om de dynamiek/gedrag van je “module” te beschrijven AD om te modeleren hoe een functionaliteit door een samenstelling van “acties” gerealiseerd kan worden.  groot verschil tussen UML 1 en 2! TM om te modeleren hoe een module op extrene events moet reageren. 4 Hoe maakt een gebruiker van een Senseo aparaat koffie ? Hoe een een Senseo aparaat werkt.

TM vs AD Beide om de dynamiek/gedrag van je “module” te beschrijven. De concepten van TM en AD bestonden al voor UML Even expressief, maar de perspectieven zijn heel anders  omdat de semantiek heel anders zijn! 5

Reactief “systeem” Een systeem die op “events” (externaal of internaal) wacht en daarop reageert. Het concept van “toestand” is essentieel: Het hoeft niet te termineren. Reactief object  een object die een reactief systeem implementeert 6 entry/ x++ open sluit

Context van TM Je kunt TM gebruiken om de flow van een usecase of de algoritme van een operatie (visueel) te modeleren. TM is natuurlijk om het reactieve gedrag van een object te modeleren, dus in de context van een klasse. 7 entry/ x++ open sluit Deur Naam van TM, hier impliciet ook de naam van de klasse die de TM beschrijft De TM ziet dus de attributen van (een object van) Deur. x is een attribuut van Deur.

Toestand UML-TM is heel uitgebreid. In een toestand of een overgang mag je ook extra aspecten beschrijven.. De exacte volgorde van deze acties en activiteit is een beetje ingewikkeld. 8 Gesloten entry/ actie exit/ actie do/ activiteit naam van de toestand atomisch niet atomisch

Werkschema van een toestand Een toestand wordt door een overgang geënterd  de toestand wordt actief. Entry-actie is uitgevoerd. De do-activiteit begint, als het klaar, dan is de toestand ook “klaar”. Een event kan echter een uit-overgang laten afvuren, voor de toestand klaar is. De do-activiteit wordt dan geïnterrumpeerd. De exit-actie is uitgevoerd. De toestand is verlaten, en is niet meer actief. 9 S entry/ actie exit/ actie do/ activiteit S entry/ actie exit/ actie do/ activiteit

Overgang 10 ST bestelKoffie, bestelThee [ water < 50 ] / “display foutmelding” De overgang vuurt af als: S actief is, en: een van de events treedt op, en: de guard van de overgang geldt (voor eenvoud, neem ik gewoon aan dat de keuze over de uit-overgangen van S deterministich is) De overgang vuurt af als: S actief is, en: een van de events treedt op, en: de guard van de overgang geldt (voor eenvoud, neem ik gewoon aan dat de keuze over de uit-overgangen van S deterministich is) Bij het afvuren : S wordt eerst verlaten, en dan: de actie van de overgang wordt uitgevoerd, dan: T wordt geënterd. Bij het afvuren : S wordt eerst verlaten, en dan: de actie van de overgang wordt uitgevoerd, dan: T wordt geënterd.

Keuze en merge pseudotoestand 11 S T U texpr 1 texpr 2 merge pseudotoestand S T U texpr 1 texpr 2 = S T U e [c] / a [ d 1 ] [ d 2 ] S T U e [ c && d 1 ] / a e [ c && d 2 ] / a =

12:01 Voorbeeld 12 uur_zetbaar inc() / uur++ begintoestand auto-overgang: gebeurt zodra de brontoestand klaar is. min_zetbaar inc ()/ min++ zet() klaar() mode() / … Klok uur min displayMode mode() Klok uur min displayMode mode() Klok mkz+

Composiete toestand Een manier om je TM te structureren, als het te groot wordt. Ook om parallel gedrag te modeleren. 13 non-orthogonale CT orthogonale CT heeft parallelle interne “gebieden” gebied (region)

Enteren en verlaten van composiet toestand 14 ST CT error c a b met event a wordt CT geënterd. De gebieden starten op respectievelijk begintoestanden, en draait vervolgens parallel. met event b wordt CT geënterd. Gebied-2 begint meteen in S. Gebied-1 begint in zijn begintoestand. event error forceert dat CT verlaten wordt, ongeacht in welke toestanden de gebieden zijn. CT is klaar als beide gebieden klaar zijn; de auto-overgang (rood) verlaat vervolgens C. op event c kunnen we direct uit toestand T van gebied-2 CT verlaten. Gebied-1 wordt getermineerd, op zijn toestand op dat moment.

Werkschema 15 CT entry / a exit / b T entry / e U exit / f e Als T uit buiten de CT geenterd wordt, wordt eerst de entry-actie van S uitgevoerd, en dat T. Als we van U de CT verlaten, wordt eerst de exit-actie van U uitgevoerd, en dat die van CT. Analoog als de nesting van CT dieper is. a

Voorbeeld 16 uur_zetbaar entry/knipper uur exit/ontknipper uur inc / uur++ min_zetbaar entry/ knipper min exit/ … inc / min++ klaar zet mode / … Klok zet entry/knipper “:” exit/ontknipper “:” zet 12:01 Klok uur min displayMode mode() Klok uur min displayMode mode() mkz+ entry/wacht 5min

Activiteit diagram Een activiteit is een “programma” van acties (het specificeert in welke volgorde de acties uitgevoerd worden). AD is een diagram om een activiteit te beschrijven. Goed om een “berdrijfsactiviteit” of een “operatie” te modelleren 17 check voorraad bestel lever af [te weinig] [genoeg] Bestelling Handel bestelling af actie … elementair, kan een activiteit aanroepen, niet atomisch input parameter

Waar gebruik je een AD? 18 Use case : handel bestelling af Primary actor: Klant Main flow: Shop check_voorraad(bestelling) handelaf(bestelling) Shop check_voorraad(bestelling) handelaf(bestelling) check voorraad bestel lever af [te weinig] [genoeg] Bestelling Handel bestelling af AD kun je gebruiken om de flow van een use case te beschrijven, of de algoritme van een operatie/methode van een klasse te beschrijven.

“Actieviteit” knoop Staat voor een actie Je mag informeel beschrijven wat de actie doet. Als de AD concreter moet zijn, kun je ook, bijvoorbeeld: operaties van je context aanroepen attributen van de context aanpassen Of, je kun ook een andere activiteit “aanroepen”  een manier om een complexe AD hiërarchisch te structureren. 19

Waaneer vuurt een actie af? Token semantiek 20 actie A BestellingBevestiging actie A Bestelling Bevestiging Een actie vuurt af als er een token is op alle inputlijnen, en de preconditie van de actie is waar. De tokens worden geconsumeerd. De actie is uitgevoerd. Als het klaar is, plaatst het een token per outputlijn.  dus impliciet fork  inherent concurrentie! De actie is dan klaar. Controle lijn draag controle tokens over. Object-flow lijn draagt objecten over  token met data Object-knoop is een buffer van objecten. Een actie vuurt af als er een token is op alle inputlijnen, en de preconditie van de actie is waar. De tokens worden geconsumeerd. De actie is uitgevoerd. Als het klaar is, plaatst het een token per outputlijn.  dus impliciet fork  inherent concurrentie! De actie is dan klaar. Controle lijn draag controle tokens over. Object-flow lijn draagt objecten over  token met data Object-knoop is een buffer van objecten. controle lijn object-flow lijn objectknoop alternatieve notatie met pins > … > … > … > … C D

Lijn (edge) Een lijn transporteert tokens  controle en data tokens Data tokens zijn objecten, geproduceerd “via” object knoop, of “pin” 21 A C Product B D Impliciet moeten A en B objecten van klasse Product produceren. De Product-knoop is een buffer van Product-objecten. Elke inkomende product word in de buffer geplaats. Elke uitlijn neemt een object uit een buffer, als die niet leeg is (met name, objecten worden niet gedupliceerd op de uitlijnen) Impliciet moeten A en B objecten van klasse Product produceren. De Product-knoop is een buffer van Product-objecten. Elke inkomende product word in de buffer geplaats. Elke uitlijn neemt een object uit een buffer, als die niet leeg is (met name, objecten worden niet gedupliceerd op de uitlijnen)

Controle knopen 22 B C B C D A [ conditie-1] [ conditie-2] beslissingknoop: geeft de token door aan een van de uit-lijnen, op basis van de condities. merge-knoop: geeft inkomende token door naar de uit-lijn. B C A B C D vorkknoop: dupliceert inkomende token naar alle uitlijnen. jointknoop: wacht tot er een token op ieder in-lijn, en plaats vervolgens een token op de uitlijn.

Initialisatie 23 AB AB AB AB AB Activiteit begint met A In beide situaties, activiteit begint met A en B tegelijk Activiteit begint met A, als object tokens aanwezig in beide inputpins (UML is hier minder duidelijk) Activiteit begint met B, als object tokens aanwezig in beide inputpins. Tegelijk zal A ook afvuren.

Terminatie 24 UV AB UV A B B begint als V klaar is. B begint als U klaar is. Parallel kan V nog bezig zijn. order UV A B Het kan dus ook zo… AD is inherent concurrent!

Terminatie 25 U V A B U V A B Let op dat terminatieknoop een harde- stop is ! Het termineert de hele activiteit. Dus als U nog bezig is, het wordt gestopt. order Dit is waarschijnlijk niet wat je wil (vermoedelijk fout gebruik van terminatieknoop) U V A B order Waarschijnlijk is dit wat je bedoelt… AD is inherent concurrent!

Swimlanes 26 AB CD E F Anders dan bij gebieden in TM, hebben swim lanes geen speciale betekenis, omdat AD is al concurrent.

27 That’s all folk! Good luck with the exam!