Software beoordeelt software

2 augustus 2011
Kwaliteit van software is automatisch te meten. En de uitkomsten van zo’n meting stroken zeer behoorlijk met de oordelen die deskundigen over de betreffende programma’s vellen. Dat concludeert afstudeerder Erik Hegeman.

Gewoonlijk wordt de kwaliteit van software beoordeeld door menselijke deskundigen, maar dat is tijdrovend en vaak ook nogal subjectief. Het alternatief is het gebruik van software die software beoordeelt. Maar wat is zo’n automatisch gegenereerde beoordeling eigenlijk waard?

Hegeman besloot in het kader van zijn studie aan de Universiteit Twente, met begeleiding vanuit het Centre for Telematics and Information Technology, de proef op de som te nemen ten aanzien van de SQALE-methode. ‘SQALE’ staat voor Software Quality Assessment based on Lifecycle Expectations.

Deze in Frankrijk ontwikkelde meetmethode combineert een groot aantal objectief kwantificeerbare eigenschappen van de broncode. Hat gaat dan om zaken als de cyclomatische complexiteit, gemoduleerdheid, gemiddelde lengte van codecomponenten en gestructureerdheid. Deze eigenschappen worden geacht, in samenhang met elkaar, iets te zeggen over kwaliteitsaspecten als betrouwbaarheid (de voorspelbaarheid van de gevolgen van ingreep op de code), analyseerbaarheid, testbaarheid en veranderbaarheid. Zaken als 'business fit' en gebruiksvriendelijkheid vallen begrijperlijkerwijze buiten de scope van SQALE. Voor het toepassen van SQALE bestaat sinds enige tijd ook software, maar over de gebruikswaarde van gegenereerde beoordelingen was volgens Hegeman tot dusverre weinig of niets gepubliceerd.  

InfoSupport zorgde voor deskundigenoordeel
Hegeman liet SQALE los op een negental java- en C#-codes die bij het IT-bedrijf InfoSupport in Veenendaal op meerjarige basis in onderhoud zijn. Het voordeel van die keuze was dat de InfoSupport-medewerkers, die de betreffende programma’s (soms al jaren) onder hun hoede hebben, bij wijze van referentie om een deskundigenoordeel kon worden gevraagd.  

Voor de geautomatiseerde rating door de software werd gebruik gemaakt van het programma Sonar, dat groot aantal softwaremetrische tools, zoals Checkstyle, FindBugs, StyleCop en FxCop geïntegreerd aanstuurt. In totaal werden per broncode meer dan 1300 eigenschappen gemeten en binnen Sonar met een speciale plug-in geagregeerd tot een overall SQALE-score op een 5-punts schaal. De menselijk deskundigen werd gevraagd op een iets subtieler 10-punts schaal te scoren.  

Kwaliteit is contextbepaald
Uiteraard vielen de oordelen van de software en de deskundigen meestal niet samen, maar de mate van overeenstemming was toch wel zodanig dat deze niet op toeval lijkt te berusten. Voor statistici: de correlatiecoëfficiënt bedroeg 0,5. Wat - ter vergelijking - de correlatiecoëfficiënt tussen de menselijke beoordelingen onderling was, laat zich volgens Hegeman (vanwege het de kleine steekproef) niet statistisch verantwoord uitrekenen. Het laat zich raden dat deze in de meeste gevallen wel hoger dan SQALE’s 0,5 zal uitpakken. Toch vindt Hegeman wel dat de validatie van de SQALE-software geslaagd mag heten. Om te beginnen is significant significant: “Oordelen over kwaliteit, van wat dan ook, zijn inherent subjectief. Een perfecte correlatie kun je dus niet verwachten”.  

Maar een betere misschien wel? “Waarschijnlijk wel. Wat kwaliteit is, is deels contextbepaald. Dat betekent dat het systeem, om te kunnen werken, moet worden ingesteld. Mogelijk was nog een betere parameterisering mogelijk geweest.”   

Minstens een maand werk
Dat parameteriseren van de SQALE-formule blijkt voorlopig nog het pièce de résistance van geautomatiseerde software-evaluatie. Hegeman schat dat er in de praktijk voor een software engineer die verstand van softwaremetrieken heeft, zo rond de 2 a 3 maanden werk in zit. Voordat dat is terugverdiend moeten er heel wat codes door worden gejast. Hegeman kijkt echter naar de toekomst: “Ik hoop dat de onderzoekslijn door anderen wordt opgepakt, bijvoorbeeld door SQALE toe te passen op open source codes. Die zijn in grote hoeveelheden beschikbaar en dat biedt statistisch een goede basis om betrouwbare inzichten op te doen wat betreft het parameteriseren.”    

Lees meer over
Reactie toevoegen