Het is een bekende truc, maar wel één die prima werkt: wie zich bezig houdt met complexe materie doet er in de regel goed aan de brei aan gegevens, onderlinge relaties, noem maar op, uit elkaar te rafelen tot de individuele componenten en verhoudingen zichtbaar worden. Door deze één voor één te bestuderen, wordt duidelijk hoe alle puzzelstukjes in elkaar passen en het grotere geheel functioneert.
Vrijwel ieder boek over software-engineering probeert deze truc toe te passen. Helaas slaagt men daar niet altijd in. Het gebeurt regelmatig dat het nadrukkelijk inzoomen op de individuele puzzelstukken als resultaat heeft dat de lezer het overzicht verliest in plaats van dat er meer duidelijkheid ontstaat.
Wie het boek ‘Functie-, component- en class-modellering; De Synalyse-methode voor het ontwerpen van softwaresystemen’ op zijn bureau aantreft, vreest in eerste instantie het ergste: weer zo’n boek dat meer vragen oproept dan antwoorden geeft?
Dat blijkt reuze mee te vallen. In duidelijke bewoordingen wordt uitgelegd hoe softwaresystemen vanuit de globale wensen die gebruikers aangeven, kunnen worden uitgewerkt tot volwaardige applicaties. Het boekwerk – geschreven door Patrick Savalle en Rob Limburg – leest als een inleiding op het bouwen van objectgeoriënteerde systemen. Daardoor lijkt het in eerste instantie gericht op die it-professionals die nog nauwelijks iets van deze wereld afweten en een eerste voorzichtige verkenning zoeken. Maar die perceptie blijkt al snel niet te kloppen.
Synalyse is wat de auteurs – inmiddels actief in Synalyse BV (http://www.synalyse.com) – noemen: een integrerende of unificerende methode. Veel gangbare methodieken, zo luidt de kritiek van de schrijvers, dekken slechts een deel van het ontwikkeltraject af. Daarom hebben ze bestaande ontwerptechnieken als functie-, component- en objectmodellering genomen, en deze met elkaar verbonden.
Een ander punt van kritiek van de auteurs op bestaande methoden is dat deze vaak incompleet, inconsistent en nodeloos ingewikkeld zijn. Reden hiervoor is vaak het ontbreken van een onderliggende uniforme set van basisbegrippen. Dat het integreren van deelmethoden bij Synalyse redelijk lijkt te lukken, is dan ook met name te danken aan het feit dat een zogeheten gezamenlijk kernmodel is gebruikt waarin de basisbegrippen en -aannames zijn uitgewerkt.
Het resultaat van al deze inspanning is beschikbaar in twee vormen. Ten eerste is het genoemde boek gepubliceerd waarin versie 1.3 van de methode wordt beschreven. Er wordt echter verder gewerkt aan het vereenvoudigen van de aanpak. Deze variant staat als pdf-bestand op de website (dat is inmiddels versie 3.0). Als tegenprestatie hopen de auteurs op feedback door middel van een online forum. Ze beschouwen de in het boek beschreven aanpak immers niet als de definitieve versie.
Terug naar het boek. In pakweg honderd pagina’s wordt het onderliggende kernmodel uitgelegd. In feite gaat de aandacht hierin vooral naar het benoemen en definiëren van begrippen en het uitleggen van de strekking ervan. Het gaat om basale zaken als modellen, abstracties, functies, typeringen, kwaliteit en dergelijke. Voor de ervaren softwareontwikkelaar komt dit wellicht wat al te laagdrempelig over. De auteurs doen daarom zelf de suggestie aan de hand dat het ook goed te doen is om deel 1 in eerste instantie simpelweg over te slaan en te beginnen met deel 2.
In deel 2 gaat het over softwareconstructie zelf. Achtereenvolgens komen aan bod: softwaresystemen; functies; objecten, ‘classes’ en componenten; functiemodellering; componentmodellering; conceptmodellering, object- en ‘class’-modellering; het herstructureren van ‘class’-modellen; het herformuleren van ‘class’-modellen; object- en datamodellering; en kwaliteit. Tenslotte volgt nog een voorbeeld van het gebruik van de methode in de praktijk.
De Synalyse-methode komt niet over als een nieuwe of vernieuwende methode. Die constatering hebben de auteurs vaker gehoord, melden zij in hun inleiding: "Dat is een goed teken, want het betekent dat het een logisch en vanzelfsprekend geheel is geworden."
Tegelijkertijd zien zij zich wel genoodzaakt om aan te geven wat er dan wel nieuw is aan de methode. Dat zijn – naast het gebruik van het genoemde kernmodel – de definitie van structurele complexiteit (zonder een duidelijke definitie kan complexiteit niet concreet worden gemaakt), een schema van fundamentele vormgeving en afstemming waarbij een nieuw formaat wordt gehanteerd. Daarnaast zien de auteurs het feit dat Synalyse een formeel componentmodel is geworden, eveneens als een belangrijk pluspunt. Tenslotte is het object-metamodel opnieuw opgebouwd. Dat model lijkt weliswaar sterk op andere modellen, maar zit volgens de auteurs eenvoudiger en eenduidiger in elkaar.
Al en met al is het boek zonder meer de moeite van het lezen waard. Al was het maar omdat op heldere en duidelijke wijze uit de doeken wordt gedaan hoe complexe softwaresystemen op een gestructureerde en beheerste manier kunnen worden ontwikkeld. Voor de ervaren rot in het vak lijkt het in eerste instantie wellicht wat te eenvoudig uitgelegd, ware het niet dat het onderliggende kernmodel wel degelijk iets aan deze aanpak toevoegt. Bovendien zijn de auteurs er goed in geslaagd om een complex onderwerp als het ontwikkelen van complexe softwaresystemen in eenvoudige bewoordingen uit te leggen.
Robbert Hoeffnagel Freelance Medewerker
Patrick Savalle en Rob Limburg
Functie-, component- en class-modellering; de Synalyse-methode voor de constructie van softwaresystemen.
Uitgave: Synalyse BV, 2001,
381 pagina’s, NUGI 85; f 59,-.