Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Alfons Laarman.

Slides:



Advertisements
Verwante presentaties
Laurens van der Maaten IKAT / ROB
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Eerste kennismaking met programmeren in RoboMind
E-RADEN Roadmap. AGENDA • Overzicht van nieuwe ontwikkelingen 2009 • Interfaces • Document Types : Meta-data • E-raden gratis ? • Perspectieven.
Spectrum TRIZ. Er zijn te veel apparaten die op dezelfde bandbreedte communiceren met elkaar waardoor de bandbreedte vol raakt en de communicatie mogelijkheden.
Provocatief te werk in een assertiviteitstraining.
© Flipside On-Line Reserveringssysteem Reserveren via uw eigen site, snel en eenvoudig.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Les 1 Objecten, Eigenschappen en Gebeurtenissen
Kwaliteit en betrouwbaarheid van simulaties ir. Rudolf van Mierlo Efectis Nederland BV.
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Hoofdstuk 6: Controle structuren
De koektrommel of de grabbelton
Instructie Programmeren Task 5
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
Java patterns Introductie tot GoF patterns in Java.
Numerieke Natuurkunde
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Oplossingsgericht coachen voor Studieloopbaanbegeleiding
Nieuw in LIPS VLUG 2 26 juni 2006 Kristof Brams. Overzicht Vernieuwde editor Printervriendelijke pagina Statistieken Variabele fontgrootte Grootte van.
Idee Generatie Wit Papier, Warcraft 3, Thrall, Hoofdpijn, denken, rare les, Karel aan het ijsberen, Schrijven, Opdracht, Schaken, Stappen, Oplichten, Vooruit.
Praktische opdracht informatica door : Xandor Spijkers klas: v4c.
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Module 7 – Hoofdstuk 3 Unified Modeling Language.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
1 Welkom Loe Hameleers Gerard Maeijer. 2 ERP systemen zullen een ingrijpende verandering ondergaan ERP systemen zullen een ingrijpende verandering ondergaan.
Object georiënteerd programmeren in Alice
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Eindproject programmeren “Monster”
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
“De theorie van het inventief oplossen van problemen”
Les 2: Zaterdag 24 mei 2014 Wim Peeters
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Controllers en automatisatie
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
CONTROLESTRUCTUREN (DEEL 1)
Intermezzo: Queries op zoekbomen Datastructuren. Queries: hoe op te lossen We hebben: – Een zoekboom (gewoon, rood-zwart, AVL,…) – Een vraag / querie.
Het verschil tussen telefoon en . Telefoon Telefoon is het communicatiemiddel waarmee je elkaar met een telefoon kan oproepen en zo met iemand kan.
Les 5 De Muis (deel 2) Drag & Drop
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
Gevorderde programmeer les
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Allard Kamphuisen Hado van Hasselt Wilco Broeders
Prototyping Week 7 // Tweenlite & API. TweenMax Snel mooie en effectieve animatie.
Een hacker is in het dagelijks spraakgebruik meestal iemand die inbreekt in computersystemen.computersystemen In bepaalde technisch georiënteerde subculturen.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
Tekstverklaring Hoe doe je dat?.
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Variabelen. Wat zijn variabelen? In een programmeertaal zijn er “dingen” nodig die ervoor zorgen dat het programma informatie voor korte of langere tijd.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Data Mining without Discrimination Valorisatiepanel 4 december – Faculty Club – Universiteit Leiden.
Loops en errors Array's Random try catch for loop while loop do while loop.
Na de praktijk, de theorie.. Zoals een gehaktmolen 1.Je stopt er iets in. 2.Je hoeft niet te weten wat er binnenin gebeurt. 3.Het resultaat verschijnt.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
GUI & classes Een Gui in een class steken en het object gebruiken.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
BEGINNER EV3 PROGRAMMeer Les
Programmeren met Reeksen
Gevorderde EV3 PROGRAMMEER LES
Gevorderde programmeer Les
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Kennismaking met programmeren
Onbevredigd door Testautomatisering? Reduceer je False Negatives!
Transcript van de presentatie:

Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Alfons Laarman

Overzicht (1/2) Introductie Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Wat is verificatie? Wat is aspect georiënteerd programmeren (AOP)? De modulaire oplossing voor het verifiëren van AOP.

Overzicht (2/2) De verbeteringen Classificatie van aspecten Verbetering van de model-checker Bijkomende voordelen Conclusie

Introductie

Wat is verificatie? (1/3) Controle of een programma onder alle mogelijke omstandigheden aan een bepaalde eigenschap voldoet.

Wat is verificatie? (2/3) Voorbeeld While (true) { If (trein nadert) { boom.omlaag(); wacht(trein over); boom.omhoog(); } Eigenschap: Altijd((trein op overgang)  boom.isOmlaag())

Wat is verificatie? (3/3) De praktijk While (true) { If (trein nadert){ boom.omlaag(); wacht(trein over); boom.omhoog(); } Automatisch mbv een model-checker: Model generatie Model verificatie Mbv eigenschap

Wat is AOP? (1/2) Object georiënteerd programmeren (OOP) log(“doeZet”)log(“isBezet”) Crosscutting concerns

Wat is AOP? (2/2) Crosscurring concerns in aspecten: Logger onCall(isBezet || doeZet)  log() Function Log() {..} Weaver voegt advice code in op de joinpoints, door de pointcuts te evalueren. Pointcuts Advice code joinpoints Code op twee plaatsen

De modulaire oplossing voor het verifiëren van AOP (1/4) 1.Verifieer OOP (basis) programma geïsoleerd. 2.Sla voor ieder joinpoint de status van de verificatie op in een zogenaamde interface. 3.Gebruik de interfaces om te verificatie te hervatten in de aspecten. 4.Als de verificatie van de aspecten slaagt, dan voldoet het samengestelde programma ook aan de eigenschap(pen).

De modulaire oplossing voor het verifiëren van AOP (2/4)

De modulaire oplossing voor het verifiëren van AOP (3/4) Voordelen: Aspecten kunnen los van het basis programma ontwikkelt worden Her-verificatie van aspecten gaat sneller omdat niet telkens het basis programma geverifieerd moet worden.

De modulaire oplossing voor het verifiëren van AOP (4/4) Beperking: Aspecten, die data van het basis- programma veranderen, invalideren het model van het basisprogramma en daarmee de interfaces. Dit kan een “false positive” als resultaat opleveren.

De verbeteringen

Classificatie van aspecten (1/2) Een classificatie systemen voor aspecten. ScopeBeschrijving Orthogonal Advice en basisprogramma lezen en schrijven naar verschillende velden (bijvoorbeeld logging) Independent Advice en basisprogramma schrijven naar verschillende velden ObservationAdvice leest velden die het programma schrijft Actuation Modificeerd data van het basisprogramma, maar zet de oospronkelijke waarden terug InterferenceModificeerd data van het basisprogramma

Verbetering model-checker Door integreren van de classificatie tool in de model-checker kunnen de “false positives” vermeden worden. Als een ‘inference’ of ‘actuation’ aspect wordt gedetecteerd moet de input worden verworpen of worden verder geleid naar een andere model-checker.

Bijkomende voordelen Orthogonal advice kan de verificatie van het basisprogramma niet invalideren, dus hoeft niet opnieuw geverifieerd te worden.

Samenvatting en conclusie De modulaire model-checker is efficiënte manier voor het verifiëren van AOP. We hebben de modulaire model-checker verbeterd door een classificatie tool te integreren. “False positives” worden nu voorkomen. Daarnaast kunnen orthogonale aspecten gelijk geaccepteerd worden. Er zijn beschikbare tools gebruikt, daarmee is aangetoond dat het in de praktijk werkt.

Vragen?