Skip to ContentSkip to Navigation
Society/business Commissioning research Industry Relations
Header image Industry Relations

Architectuur is de sleutel tot succesvolle software

Datum:11 februari 2020
Auteur:Team Industry Relations

Architectuur is de sleutel tot succesvolle software


Je zou het misschien niet denken maar software heeft, net als gebouwen, een architectuur nodig. Alle ontwerpbeslissingen die tijdens de ontwikkeling van de software zijn genomen worden hierin vastgelegd. Paris Avgeriou, hoogleraar aan de Faculteit Science and Engineering van de Rijksuniversiteit Groningen (RUG), ontwikkelt tools die het maken van deze software-architectuur ondersteunen. Zijn onderzoeksgroep doet dit al
dertien jaar lang in verschillende projecten in samenwerking met het bedrijfsleven.

Software is complex en vaak moeilijk te doorgronden als je alleen naar de code kijkt. Als je alles wat je gedaan hebt vanaf het begin goed documenteert dan weet je precies wat de functie van een bepaalde code is. Ook weet je waarom een bepaalde ontwerpbeslissing is genomen. Avgeriou ontwikkelt tools waarmee software-architecten deze ontwerpbeslissingen kunnen nemen en documenteren. ‘Vergelijk de architectuur van software met die van een gebouw. Een gebouw heeft veel verschillende componenten. In de architectuur wordt vastgelegd hoe al die componenten samenwerken om te zorgen dat een gebouw overeind blijft staan en dat de systemen binnenin goed functioneren. Softwaresystemen hebben ook een architectuur nodig om componenten goed samen te laten werken. Door de architectuur van de software duidelijk te documenteren zorgen we dat te allen tijde duidelijk is waarvoor en waarom een bepaalde code wordt gebruikt. Dit stelt software-architecten in staat om te begrijpen hoe een systeem werkt en hoe ze dat kunnen veranderen. Op deze manier blijft de software altijd stabiel, ook bij een update’, aldus Avgeriou.

Complexe systemen
Hedendaagse auto’s hebben software met ongeveer tien miljoen regels aan code. Deze code regelt onder meer dat het bedieningssysteem de auto laat bewegen. Als de architectuur van de software dan niet gedocumenteerd wordt is het ontzettend lastig om fouten te ontdekken. Bovendien verandert de software over de tijd omdat die vaak wordt bijgewerkt. Des te meer reden om de architectuur helder te hebben. Volvo wil bijvoorbeeld in 2020 de software van hun auto’s om de twee á drie dagen updaten. Hoe zorg je dan dat je zeker weet dat de software van een auto na iedere update goed werkt? Je wilt niet dat een auto crasht omdat je iets in de code over het hoofd hebt gezien. Avgeriou: ’Vooral bij complexe softwaresystemen is het belangrijk dat we ontwerpbeslissingen expliciet maken. Zonder een goede software-architectuur wordt de kans vergroot dat het systeem een keer niet functioneert met alle gevolgen van dien.’

Projecten met het bedrijfsleven
‘Onze tools ontwikkelen we in samenwerking met het bedrijfsleven. Wij maken de tools en de bedrijven valideren ze. Van het valideren leren we of nieuwe technieken in de tools in de praktijk werken. Zo worden we steeds beter in het documenteren van software-architectuur. Een groot voordeel voor de bedrijven is dat de architectuur van hun softwaresystemen met de nieuwste tools wordt gedocumenteerd’, vertelt Avgeriou. Twee bedrijven waar veel mee wordt samengewerkt zijn Océ en ABB group. Voor ieder bedrijf wordt de architectuurtool op maat gemaakt. Een ‘one size fits all’-benadering werkt namelijk niet. ‘De grootste uitdaging zit hem voor ons in de variëteit tussen bedrijven. Softwaresystemen verschillen veel van elkaar op het gebied van benodigdheden, context en omgeving. Variëteit maakt de projecten tegelijkertijd ook erg leuk. De bedrijven zijn ook erg tevreden met de tools die wij implementeren.

Toekomst
Als het gaat om de toekomst van software-architectuur dan quote Avgeriou het liefst de beroemde tech-investeerder Marc Andreessen: ‘Software is eating the world.’ Hiermee wordt bedoeld dat software in het toekomstbeeld niet meer weg te denken is uit dagelijkse producten. ’Als je om je heen kijkt vind je al in veel producten software. Denk maar eens aan horloges, stofzuigers of koelkasten. Dit aantal producten neemt snel toe. Daarom wordt software-architectuur alleen maar belangrijker. Het documenteren van alle ontwerpbeslissingen gaat hierdoor ook meer tijd kosten. Om dit proces te versnellen willen wij onze tools in de toekomst meer generaliseren. Hoewel het door de grote variëteit van de software lastig is om een generieke tool te ontwikkelen, willen we toch proberen om bepaalde punten automatisch in te vullen. Zo verbeteren we continu de tools en maken we het mogelijk om de architectuur steeds beter en gemakkelijker te documenteren.’

Tags: Big Data