Meer over de semantiek van basiselementen van TM en AD van UML (er zijn elementen en aspecten die...
-
Upload
pepijn-molenaar -
Category
Documents
-
view
217 -
download
0
Transcript of Meer over de semantiek van basiselementen van TM en AD van UML (er zijn elementen en aspecten die...
![Page 1: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/1.jpg)
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
![Page 2: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/2.jpg)
Bronnen
2
• Arlow en Neustadt, UML 2 and the Unified Process, 2005.
• UML Spec van 2.2, 2009 Object Management Group www.omg.org
![Page 3: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/3.jpg)
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
leveraf
[v < k ]Bestelling
Handel bestelling af• Het heeft geen beginknoop, is dat ok?
• Van wie is de “v” ?
• Is eindknoop goed?
![Page 4: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/4.jpg)
TM vs AD
Gebruik je TM of AD?
Beide om de dynamiek/gedrag van je “module” te beschrijvenAD 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.
![Page 5: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/5.jpg)
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
![Page 6: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/6.jpg)
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
![Page 7: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/7.jpg)
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.
![Page 8: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/8.jpg)
ToestandUML-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
Geslotenentry/ actieexit/ actiedo/ activiteit
naam van de toestand
atomisch
niet atomisch
![Page 9: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/9.jpg)
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
Sentry/ actieexit/ actiedo/ activiteit
![Page 10: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/10.jpg)
Overgang
10
S T
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)
Bij het afvuren :• S wordt eerst verlaten, en dan:• de actie van de overgang wordt uitgevoerd, dan:• T wordt geënterd.
![Page 11: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/11.jpg)
Keuze en merge pseudotoestand
11
S
T
U
texpr1
texpr2 merge pseudotoestand
S
T
Utexpr1
texpr2
=
S
T
U
e [c] / a
[ d1 ]
[ d2 ]
S
T
U
e [ c && d1 ] / a
e [ c && d2 ] / a
=
![Page 12: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/12.jpg)
12:01Voorbeeld
12
uur_zetbaar
inc() / uur++
begintoestand
auto-overgang: gebeurt zodra de brontoestand klaar is.
min_zetbaar
inc ()/ min++
zet()
zet()
klaar()klaar()
mode() / …
Klokuurmin
displayModemode()
Klok
m k z +
![Page 13: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/13.jpg)
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 CTheeft parallelle interne “gebieden”
gebied (region)
![Page 14: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/14.jpg)
Enteren en verlaten van composiet toestand
14
S T
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.
![Page 15: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/15.jpg)
Werkschema
15
CTentry / aexit / 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
![Page 16: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/16.jpg)
Voorbeeld
16
uur_zetbaar
entry/knipper uurexit/ontknipper uur
inc / uur++
min_zetbaar
entry/ knipper minexit/ …
inc / min++
klaar
zet
mode / …
Klok
zet
entry/knipper “:”exit/ontknipper “:”
zet
12:01
Klokuurmin
displayModemode()
m k z +
entry/wacht 5min
![Page 17: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/17.jpg)
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
leveraf
[te weinig]
[genoeg]
Bestelling
Handel bestelling af
actie … elementair, kan een activiteit aanroepen, niet atomisch
inputparameter
![Page 18: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/18.jpg)
Waar gebruik je een AD?
18
Use case : handel bestelling af
Primary actor: Klant
Main flow:
Shopcheck_voorraad(bestelling)
handelaf(bestelling)
check voorraad
bestel
leveraf
[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.
![Page 19: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/19.jpg)
“Actieviteit” knoop
Staat voor een actieJe mag informeel beschrijven wat de actie doet.Als de AD concreter moet zijn, kun je ook,
bijvoorbeeld:operaties van je context aanroepenattributen van de context aanpassen
Of, je kun ook een andere activiteit “aanroepen” een manier om een complexe AD hiërarchisch te structureren.
19
![Page 20: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/20.jpg)
Waaneer vuurt een actie af?Token semantiek
20
actie A
Bestelling Bevestiging
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.
controle lijn
object-flow lijn
objectknoop
alternatieve notatie met pins
<<localPrecondition>>…
<<localPostcondition>>…
C
D
![Page 21: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/21.jpg)
Lijn (edge)
Een lijn transporteert tokens controle en data tokens
Data tokens zijn objecten, geproduceerd “via” object knoop, of “pin”
21
A CProduct
BD
• 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)
![Page 22: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/22.jpg)
Controle knopen
22
B
C
B
C
DA
[ 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
CA
B
CD
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.
![Page 23: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/23.jpg)
Initialisatie
23
A B
A B
A B
A B
A B
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.
![Page 24: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/24.jpg)
Terminatie
24
U V
A B
U V
A B
B begint als V klaar is.
B begint als U klaar is. Parallel kan V nog bezig zijn.
order U V
A B
order
Het kan dus ook zo…
AD is inherent concurrent!
![Page 25: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/25.jpg)
Terminatie
25
U
V
AB
U
V
AB
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
ABorder
Waarschijnlijk is dit wat je bedoelt…
AD is inherent concurrent!
![Page 26: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/26.jpg)
Swimlanes
26
A B
C D
E
F
Anders dan bij gebieden in TM, hebben swim lanes geen speciale betekenis, omdat AD is al concurrent.
![Page 27: 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.](https://reader033.fdocuments.net/reader033/viewer/2022042814/5551a0ef4979591f3c8b8eb7/html5/thumbnails/27.jpg)
27
That’s all folk! Good luck with
the exam!