NL FR EN
www.belgium.be

Fundamentele vraagstukken in software engineering: modelleren, verificatie en evolutie van software

Onderzoeksproject P6/39 (Onderzoeksactie P6)

Personen :

Beschrijving :

Software-intensieve systemen bevinden zich onder de meest complexe bouwwerken ooit gemaakt: ze ondergaan veelvuldig continu veranderende eisen, ze interageren met een verscheidenheid aan gebruikers en andere systemen, ze zijn samengesteld uit vele communicerende en heterogene componenten, ze moeten snel aanpasbaar zijn aan veranderende technologie en ze bestaan bovendien dikwijls uit verschillende varianten die parallel in gebruik zijn.

In de ontwikkeling van zulke systemen is het gebruik van rigoreuze modellen en analysemethoden essentieel teneinde er zeker van te zijn dat de software aan haar specificaties voldoet en bovendien een aantal vooropgestelde interne eigenschappen bezit zoals o.m. veiligheid (zowel “safety” als “security”), betrouwbaarheid en consistentie. Tegelijkertijd dienen zulke “betrouwbare” systemen - ten gevolge van voortdurend veranderende eisen en specificaties - wendbaar te zijn m.b.t. aanpassingen, en dit zonder deze laatste eigenschappen teniet te doen.

Dit onderzoek spitst zich toe op de ontwikkeling, integratie en uitbreiding van state-of-the-art talen, formalismen en technieken die moeten toelaten van betrouwbare software systemen te modelleren en te verifieren en die de evolutie van zulke systemen ondersteunen.

In dit project gaan we uit van een brede definitie van “Model Driven Engineering” (MDE) als zijnde een aanpak die het gebruik van modellen (in een brede zin) als drijvende kracht ziet in alle aspecten van software engineering . Dit omvat zowel het vergaren van systeemeisen, het systeemontwerp, platform- en taaldefinitie, het definiëren van relaties tussen artefacten, gegevensmodellering, ontwerpanalyse, toolspecificatie evenals de ontwikkeling van families van producten.

Formele modelering en verificatie leveren een onschatbare bijdrage aan MDE door techieken aan te bieden die toelaten om modellen te ontrafelen en/of samen te stellen, om inconsistenties tussen modellen te detecteren en op te lossen, om modellen consistentiebewarend te verfijnen, transformeren en te synthetiseren, om abstracte modellen op te stellen vanuit gedetailleerde beschrijvingen en om verificatiemethoden en -hulpmiddelen te bouwen.

Geavanceerde scheiding van bekommernissen zoals het door de aspectgerichte sofwareontwikkelingsbeweging (AOSD) wordt aanhangen heeft een bijzonder voordelig effect op software evolutie aangezien het toelaat dat verschillende bekommernissen onafhankelijk van mekaar kunnen worden beheerd en onderhouden. Paradoxaal genoeg doch, leidt het opsplitsen in verschillende bekommernissen tot een verscheidenheid aan verschillende modellen die subtiele interacties vertonen en die onderling consistent moeten gehouden worden indien één van hen evolueert. Dat is dan ook meteen de reden waarom de combinatie van AOSD en MDE ons voor nieuwe uitdagingen stelt.

Door synergie en kruisbestuiving van onze expertise in onze verschillende onderzoeksdomeinen (namelijk MDE, formele methoden en verificatie, software evolutie en AOSD) beogen we de grenzen binnen dit domein te verleggen, en wel door het voeren van:

• onderzoek in talen waarin softwaresystemen gemodelleerd en geïmplementeerd worden en waarin Automatisch verifieerbare eigenschappen van de software, van het modelleerproces en van het implementeerproces kunnen worden uitgedrukt, zowel tijdens de initiële ontwikkeling van de software als tijdens evolutionaire stappen ervan.
• onderzoek in rigoreuze methoden en technieken die toelaten modellen en programma’s in een MDE/AOSD-context te bouwen, te combineren en te verifiëren. Het is ons doel om efficiënte en schaalbare technieken en methoden te verschaffen waarmee modellen getransformeerd kunnen worden en waarmee de consistentie tussen modellen nagekeken en afgedwongen kan worden.
• onderzoek in evolutie van modellen met specifieke focus, enerzijds op de studie van technieken om modellen te herstructureren en te co-evolueren, en anderzijds op de mogelijkheid om verficiatietechnieken aan te passen aan deze context van evoluerende modellen. Het is ons doel ondersteuning te bieden om de impact van veranderingen bij evoluerende modellen in te schatten en om andere modellen aansluitend met deze evoluerende modellen te synchroniseren. Verder is het ons doel om de verificatie van eigenschappen bij veranderende modellen incrementeel te laten verlopen zodat niet telkens opnieuw het volledige model geverifieerd dient te worden.

Dit consortium groepeert de belangrijkste Belgische onderzoeksgroepen die actief zijn in het domein van software engineering en die internationaal wetenschappelijke erkenning genieten in de domeinen: model-driven engineering, software evolutie, formeel modelering en verificatie, en aspect-gerichte softwareontwikkeling. De langetermijn doelstellingen van het netwerk bestaan erin van bestaande samenwerkingen uit te bouwen en van nieuwe samenwerkingsbanden te smeden, alsook van de opgedane onderzoeksexpertise in deze domeinen verder te dissemineren en op te tillen naar het Europese niveau.

Documentatie :