Background for the header
     

Print This Page

 

Available Research Apprenticeship Topics (2007-2008)

Descriptions are in Dutch, but more information is available upon request:

Validation of the first Hybrid Transformation Language

Model Transformaties vormen het hart en de nieren van modelgebaseerde software ontwikkeling. Via model transformaties kan je modellen van de software functionaliteit systematisch vertalen in design- en implementatie-modellen. In eerste instantie lijkt het of men voor het implementeren van dergelijke transformaties niets meer nodig heeft dan bestaande compiler technologie: compilers vertalen immers ook "high-level" programma beschrijvingen in machine-afhankelijke instructies zonder dat de programmeur op de hoogte moet zijn van de onderliggende instructieset.

Hoewel deze redenering geldig is voor de automatische vertaling van bepaalde UML modellen in programma tekst, spreekt het voor zich dat er voor de vertaling van een technologie-onafhankelijk model in een project-specifiek design vaak gekozen moet worden tussen verschillende mappings. De "compiler" heeft hier onvoldoende informatie om automatisch verfijnde modellen en uiteindelijk uitvoerbare code te genereren. Een eerste aanpak bestaat erin om het input model aan te vullen met parameters die aangeven welke model transformatie van toepassing is. Hierdoor verliest dit model echter aan begrijpbaarheid en platform-onafhankelijkheid.

Vandaar werd aan de Universiteit Antwerpen onderzoek verricht naar een model transformatie taal die het toelaat om de ontbrekende informatie interactief te verzamelen bij het transformeren van modellen. Deze taal maakt een unieke combinatie van declaratieve mapping constructies (bekend uit Triple Graph Grammars) met controle structuren (bekend uit Programmed Graph Transformation). Bovendien is deze taal ontworpen met industriŽle toepasbaarheid in gedachte door zich te aligneren met gangbare standaarden van OMG's Model Driven Architecture (MDA). De uitvoerbaarheid van deze taal werd reeds onderzocht door een analyse van de Triple Graph Grammar plugins van de Fujaba tool maar een concrete validatie van de voorgestelde aanpak ontbreekt nog.

De uitdaging van deze stage bestaat erin om een eerste validatie van dit onderzoek uit te werken en de basis te leggen voor validatie op grote schaal. Concreet ben je verantwoordelijk voor:

  1. het uitvoerbaar maken van de "hybrid model transformation language" op basis van Fujaba-gerelateerde infrastructuur:
  2. het uitwerken van de case study uit de gerelateerde research paper
Op basis van dit werk kan je dan verder nadenken over andere of betere taalconstructies, voor- en nadelen van de Triple Graph Grammar- aanpak, e.d.m.

Tijdens deze stage zal je reeds een natuurlijk deel uitmaken van de FOTS onderzoeksgroep. Enerzijds zal je een kick-start krijgen in het gebruik van MoTE en MoTMoT. Anderzijds zal je meewerken aan een publicatie over de resultaten van de validatie. Deze publicatie richt zich concreet op een model transformatie workshop van ECMDA 2008 of de GraBaTs workshop op de International Conference on Graph Transformation (ICGT, Leicester, UK. September 2008).

Evaluation of Model Checking in an MDA context

Model checking is een techniek om het dynamische gedrag van een software model volledig automatisch te analyseren in functie van bepaalde eigenschappen. In tegenstelling tot het combineren van axioma's en stellingen om eigenschappen te bewijzen, wordt nagegaan of eigenschappen gelden voor automatisch gegenereerde instanties van een model.

Meerbepaald wordt automatisch nagegaan of de uitvoeringen van een model aan bepaalde eigenschappen voldoen. Hierbij confronteert een model checking tool de modelleerder vaak met uitzonderlijke uitvoeringsscenario's waarin de gewenste eigenschappen niet gelden. Model checking vereist minder menselijke interventie dan een aanpak gebaseerd op bewijzen maar vergt aanzienlijk meer rekenkracht.

CSP is een taal om processen te modelleren en te analyseren op bepaalde eigenschappen, via mature maar nog steeds actief evoluerende tools zoals FDR.

In recent onderzoek binnen model-driven software engineering tracht men de analyses van model checkers toe te passen zonder de software engineer rechtstreeks in contact te brengen met de concrete syntax van talen zoals CSP. Dit wordt mogelijk gemaakt door vertalingen van "mens-vriendelijke" talen zoals UML naar de taal van een model checker. Zo vertalen Sun en Dong bijvoorbeeld Live Sequence Diagrammen in CSP processen terwijl Bisztray et al. een vertaling vanuit activity diagrammen voorstelt die uitgewerkt werd met de model transformatie tool van FOTS.

De voorgestelde aanpak kan echter slechts succesvol zijn als de aangeboden modelleringstaal effectief mensvriendelijker is dan de taal van de model checker. In het ideale geval wordt de modelleringstaal reeds gebruikt door industriŽle software engineers. Bovendien dienen de analyses harde garanties (of tegenvoorbeelden) te geven die zinvol zijn voor concrete applicaties, van een realistische grootte.

Vandaar zal deze stage op basis van een geval studie (zoals de modellering van een mobiele museum gids) een vergelijking maken van bestaande vertalingen van UML naar CSP. Hierbij dienen de vermelde criteria in de praktijk geëvalueerd te worden en dient ook verder nagedacht te worden over de relevante en volledigheid van deze criteria. Zo is een model-gebaseerde aanpak bijvoorbeeld tevens krachtiger indien de te verifiŽren eigenschappen ook in een mensvriendelijke taal (OCL? Visuele regels?) geformuleerd kunnen worden, in plaats van in de taal van de model checker.

Het werk van deze stage staat in functie van een publicatie op een workshop zoals AVOCS of MODEVA.

Performance Measurement of an Aspect-Oriented Virtual Machine

(contacteer Hans Schippers)

Aspect-Oriented Programming is een recente programmeertechniek die toelaat de modularisatie in Object-Oriented programmacode te verbeteren door middel van een extra modulesoort, genaamd aspecten.

Tot nu toe bleef de ondersteuning voor deze technieken echter beperkt tot het taalniveau (compilerniveau), terwijl er op niveau van de virtuele machine enkel OO mechanismes beschikbaar waren.

Een model + implementatie voor een Aspect-Oriented virtuele machine werd ontwikkeld binnen FoTS in samenwerking met het Hasso Plattner Instituut te Potsdam.

Een belangrijke eigenschap van dergelijke virtuele machine is uiteraard performance. Bijgevolg bestaat de onderzoeksopdracht erin een aantal voorbeeldprogramma's te laten draaien op onze VM, daarop een aantal metingen uit te voeren (zowel in absolute tijd, als in aantal message sends, ...), en deze dan te vergelijken met de resultaten van dezelfde programma's op enkele andere, bestaande VM's. Bovendien kan nagedacht worden over mogelijke verbeteringsstrategieen van de performance van onze VM, al naargelang de bottlenecks die eventueel gevonden zullen worden. Meer specifiek kan vermoedelijk gedacht worden in de richting van gespecialiseerde caching en garbage collection technieken.

 

FOTS - Universiteit Antwerpen - 2006