Het programmeren van applicaties is nu nog vrij intensief werk waarbij veel fouten gemaakt kunnen worden. Hoogleraar software engineering Arie van Deursen en universitair hoofddocent Eelco Visser willen het programmeren van software door middel van model-driven engineering naar een hoger niveau brengen.
Wat houdt het onderzoek in?
Arie van Deursen: "Ons onderzoek gaat over twee onderwerpen. Het eerste thema is model-driven engineering. Hiermee proberen wij het niveau waarop je softwaremaakt naar een hoger niveau te tillen. Het andere thema is de evolutie van software. Met de ouderwetse 4GL-aanpakken kon je snel iets neerzetten. Maar het maken van aanpassingen die buiten het door de 4GL opgelegde stramien vielen was een stuk lastiger. We proberen ervoor te zorgen dat je toch snel iets neer kunt zetten en het vervolgens ook snel kunt blijven aanpassen. De combinatie van modeldriven engineering en evolutie is uniek aan dit project."
Wat is model-driven engineering?
Eelco Visser: "De bedoeling van model-driven engineering, of domeinspecifieke talen, is de ontwikkeling van een programma naar een hoger abstractieniveau te tillen. Een programma wordt dan bijvoorbeeld niet meer in Java geschreven,maar in (modelleer) talen die specifiek op dat toepassingsgebied gericht zijn. In deze aanpak worden de onderdelen vande code die gemeenschappelijk zijn tussen allerlei applicaties (zoals code voor user interfaces) automatisch gegenereerd naar een model. Een generator vertaalt dit model dan weer naar een toepassing."
Tegen welke problemen lopen jullie aan bij het ontwikkelen van een modelleertaal?
Visser: "Een probleem betreft de interactie tussen de modellen. Je hebt verschillende modellen nodig om een programma te maken. Uit deze modellen genereer je code en onderdelen van deze code moeten met elkaar kunnen praten. Dat betekent dat de modellen op een hoger niveau iets van elkaar moeten afweten. Een tweede probleem komt na het op maat maken van de software. Vaak blijkt dat je de code wilt aanpassen aan een specifieke omstandigheid. In de praktijk betekent dat, dat er code wordt gegenereerd en dat daarin veranderingen worden gemaakt. Dat betekent dat je daarna geen code meer kunt genereren, omdat dan de code die je aangepast hebt, overschreven wordt. In plaats daarvan is het noodzakelijk dat de modellen uitgebreid kunnen worden met specifieke code. Een derde probleem is de evolutie van modellen.Als je meer begrip krijgt van een domein, dan wil je de taal aanpassen, waardoor je de generator en ook de modellen moet veranderen. Nu moet dat ook wel eens als er een nieuwe versie van een programmeertaal uitkomt,maar dat is nog een redelijk ongebruikelijke gebeurtenis. Maar als iedereen talen kan en gaat ontwerpen, dan wordt dat een dagelijkse praktijk."
Hoeveel draagt de nu verstrekte subsidie bij aan het project?
Van Deursen: " We hebben 729.868 euro gekregen van het NWO. Daarvan kunnen we twee promovendi betalen die er allebei vier jaar aan zullen werken.Ook zullen er één postdoc en een universitair docent drie jaar aan het project werken. Daarnaast zijn er nu nog een aantal afstudeerders aan het werk.Verder investeren de betrokken bedrijven de helft van de subsidie nog in menskracht."
Wat is het einddoel?
Van Deursen: "Aan alle problemen hebben we al eerder gewerkt en we hebben dus al diverse goede startpunten. In dit project willen we die integreren.Over vier jaar hebben wij een aantal prototype tools waarmee je experimenten rond model-driven evolutie kunt doen, waarmee je bijvoorbeeld zelf nieuwe talen en generatoren kunt maken.Verder willen we ervaringen op papier zetten met deze aanpak in het bedrijfsleven."
Is Nederland innovatief bezig?
Van Deursen: "Nuchter kijkend naar de feiten van dit projectvoorstel, ben ik momenteel niet ontevreden. Wij verkeren in een gelukkige situatie, maar ik denk dat veel meer van dit onderzoek nodig is. Het maken van software is zeer belangrijk. Er is een groot tekort aan software engineers. Dat heeft invloed op allerlei bedrijven. Nederland komt tot stilstand als er geen software wordt ontwikkeld of aangepast. De software engineering gemeenschap en de it in Nederland moeten aandringen op meer geld hiervoor, want dit is heel belangrijk."
[Beeld: Peter Pakvis]
Wie doet wat?
Aan het project werken vier jaar lang twee promovendi. Drie jaar lang zijn een postdoc en universitair docent betrokken bij het project. Verder zullen ook een aantal afstudeerders meewerken aan het onderzoek. Naast de TU Delft zijn ook vijf bedrijven bij het onderzoek betrokken. Dat zijn Ordina, De Amersfoortse Verzekeringen, Atos Origin, GetronicsPinkRoccade en Interactive Objects. Omdat de professoren al veel ervaring hebben opgedaan op dit gebied, zullen er vanaf de start al meteen in samenwerking met de bedrijven, een aantal casestudies worden uitgevoerd.
Wie zijn de onderzoekers?
Eelco Visser heeft vooral onderzoek gedaan naar het genereren en transformeren van programma's en het maken van nieuwe talen. Arie van Deursen heeft vooral ervaring met het onderzoeken van bestaande code en herkennen van patronen daarin.
Onderzoeksprogramma’s
De Nederlandse Organisatie voor Wetenschappelijk Onderzoek (NWO) honoreerde in juli 2006 dertien onderzoeksprojecten op het terrein van informatica. Totaal gaat het om 6,5 miljoen euro. Met het geld gaan 38 onderzoekers aan het werk. De projecten vallen binnen vier informaticaonderzoeksprogramma's van het gebied Exacte Wetenschappen van NWO. De vier onderzoeksprogramma's zijn GLANCE, VIEW, JACQUARD en BRICKS/FOCUS. Het onderzoek MODSE behoort tot het programma JACQUARD. Met dit onderzoeksprogramma stimuleren NWO en het ministerie van Economische Zaken onderzoek naar de voortdurende evolutie van software en de steeds verder toenemende complexiteit van softwaresystemen. Het onderzoek wordt aangestuurd door het bedrijfsleven. Het totale programmabudget bedraagt 13,6 miljoen euro, waarvan ruim 5 miljoen eigen inbreng is van de onderzoeksinstellingen en het bedrijfsleven.