De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Alfons Laarman."— Transcript van de presentatie:

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

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

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

4 Introductie

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

6 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())

7 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

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

9 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

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

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

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

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

14 De verbeteringen

15 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

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

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

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

19 Vragen?


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

Verwante presentaties


Ads door Google