Vergeet niet de kwaliteitseisen om software beheersbaar en flexibel te houden

Microservices, Onion Layers en SOLID-principes zijn ideale ingrediënten voor het bouwen van onderhoudbare, veilige en schaalbare software. Deze conclusie trok Michel, software engineer bij Jump, na een grondig onderzoek naar de perfecte software architectuur voor Jump.

Met dit onderzoek behaalde hij maar liefst een 8,5 en rondde er zijn studie HBO informatica mee af. De afstudeercommissie “was onder de indruk van het niveau en de gewaagde keuze van zijn afstudeerthema, aangezien een architectuuronderzoek vaak een onderwerp is voor een masterscriptie”.

Het klinkt vast heel herkenbaar: je ontwikkelt snel een mooie applicatie en breidt dit vervolgens uit met nieuwe functionaliteit. Voor je het weet zit je opgezadeld met software die bestaat uit spaghetticode: alles hangt aan elkaar vast en zit door elkaar heen. Hierdoor worden aanpassingen steeds complexer. Hoe kan je dit voorkomen?

Functionaliteit en kwaliteit

Als je je wensen en eisen opstelt voor een project is het verleidelijk om alleen na te denken over gewenste functionaliteit. Hier begint echter het probleem. Niet-functionele eisen zoals ‘kwaliteit’ van je software zijn minstens net zo belangrijk. Zeker voor de lange termijn. Deze eisen zijn alleen minder zichtbaar. Om deze niet-functionele eisen goed te borgen in het ontwikkelproces, is bijpassende ontwerpmethodiek vereist voor de software architectuur. Attribute Driven Design (ADD) is daar perfect voor.

ADD focust op het ontwerpen van een software architectuur aan de hand van de kwaliteitseisen van de klant. Bij Jump gebruiken we hiervoor de kwaliteitsnormen van de  ISO 25010 zoals veiligheid, schaalbaarheid, koppelbaarheid en betrouwbaarheid (oftewel de uptime van een applicatie). In het onderzoek van Michel leidden de kwaliteitseisen tot het gebruik van een microservices architectuur.

Op hoofdlijn zorgt de microservices architectuur voor het opknippen van je software in kleine services. Dit zijn op zichzelf staande eenheden of modules met hun eigen verantwoordelijkheid. Door in elke service de SOLID-principes en de Onion Layer architecture toe te passen zijn de services eenvoudiger uit te breiden, te testen en te onderhouden. Dit voorkomt dat na verloop van tijd je software steeds complexer wordt in onderhoud en nieuwe uitbreidingen.

Duurzame software ook iets voor jou?

Wij denken graag mee over welke kwaliteitseisen voor jou belangrijk zijn en hoe die vertaald moeten worden in goede software.

Michel Trouwborst

Michel Trouwborst

085 – 0603 001