In de bouw is het normaal dat een opdrachtgever zijn aannemer laat controleren door een onafhankelijke partij. In de it niet, ook al hebben automatiseringsprojecten al sinds jaar en dag het imago slecht beheerbaar te zijn. Software Improvement Group brengt daar verandering in.
Het Amsterdamse bedrijf Software Information Group (SIG) kreeg onlangs voor het eerst een zogenaamde ‘monitoropdracht’: voor de ING monitort het bedrijf de bouw van een nieuw systeem. Ook het Enron-schandaal bezorgt de formele softwareverificatie een impuls.
“It is voor bestuurders een risico”, vat directeur Marjo Wildvank de missie van SIG samen. “Bestuurders moeten namelijk overzicht hebben en dat hebben ze niet. Wij bezorgen hen dat inzicht.” SIG, in 2000 ontstaan bij het Centrum voor Wiskunde en Informatica (CWI), heeft een aantal tools ontwikkeld om de complexiteit van software op het laagste niveau, dat van de broncode, in kaart te brengen. “Onze tools kunnen uit iedere broncode, in welke taal die ook geschreven is, karakteristieken halen”, zegt senior consultant Harro Stokman. Zelfs declaratieve talen als Lisp en Prolog, die een wezenlijk andere structuur hebben dan de imperatieve talen zoals C en Basic, kan de technologie van SIG aan. De tool moet een nieuwe taal wel eerst leren, maar dat is zo gebeurd.
Stokman: “De tools inventariseren vervolgens precies welke programma’s aangeroepen worden, en welke databases. Er wordt onder andere onderzocht hoeveel if-then-constructies er in de code zitten. Immers, hoe meer er daarvan zijn, hoe meer paden je door de code moet volgen om hem goed te testen. Op die manier kun je software analyseren en iets zeggen over de betrouwbaarheid ervan.”
Dergelijke formele analyses van software werden lange tijd gezien als een ingewikkelde hobby van wetenschappers, totdat de millenniumbug bedrijven noopte om enorme legacy systemen minutieus door te wroeten op datumvelden. Sindsdien is het een interessante markt. SIG telt veel organisaties met grote administratieve systemen onder zijn klanten, banken en verzekeraars, maar ook semi-overheidsinstanties als het kadaster en het Centrum voor Werk en Inkomen (het andere CWI). Het doorlichten van een systeem kost een week of zes.
Een recente impuls voor deze markt is het Enron-schandaal en de daaruit voortvloeiende behoefte aan corporate governance. Traditioneel vormt dit het terrein van accountants, maar zij checken vooral de procedures. Een bedrijf als SIG kijkt naar de broncode om ook op dat niveau te kijken of alles geboekt wordt zoals het geboekt zou moeten worden. In zekere zin is deze ontwikkeling vergelijkbaar met die in de beveiliging. Ook daar waren accountants, met hun behoefte aan zekerheid over de integriteit van een administratie, een belangrijke aanjager van technische ontwikkelingen.
Embedded
Een analyse van de software kan zich op allerlei manieren terugverdienen. Wanneer, om maar een voorbeeld te geven, blijkt dat bepaalde programma’s inefficiënt zijn en daarom onnodig veel rekenkracht vergen, kan analyse en een daarop gebaseerde ingreep in de software de aanschaf van nieuwe apparatuur overbodig maken. In het geval van embedded software kan het bijvoorbeeld de gesprekstijd van een mobieltje op één batterijlading verhogen. Onderzoek in het Leuvense chiplaboratorium Imec toonde enkele jaren geleden al aan dat veel algoritmes tientallen procenten zuiniger kunnen werken, onder meer door minder vaak data heen en weer te schuiven tussen geheugen en processor.
SIG zelf voerde ooit een analyse uit bij een grote overheidsorganisatie die een grote administratie had omgezet van een bestandssysteem naar een relationele database. Het resulterende systeem liep wekelijks vast, waardoor 2500 medewerkers met de duimen zaten te draaien. De analyse leerde dat het systeem op een enkele server draaide. Spreiding leverde meteen al betere prestaties op. Bovendien werden bottlenecks in de software opgespoord. Eliminatie daarvan leverde nog meer winst op.
Er is echter geen enkele reden waarom je een systeem pas als het klaar is zou analyseren. “Wij hebben nu voor het eerst een project waarbij we nieuwbouw monitoren, voor de ING”, zegt Wildvank. “Een derde partij ontwikkelt de software en stuurt de code wekelijks naar ons. Wij rapporteren vervolgens onze bevindingen aan de bank. Als ergens slechte programmeurs zitten, valt dat meteen op. Tot nu toe zijn alle drie de partijen tevreden over de aanpak. ING verwacht dat de slagingskans van het project zo veel groter wordt.”
De tools van SIG kunnen ook vaststellen of stukken software goed op elkaar aansluiten. Dat is van belang bij migratietrajecten, die het bedrijf regelmatig begeleidt. Het probleem hierbij is vaak dat de oude software in de loop der jaren is aangepast, maar dat die veranderingen niet gedocumenteerd zijn. Daarom is het nodig eerst het actuele datamodel uit de software te destilleren, alvorens dat te matchen met de gewenste eigenschappen van het nieuwe systeem.
Voor een bank bekeek SIG ooit of het zomaar mogelijk was het negencijferige banknummer te vervangen door een van tien cijfers. Dat bleek nogal wat voeten in de aarde te hebben. Op sommige plekken in de code kon het dataveld eenvoudig aangepast worden, maar elders vroeg de software om een ingrijpende aanpassing. Dit project werd een voorloper voor een Europees project. Alle Europese banken gaan namelijk over naar een zelfde systeem, waarbij de bestaande rekeningnummers vervangen worden door een zestiencijferige code, het zogenoemde IBAN-nummer.
Een verdere rol die SIG speelt is monitor bij outsourcing. Wanneer een organisatie zijn it-ontwikkeling uitbesteedt, wil men wel weten of dat goed gebeurt. Wildvank: “Met een monitoring rapport van ons kan de directeur tegen de aandeelhouders zeggen: ‘ik heb het goed in de hand.’