De ideale softwaremodule

5 augustus 2011

Het onderzoek wordt begeleid door prof. Arie van Deursen, een van de mede-oprichters van de SIG. Onder de titel “Software Quality Linguistics” maakt Bouwers een analyse van het ‘vocabulaire’ van de software. Anders gezegd: waar zit welke functionaliteit en zitten delen die gelijkaardig zijn wel of niet te ver van elkaar vandaan? De plaats kan bepalend zijn voor de onderhoudbaarheid van de software. Het maakt nogal verschil of een aanpassing gerealiseerd kan worden door één module van een pakket aan te passen of dat er aan tien modules moet worden gesleuteld.

Bouwers: “De maker van de software heeft dat helemaal in de hand. Als hij de verkeerde beslissingen neemt, dan ontstaat een pakket dat wel werkt maar waarbij sommige aanpassingen impact hebben op veel verschillende plaatsen in het pakket. Dan moet er heel veel werk worden gedaan dat vermeden had kunnen worden.”

Om een pakket te doorgronden kijkt Bouwers naar de architectuur en de code waarmee die is vormgegeven. Een goed begrip van die code is essentieel. “En dan mogen we de documentatie natuurlijk niet vergeten. Een module die goed geschreven is, maar waar geen documentatie van beschikbaar is, kan heel slecht te onderhouden zijn”, zegt de promovendus.

In de praktijk worden bedrijfsapplicaties vaak verdeeld in drie stukken, plus nog een beetje. “Daar zie je heel vaak een verdeling in GUI - 30 procent, de Business Logic – 10 procent en de database – 20 procent. Wat er overblijft valt in de categorie ‘overig’, wat in dit voorbeeld dan wel met 40 procent de grootste pluk is. Je zou dat verder kunnen onderverdelen, maar de vraag is hoe ver je moet gaan. Het is best mogelijk om een toepassing te splitsen in 200 modules, maar dan mist er meestal een abstractie-niveau. Empirisch is bepaald dat een verdeling in 5 à 10 modules een normale verdeling is. Maar dan zijn we er nog niet, die modules moeten ook een beetje acceptabele grootte hebben. Wat dat betreft laat ik me inspireren door de Italiaanse statisticus Corrado Gini, die bijna 100 jaar geleden een meting bedacht om te kijken of de inkomensverdeling in een land wel eerlijk is”, zegt Bouwers.

De zogeheten Gini-coëfficiënt is een getal tussen de 0 en 1, dat aangeeft in hoeverre de inkomsten in een groep eerlijk verdeeld zijn. Op gelijksoortige wijze kan worden bepaald of de groottes van deelmodules van een applicatie ‘eerlijk’ verdeeld zijn. Bouwers: “Op basis van de Gini-coëfficiënt heb ik nieuwe meting ontwikkeld. Deze meting gebruiken we dan om de verdeling van de modules van verschillende pakketten te vergelijken. Deze werkwijze zal sommige eigenaren van software tegenvallen, omdat ze het idee hebben ‘uniek’ te zijn. Dat mag zo zijn, maar misschien is het idee wel helemaal verkeerd.”

Als een softwarepakket inderdaad uniek is – de benaming exotisch is dan misschien toepasselijker – dan kan dat allerlei consequenties hebben. “Het is bijvoorbeeld moeilijker om zo’n pakket te onderhouden, omdat er misschien maar een paar specialisten zijn die het kunnen doen. Als je zo’n pakket objectief kunt doormeten, dan kun je de eigenaar ook met redenen omkleed aangeven waarom hij buiten de boot valt”, zegt Bouwers.

Code clinic
De ontwikkelaars van software gaan vaak hun eigen gang en het kan verfrissend zijn om hun werkwijze en het resultaat daarvan eens tegen het licht te houden. Bouwers doet dat in de vorm van een code clinic, waarin het werk van IT-studenten wordt geanalyseerd. Bouwers: “We doen dat niet aan het eind van een vak, maar in het midden. Ze hebben dan de tijd en gelegenheid om de beoordeling op zich in te laten werken en er iets mee te doen. Roep je helemaal aan het eind van een vak iets, dan wordt dat vaak niet opgepikt.”

De code clinic is gehouden aan de TU Delft, waar groepjes studenten zich bezighouden met de ontwikkeling van software. In groepsverband schrijven ze een complete applicatie of ontwikkelen delen van een groter systeem. Onder het motto ‘meten is weten’ wordt de code van elk groepje doorgemeten en beoordeeld. Bouwers: “Dat werkt heel verhelderend, voor de meesten. Nadat ze de beoordeling hebben gekregen mogen ze weer verder gaan met hun project en na een paar weken wordt de code weer doorgemeten. We kunnen dan meteen zien in hoeverre ze iets bijgeleerd hebben.”

De studenten krijgen punten, afhankelijk van de manier waarop ze op de kritiek hebben gereageerd. “Maar, een student die wel beredeneerd duidelijk kan maken waarom hij juist niets met de kritiek heeft gedaan, kan ook punten in de wacht slepen. Als de redenering maar hout snijdt”, aldus Bouwers.

Gezien het succes van de code clinic aan de TU Delft is het onderwerp nu ook aan de Hogeschool Utrecht gepresenteerd. Belangrijk bij dit alles is zeker ook, dat studenten leren hoe het is om op feiten gebaseerde kritiek van buitenaf te krijgen op de kwaliteit van hun code. Daar hebben ze in hun latere leven alleen maar profijt van.

Code clinic

Voor ontwikkelaars van software kan het verfrissend zijn als hun werkwijze en het resultaat daarvan tegen het licht worden gehouden. Bouwers doet dat in de vorm van een code clinic, waarin het werk van IT-studenten wordt geanalyseerd. De code clinic is gehouden aan de TU Delft, waar groepjes studenten zich bezighouden met de ontwikkeling van software. Onder het motto ‘meten is weten’ wordt de code van elk groepje doorgemeten en beoordeeld. Bouwers: “Dat werkt heel verhelderend, voor de meesten. Nadat ze de beoordeling hebben gekregen mogen ze weer verder gaan met hun project en na een paar weken wordt de code weer doorgemeten. We kunnen dan meteen zien in hoeverre ze iets bijgeleerd hebben.” De studenten krijgen punten, afhankelijk van de manier waarop ze op de kritiek hebben gereageerd. “Maar, een student die beredeneerd duidelijk kan maken waarom hij niets met de kritiek heeft gedaan, kan ook punten in de wacht slepen. Als de redenering maar hout snijdt”, aldus Bouwers. Gezien het succes van de code clinic aan de TU Delft is het onderwerp nu ook aan de Hogeschool Utrecht gepresenteerd.

 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Laat de klantenservice je terugbellen!