Formele technieken in SWE

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

Formele Technieken in SWE Petri Nets - 2. Petri Nets t3t3 t2t2 t1t1 Plaatsen: passief, bevatten tokens (markering) Transities: actief, wijzigen de markering.
Serieel naar parallel omzetting
Blok 7: netwerken Les 7 Christian Bokhove.
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Programmeren met Alice
Parallel naar serieel omzetting
Databases via internet
Voorbeeld Betaalautomaat objecten (“wie”) klant bank interface (“wat”)
ADS Verborgen bestanden (stromen) Cum 13 juli 2008 Rudiger.
Vervolgbijeenkomst 2 Procesfasering bij Leren Leren.
Objecten en Volgordediagrammen
Formele Technieken in SWE - Petri Nets 16 feb 2007.
Hoog Leer noten lezen! Deel 1 Laag A - B - C - D - E - F - G
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Practica Computerlinguistiek Tekst en uitleg:
Het vergelijken van twee populatiegemiddelden: Student’s t-toets
Deel I Hoofdstuk 5: Modelleren van toestand -- gevorderd
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Assenstelsels en het plotten van Functies in LOGO
8C120 Inleiding Meten en Modelleren 8C120 Prof.dr.ir. Bart ter Haar Romeny Faculteit Biomedische Technologie Biomedische Beeld Analyse
Leiderverkiezing Olympus College 14 april 2008 David N. Jansen.
De neurale basis van structuur in taal Gideon Borensztajn
College 22 Interaction College MCI-2 Jacobijn Sandberg 18 januari 2001.
Samenwerken en netwerkvorming Brede School 16 mei 2008 Rita L’Enfant
Hoofdstuk 11 Kwantitatieve gegevens analyseren Methoden en technieken van onderzoek, 5e editie, Mark Saunders, Philip Lewis, Adrian Thornhill, Marije.
-calculus.
Les 9 Gelijkstroomschakelingen
1 Foutcontrole met feedback Communicatietheorie Partim Datacommunicatie.
Blok 7: netwerken Les 1 Christian Bokhove
Netwerken / Internet ICT Infrastructuren David N. Jansen.
Een Module over Model Checking voor het VWO Frits Vaandrager1, David Jansen1 & Els Koopmans2 1Radboud Universiteit Nijmegen 2Olympus College Arnhem.
Klik ergens op het witte deel van deze pagina om verder te gaan
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
H4 Differentiëren.
Het timing model in VHDL
Intensief lezen Lees de tekst grondig door en duid kernwoorden en/of –zinnen aan. Doe dit zo. Hoe doe je dit? Volg de pijl en dan zie je het symbooltje.
Modelleren van XML element content of Hoe doe je dat? Harrie Passier & Bastiaan Heeren TouW-dag 13 november 2010.
Sparkle een bewijssysteem voor Clean Maarten de Mol Katholieke Universiteit Nijmegen 11 januari 2002.
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
Onderzoek doen een methodische aanpak
Controllers en automatisatie
Neurale Netwerken Genetische Algorithmen
Datamodellering en –verwerking 8C020 college 6
Parsing 1. Situering Contextvrije grammatica’s Predictive (of recursive-descent) parsing LR-parsing Parser generator: Yacc Error recovery 2.
Samenvatten Klas 4A de Foorakker.
Veldenmodel Selectielijst
Inhoud Analyse van sequentiële netwerken Sequentiële bouwblokken
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Unfold your potential Excellente Excel-tips Februari 2015.
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
Onderzoeksvaardigheden 3
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Grip op Regionale Samenwerking: Rob de Greef en Roeland Stolk.
Voorbeeldvraag 1 Welke uitspraak is JUIST: 1. De basisstelling van Nicolas Carr (auteur van "IT doesn't matter") is dat de investeringen die in IT gedaan.
Naar een leerlijn ‘onderzoekende houding’ ECENT conferentie, 5 juni 2009 Ton van der Valk, Universiteit Utrecht FIsme; Junior College Utrecht.
Reactievergelijkingen Een kwestie van links en rechts kijken.
Inhoud Optellen en aftrekken. Vermenigvuldigen en delen.
Lean Six Sigma - Verbetermanagement
Gevorderde EV3 PROGRAMMEER LES
Unified Modeling Language
M5 Datacommunicatie Transportlaag
Technisch Ontwerp inhoud
Stap drie bij projecten
Netwerken & Internet 1.
Transcript van de presentatie:

Formele technieken in SWE Petri nets, Proces algebra - 3

Coloured 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.

Coloured 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).

Coloured 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

Coloured 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.

Coloured Petri Nets: Alternating Bit Protocol Het volledige systeem: Nu moeten A en B nog verfijnd worden:

8.16. AB protocol

Coloured 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

Coloured 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.

Unfolding: 8.17. Unfolding - eerste stap

Unfolding: 8.18. Unfolding - tweede stap

Proces 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)

Proces 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).

Basisideën: voorbeeld 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.

Eenvoudige 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.

Meervoudige 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 … .

Meervoudige 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.

Meervoudige 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.

Meervoudige buffer met acknowledgements We kunnen dit ook veralgemenen tot cellen en buffers die een acknowledgement moeten terugsturen: Cel: Gedrag: Systeem:

Jobshop 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.

Jobshop: hammer Gebruikte namen: Gedrag: Of nog:

Jobshop: jobber Toestanden: Sort (gebruikte namen): Schema:

Samenstelling De namen puth, puth, geth, geth worden lokaal gemaakt (onzichtbaar naar buiten toe). Als proces term:

Samenstelling Dit wordt voorgesteld als volgt: De lokale ports zijn niet meer beschikbaar voor verdere interacties met andere agents.

Samenstelling De hele jobshop wordt geschreven als ( Jobber | Jobber | hammer | Mallet ) \ L waar L = { geth, puth, getm, putm } De vijf manieren waarop termen gevormd worden:

Specificatie 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 “|”.

Proces algebra: formeel Alfabet: L = A  A Term P kan actie l uitvoeren en verandert daardoor in term Q: P Q l Het gedrag van samengestelde termen kan afgeleid worden uit dat van hun componenten: Bekijk bv. A en B :

Afleiden van stappen Bekijk nu de term A | B. a a Uit A A’ volgt dat A|B A’|B Uit A’ A volgt dat A’|B A|B Uit A’ A en B B’ volgt dat A’|B A|B’ c c c c 

De 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 A’|B|C communiceren (via c) met B en C, maar in ( (A’|B) \{c} ) | C kan A’ alleen met B communiceren via c.

Transitie-boom en -graph

Afleidingsregels voor de transities Structured Operational Semantics: de regels corresponderen met de manier waarop termen (programma’s) opgebouwd zijn.

Afleidingsregels: gebruik Om aan te tonen dat Construeren we een proof tree:

Recursie 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:

Bisimulatie 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.(b|c) 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

Bisimulatie 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 …

Proces 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.

Van term naar P/T net Regels:

Van term naar P/T net Voorbeeld: