De auteurs van het artikel over domeinanalyse, Frank Peeters en Frens Vonken, hebben hun kennis over Universele Informatiekunde, object-oriëntatie en de ‘Unified Modeling Language’ handig gecombineerd, vindt Marco Roling. Zij maken echter ten onrechte gebruik van UML om ‘maar de aandacht van de lezer te trekken’. Ook hebben zij oude wijn in nieuwe zakken gedaan – hulde overigens aan hun serieuze benadering van de domeinanalyse.
In deze ‘pennenstrijd’, repliceren Peeters en Vonken, is het soms lastig om de mening van een andere schrijver op waarde te schatten. Voordat je het weet praat je langs elkaar heen. Wij doen ons best om miscommunicatie te voorkomen.
In het artikel over domeinanalyse ‘Alles draait om relaties’ (Computable, 1 december, pagina 45) wordt melding gemaakt van de methode EXPO, EXPression based Object modeling. Frens Vonken en Frank Peeters ontwikkelden deze methode die de kwaliteit en beheersbaarheid van domeinanalyse kan verbeteren. Om tot een goed objectmodel te komen, gaan de auteurs uit van een stappenplan en zij hanteren het uitgangspunt dat van een objectmodel eerst de kenmerken en daarna het gedrag gemodelleerd moeten worden. Zonder kenmerken geen gedrag, zo menen de schrijvers.
Het gaat allemaal over het vinden van de juiste relaties, die naar hun zeggen kenmerken van objecten zijn of tussen objecten liggen. ‘Door de relaties en niet de klassen als uitgangspunt te nemen verkrijgt de analist vanaf het allereerste begin vat op de structuur tussen de objecten’ is een hoopgevende stelling. Het beoogde resultaat dient in elk geval een compleet klassendiagram te zijn, zelfs met basisgedrag. Zeker tot op dit punt in het artikel lijkt domeinanalyse nog steeds op tovenarij, iets wat analisten al decennia proberen uit te bannen, maar wat nog steeds moeilijk lukt. Na het opstellen van het basis-klassenmodel moet de analist toch met gangbare methoden verder aan de gang om het klassendiagram te verfijnen. De nieuwe methode houdt hier blijkbaar op.
Natuurlijke taal
Expo ontleent zijn verificatie middels het opschrijven van expressies in een taal die de gebruikers begrijpen. Middels concrete voorbeeldzinnen wordt sjablonen gevormd, hier ‘relaties op typeniveau’ genoemd, die op een ‘systematische manier’ worden geanalyseerd en in een model geplaatst. Het model groeit voortdurend doordat er steeds meer relaties aan worden toegevoerd. Deze aanpak lijkt in hoge mate op de uitgebreid gepubliceerde methoden en technieken van Prof. Dr. Ir. Nijssen, die informatie-analisten al meer dan een decennium geleden zijn ‘natuurlijke taal analyse methode’ (Niam) heeft bijgebracht. Vervolgens heeft hij deze methode later verfijnd en uitgebreid middels de Universele Informatiekunde (UI) en Universele Kenniskunde (UK). Er is zelfs een complete Ambi-lijn op gebaseerd, waarin de precieze samenhang tussen alle mogelijk denkbare datamodellerings-technieken wordt onderwezen. Het statische deel (objecten en attributen) van UML-klassenmodellen is het zoveelste op rij en kan aldus ook via vaste voorschriften vanuit gesjabloneerde voorbeeldzinnen naar elk gewenst schematisch datamodel worden getransformeerd. Belangrijk uitgangspunt is daarbij het ‘jargonbeginsel’, waarbij de gebruiker met concrete voorbeelden moet komen en die letterlijk aan de informatie-analist moet voorlezen.
Frens en Frank hebben het object-oriëntatie-uitgangspunt van hergebruik mijns inziens te succesvol toegepast, bewust of onbewust, en oude wijn in nieuwe zakken gedaan. UML wordt, als modewoord voor alles wat OO is en gestandaardiseerd moet worden, ten onrechte misbruikt om maar de aandacht van de lezer te trekken. Mijns inziens hebben de schrijvers kennis over UI, OO en UML handig gecombineerd. In de twintigste eeuw was er iemand zo slim om beton met ijzeren vlechtwerk te verstevigen, om zodoende gewapend beton te maken, dat een stevig fundament bleek om mee te bouwen. De meeste mensen weten helaas niet dat de Romeinen al voor het begin van de jaartelling wisten hoe ze beton moesten maken en dat die eer dus eigenlijk aan hen toekomt.
Service-objecten
In een casus wordt getracht duidelijk te maken hoe systematisch het verkregen basis-klassenmodel van basaal gedrag kan worden voorzien. Dat leidt in eerste instantie tot gedrag dat het object moet kunnen laten zien wat hij van zichzelf weet, ‘inspectie’ genoemd. Mijns inziens is dat zeker niet per definitie voor elk object noodzakelijk en soms zelfs ongewenst. Er wordt verder op een hoge mate van creativiteit en een flinke dosis gezond verstand gerekend van de lezer, als het gaat om het verder toevoegen van basaal gedrag. En ook hier moeten we trouwens na het toevoegen van dit basale gedrag alweer verder met de gangbare UML-interactieschema’s. Na de afgelopen EK heeft iedereen van voetballen verstand en kunnen we ons bij een voetbal-casus dus wel iets voorstellen, maar het op deze wijze analyseren van bijvoorbeeld het gedrag van arbeidsongeschikheidsrisicodekkingsobjecten op een levensverzekering is bedenkelijk.
In het artikel stellen de schrijvers verder dat hun methode voorkomt dat er klassen worden vergeten. Helaas, klassen kunnen alleen vergeten worden doordat de domeinspecialisten te weinig domeinkennis hebben gecommuniceerd. De Expo-methode kan de onzekerheid over de volledigheid van het domeinmodel niet garanderen. Met de informatie-intensieve en voorschriftmatige aanpak die zij voorstellen komen trouwens niet eens objecten (klassen) aan het licht, die weinig weten maar wel veel kunnen, zogenaamde service-objecten. Zij vinden deze klassen overbodig. Dat kan zijn, maar dat is dan nog altijd de keuze van de analist zelf en het vermijden van deze objecten is aldus geen gepropageerd voordeel van de Expo-methode.
Hoge koppeling en lage cohesie
De schrijvers stellen in het laatste deel dat het klassendiagram zich kenmerkt ‘door lage koppeling en hoge cohesie’. Jammer dat daar geen enkele uitleg bij wordt gegeven. Een gegevens-intensieve domeinanalyse zoals via de Expo-methode neigt namelijk naar mijn mening juist tot het ongecontroleerd aanleggen van zoveel mogelijk relaties tussen objecten (klassen). Door het leggen van deze relaties kunnen objecten al bijna niet meer los van elkaar worden gezien en het domeinmodel dreigt naar één groot samenhangend schema te evolueren. Anders gezegd, juist een hoge koppeling en lage cohesie.
Frens Vonken en Frank Peters beloven veel met Expo, maar zijn vooralsnog niet in staat geweest mij ervan te overtuigen dat hier een vernieuwende domeinanalysemethode wordt gepresenteerd. Het blijft noodzaak dat analisten trachten om beter en fijner gereedschap te ontwikkelen (en ik bedoel daarmee niet een case-tool) die het maken van een goed en bruikbaar domeinontwerp bevorderen. Het aantal gepubliceerde artikelen over domeinanalyse wordt langzaam aan schaars in vergelijking met publicaties met een hoog dotcom-gehalte. Derhalve hulde aan de analisten die zich serieus bezighouden met dit vak en daar schaar ik ook de schrijvers van het Expo-artikel onder.
Marco Roling It-analist Zwammerdam