Title: Formele technieken in SWE
1Formele technieken in SWE
- Petri nets, Proces algebra - 3
2Coloured Petri Nets Alternating Bit Protocol
De manier waarop in een P/T net een (globale)
toestand voorgesteld wordt, nl. door een aantal
tokens in elke plaats, is vaak te weinig
expressief. Een mogelijke oplossing is het
invoeren van soorten van tokens of van
individuele tokens die een waarde voorstellen.
Dat vergt dan wel een uitbreiding van het
formalisme.
We illustreren de algemene idee door een net te
ontwerpen dat het AB protocol modelleert. Dan
gaan we in op het formalisme.
3Coloured Petri Nets Alternating Bit Protocol
Het AB protocol behoort tot de data link laag van
het ISO/OSI model Een host X produceert data
frames d. Elk data frame wordt afgeleverd aan het
protocol. Dat levert, na transmissie door het
netwerk, het data frame af aan host Y.
Voorgesteld als net Alle plaatsen hebben
capaciteit 1 (voorgesteld door /1).
4Coloured Petri Nets Alternating Bit Protocol
Het kan ook door complementaire plaatsen. Het
protocol moet de volgorde van de data frames
bewaren, en er mogen er ook geen verloren gaan.
Deze voorstelling kan gezien worden als
specificatie van het protocol.
De d fungeert nu als een variabele, met als
mogelijke waarden de waarden van de data frames
5Coloured Petri Nets Alternating Bit Protocol
Dit kan maar gegarandeerd worden door de
onderliggende laag (physical layer). Dat betekent
dat het subnet A, s, B verfijnd moet worden. We
kiezen voor volgende representatie data kan in
twee richtingen gaan, en fouten worden
gesignaleerd door middel van het speciale signaal
F.
6Coloured Petri Nets Alternating Bit Protocol
Het volledige systeem
Nu moeten A en B nog verfijnd worden
7(No Transcript)
8Coloured Petri Nets Alternating Bit Protocol
Een data frame gaat via a,c,f,e en b van X
naar Y. Transitie a hangt er een bit x aan,
initieel 1, en die zal verwijderd worden door
transitie b op voorwaarde dat de bit in plaats s9
complementair is. Dit wordt getest door transitie
e (met de inv(x) pijl). Wanneer er een error
optreedt, dan vuurt g in plaats van h, wat een
token F oplevert in s11. Dan zal een negatief
acknowledgment een retransmissie van het frame
veroorzaken (n gevolgd door en door q).Na een
correcte transmissie wordt het volgende data
frame gestuurd met complementaire bit x 0.
Als er bij het doorsturen van het acknowledgment
een fout optreedt, dan vuurt k in plaats van ,
en gebeurt er ook een retransmissie. Die wordt
gedetecteerd doordat de bit niet veranderd is.
Dan vuurt m.
i
i
9Coloured Petri Nets Formeel
- Bij de pijlen van de flow relatie staan nu
termen, en bij transities kunnen condities staan
met daarin termen. - Deze termen zijn opgebouwd uit constanten,
variabelen en functiesymbolen. - Er zijn een aantal soorten van tokens kleuren.
Elke kleur heeft een verzameling van mogelijke
waarden. - Elke variabele en constante heeft zo een kleur.
- Bij elke plaats hoort een kleur-domein die
domeinen zijn geconsrueerd met behulp van de
kleuren. - Een transitie wordt voor het vuren
geïnstantieerd door aan de variabelen in de
betrokken termen een waarde toe te kennen.
10Unfolding
11Unfolding
12Proces algebra
- Ingevoerd vanaf 1980, (R. Milner) als model
waarin acties centraal staan. - Gaf aanleiding tot de taal CSP - Communicating
sequential Processes (T.Hoare). - Is nu, in allerlei varianten, het belangrijkste
theoretische - model voor concurrente systemen.
- Toepassingen in, bv, model checking tools
(SPIN). - Calculus van processen, waartussen equivalenties
bewezen kunnen worden (bv equivalentie tussen 2
termen die respectievelijk een specificatie en
een implementatie voorstelllen)
13Proces algebra basisideën
- Een systeem is een netwerk van agents die
synchroon met elkaar communiceren. - Dat communiceren gebeurt via ports die een naam
hebben. - Dat is alles wat de agents doen.
- Agents verwijzen naar de ports door middel van
complementaire namen, bv a en a a staat dan
voor input en a voor output. - Het gedrag van een agent wordt genoteerd met
behulp van die namen, sequentiële compositie ( ),
keuze () en recursie. De operatie staat voor
concurrente compositie. - Zo bouwt men termen (cfr. functionele talen).
14Basisideën voorbeeld
a
a
A1
A2
Agents A1 en A2 kunnen communiceren via hun
gemeenschappelijke poort a A1 stuurt, A2
ontvangt. Dit gebeurt synchroon, in één actie die
gemeenschappelijk door de twee agents wordt
uitgevoerd.
15Eenvoudige buffer
We modeleren een eenvoudige buffer waarin plaats
is voor één element
Het gedrag van C wordt gegeven door C en
C worden dus geparametrizeerd (met de waarde die
in de buffer komt). C en C kunnen gezien worden
als toestanden van een automaat.
16Meervoudige buffer
We kunnen nu twee van die cellennaast mekaar
plaatsen en ze aan mekaar schakelen
Noteer dat als .Formeel zal dat vereisen
dat we de naam out van de eerste cel en de naam
in van de tweede cel hernoemen tot een stel
complementaire namen, bv. a en a. We kunnen dat
ook n keer doen
Dit kunnen we schrijven als een term
.
17Meervoudige buffer
Stel dat we willen aantonen dat aantonen dat het
zo opgebouwde systeem zich gedraagt als een
buffer met capaciteit n. Dan kunnen we de
specificatie van het gewenste gedrag opschrijven
als een term, of een combinatie van termen
De staat voor concatenatie van woorden. De
voor keuze.
18Meervoudige buffer
We tonen dan aan dat de termen Buffn(w) en
equivalent zijn (met de
juiste notie van equivalentie zgn.
bisimilariteit). Merk op dat de term die de
specificatie uitdrukt, hier dus Buffn(w) , geen
concurrente samenstelling bevat, terwijl de
term die de implementatie uitdrukt die wel bevat.
Deze laatste geeft immers aan hoe het systeem is
opgebouwd, niet wat het doet.
19Meervoudige buffer met acknowledgements
We kunnen dit ook veralgemenen tot cellen en
buffers die een acknowledgement moeten
terugsturen
Cel
Gedrag
Systeem
20Jobshop
Beschouw een werkplaats met 2 arbeiders en twee
werktuigen (hammer en mallet). Dit kan
voorgesteld worden als volgt
Merk op dat een port meer dan 2 componenten kan
verbinden.
21Jobshop hammer
Gebruikte namen
Gedrag Of nog
22Jobshop jobber
Toestanden
Sort (gebruikte namen)
Schema
23Samenstelling
De namen puth, puth, geth, geth worden lokaal
gemaakt (onzichtbaar naar buiten toe). Als proces
term
24Samenstelling
Dit wordt voorgesteld als volgt
De lokale ports zijn niet meer beschikbaar voor
verdere interacties met andere agents.
25Samenstelling
De hele jobshop wordt geschreven als ( Jobber
Jobber hammer Mallet ) \ L
waar L geth, puth, getm, putm
De vijf manieren waarop termen gevormd worden
26Specificatie
We definiëren een agent Strongjobber die geen
hulpmiddelen nodig heeft De eis gesteld aan
Jobshop is dan dat die equivalent moet zijn
(hetzelfde gedrag hebben) als twee Strongjobbers
Deze keer bevat de specificatie dus wel een .
27Proces algebra formeel
Alfabet L A ? A Term P kan actie l uitvoeren
en verandert daardoor in term Q
Het gedrag van samengestelde termen kan afgeleid
worden uit dat van hun componenten
Bekijk bv. A en B
28Afleiden van stappen
Bekijk nu de term A B.
Uit A A volgt dat AB AB
Uit A A volgt dat AB
AB Uit A A en B B volgt dat
AB AB
29De stille actie ?
De communicatie via c is een communicatie tussen
twee, en niet meer agents. De ? kan dus niet meer
gesynchronizeerd worden met een complementaire
actie van een derde agent. Een actie kan lokaal
gemaakt worden door hiding (\L met de set
van te verbergen namen). Als C bv een agent is
die actie c kan uitvoeren, dan kan de A in
ABC communiceren (via c) met B en C, maar in
( (AB) \c ) C kan A alleen
met B communiceren via c.
30Transitie-boom en -graph
Boom
Graph
31Afleidingsregels voor de transities
Structured Operational Semantics de regels
corresponderen met de manier waarop termen
(programmas) opgebouwd zijn.
32Afleidingsregels gebruik
Om aan te tonen dat Construeren we een proof
tree
33Recursie
De definitie A a.A kan geschreven worden als
A fix(X
a.X). (cfr de fixpuntcombinator bij het
functioneel programmeren) We introduceren dus
een nieuwe soort expressies (met fix), En daarbij
hoort een nieuwe regel
34Bisimulatie
Twee termen zijn (semantisch) gelijk wanner ze
hetzelfde gedrag vertonen. Hier betekent
hetzelfde gedrag niet alleen dat dezelfde
acties kunnen uitgevoerd worden, maar ook op
dezelfde manier interageren met andere
agents. Daarom zijn bv a.(bc) en a.b a.c
niet equivalent. De gebruikte equivalentie ? is
gebaseerd op bisimulatie Een relatie tussen
termen is een bisimulatie als er voor elke A B
en elke mogelijke stap a van A (resp B) een stap
a vanuit B mogelijk is, zo dat de bereikte termen
opnieuw gerelateerd zijn door
A B
A
B
a
a
35Bisimulatie
Met behulp van de afleidingsregels kan men dan
algebraïsche vergelijkingen gaan bewijzen die het
redeneren over equivalentie van termen
eenvoudiger maken
P Q O P P (Q R) (P Q) R P ?.P
?.P
36Proces algebra
- Vormen nog steeds een zeer actueel
onderzoeksgebied - Grondslag voor allerlei tools, bv voor
verificatie en modelllering - Er bestaan veel varianten bv ?-calculus,
ambient calculus, - Er bestaan modeltransformaties van termen naar
Petri netten en omgekeerd.
37Van term naar P/T net
Regels
38Van term naar P/T net
Voorbeeld