De CC-techniek is een hulpmiddel om eenduidigheid te scheppen in dubbelzinnig en ongespecificeerd taalgebruik. De ontwikkelaars van de techniek zien een belangrijke toepassing weggelegd voor ict-architectuur. TNO Telecom werkt momenteel nog aan een verdere verbetering.
Calculate With Concepts, dat is waar CC letterlijk voor staat. In een vrije vertaling zouden we het ‘Rekenen met Taal’ mogen noemen. Taalkundige elementen worden vertaald naar wiskundige factoren, die vervolgens moeten voldoen aan een aantal regels, zodat de samenhang en consistentie in gesproken taal eenduidig kan worden weergegeven in een model. Deze techniek is in 1996 ontwikkeld aan de Georgia State University door de Nederlandse professor Stef Joosten, die op dat moment een jaar in de Verenigde Staten werkte. Momenteel wordt de techniek door TNO Telecom verder uitgewerkt, onder andere door Stef Joostens broer Rieks.
Een voorbeeld kan het beste verduidelijken hoe CC eenduidigheid brengt in terminologie en wat het betekent voor de architectuur van softwaresystemen. De term ‘klant’ wordt in organisaties vaak dubbelzinnig gebruikt. Een telecombedrijf heeft bijvoorbeeld een ‘klant’ in de vorm van een mens die een product of dienst afneemt, maar ook een klant in de vorm van iemand die de rekening voor een geleverd product betaalt. En de term klant kan eveneens verwijzen naar een bedrijf dat kabelruimte afneemt en doorverkoopt aan derden. Als je in geautomatiseerde systemen deze termen door elkaar gebruikt, kan een product worden geleverd zonder dat een rekening wordt betaald. Precieze omschrijvingen zijn dus nodig wanneer geautomatiseerde systemen een proces of een procesketen moeten ondersteunen. Ontbreken deze eenduidige specificatieregels, dan zullen proces- en software-engineers deze gaandeweg zelf gaan bedenken. Het probleem is dat die regels vervolgens nergens aan kunnen worden getoetst, wat bijvoorbeeld problemen kan geven bij uitbreiding van de systemen.
RUP blijft
“Wij bieden geen andere techniek voor bestaande methoden die structuur proberen aan te brengen in architectuur”, zegt Rieks Joosten, ontwikkelaar bij TNO Telecom. “Rational Unified Process blijft bijvoorbeeld gewoon in gebruik voor de ontwikkeling van software. De semantiek verdwijnt bij dit soort methodes echter steeds onder tafel. Het zou niet juist zijn om dit de methode in de schoenen te schuiven. De methode biedt namelijk wel degelijk middelen om semantische regels vast te leggen, bijvoorbeeld in de vorm van de taal OCL. In de praktijk zie je dat echter niet veel gebruikt worden. Ik denk dat dit komt omdat de mensen niet weten wat ze zouden willen uitdrukken.”
“Als je architecten, software engineers en proces engineers vraagt om de regels voor een systeem op te schrijven, weten ze niet welke dat zijn. Dan weten ze niet wat ze moeten uitdrukken. Geef ze echter een regel ter verificatie, en ze kunnen precies zeggen of zo’n regel geldig is, of niet. Of in welke context hij geldt en in welke niet. Je hebt dus iets nodig dat voorstellen doet voor semantische regels, zodat de mensen alleen nog maar hoeven te doen wat ze wel kunnen, namelijk zeggen of die regel waar is, of niet. Dat is een van de dingen die CC doet: het genereert regel-voorstellen, die door belanghebbenden kunnen worden beaamd of verworpen. Met de CC-techniek kun je semantische specificatieregels vastleggen, om vervolgens uitingen op het niveau van de syntax te kunnen ordenen en toetsen aan deze regels. Het is een hulpmiddel om menselijke onduidelijkheden in taal te reduceren.”
Gelaagde methodiek
Hoe de CC-techniek precies werkt, valt misschien te verduidelijken aan de hand van een voorbeeld uit de verzekeringsbranche.
De techniek hanteert een gelaagde aanpak, waarin verschillende taalmodellen gestapeld kunnen worden. Allereerst heb je bijvoorbeeld een laag met begrippen die in de wereld van toepassing zijn. Daar bovenop komt de organisatietaal (waar termen zoals ‘klant’, ‘contract’ en ‘verplichting’ terechtkomen). Daar weer bovenop komt de verzekeringstaal (waar een term als ‘schade’ terecht komt) en daar bovenop bijvoorbeeld de autoverzekeringstaal (waar een term als ‘inslag’ terecht komt). De keuze van de gebruikte termen, regels en lagen is in principe verschillend voor elke organisatie.
CC-techniek maakt gebruik van het feit dat een specifieke plek binnen een (verzekerings)organisatie een beperkt aantal specifieke eigen taalkundige begrippen heeft. Bijvoorbeeld het domein autoverzekeringen, waarbinnen de term ‘inslag’ een specifiek taalkundig begrip is dat verwijst naar autoruitschade.
Als alle begrippen en regels eenmaal zijn gedefinieerd, kan een systeemarchitect bij de ontwikkeling van software vervolgens werken binnen de grenzen die de CC-techniek aangeeft. Bij de ontwikkeling van een nieuw verzekeringsproduct, ofwel een nieuwe polis, hoeft de architect dan alleen nog de begrippen te beschrijven die nieuw zijn. De begrippen, eigenschappen en regels uit de context worden door overerving automatisch meegenomen. De nieuwe polis is niet consistent met de bestaande begrippen, maar dat wordt opgelost door het principe van specialisatie. Voor een specialisatie kunnen additionele nieuwe regels worden gegenereerd die niet consistent zijn met de bestaande regels. Door het echter specifiek te bestempelen als een specialisatie en onderlinge verbanden te leggen met andere lagen en specialisaties, kun je de systemen onderling toch weer consistent maken.
Discussies structureren
Er is een duidelijk verschil tussen de CC-techniek en object georiënteerde modellen. “CC legt grenzen vast binnen welke een systeem moet werken, terwijl object georiënteerde technieken keuzes maken voor invullingen”, zegt Joosten. “Het is een bekend verschijnsel dat datamodellen heel moeilijk vast te spijkeren zijn. Als er nieuwe regels of afspraken komen, kan een datamodel op de schop moeten. Een keuze voor een invulling kun je dus het beste genereren uit een CC-model. CC zit één abstractieniveau hoger dan object georiënteerd. Het is conceptueel gereedschap voor architecten.”
De CC-techniek kan overigens voor meerdere doeleinden worden gebruikt. Zoals gezegd voor het conceptueel structureren van systemen die over meerdere bedrijfsonderdelen heengaan, maar misschien ook voor systemen over een bedrijfsketen heen. Waar de ontwikkelaars het eveneens voor gebruiken, is voor discussies. De ontwikkelaars zeggen dat deelnemers na afloop van een CC-sessie vaak eenvoudiger nadenken over de besproken ideeën en meer overzicht hebben. Het maakt daarbij niet uit of de mensen aan tafel Duits, Frans, Nederlands, of een andere taal spreken. De techniek zit op een hoger niveau dan taal, op een semantisch niveau en niet op het niveau van de syntax. Ook al gebruiken mensen andere woorden voor een bepaald begrip, het gaat om de betekenis die zij daar dan mee tot uitdrukking willen brengen.
Nog niet af
TNO Telecom is nog niet klaar met de ontwikkeling van de techniek. De theoretische onderbouwing zou nog beter kunnen en de ontwikkelaars zijn nog van plan om een aantal voorbeeldmodellen te ontwerpen, waarmee men in de praktijk gemakkelijker aan de slag kan. Momenteel is het nog slechts een handjevol mensen dat met de techniek kan werken. Dit zijn eigenlijk alleen de mensen van TNO Telecom en medewerkers van het door CC-bedenker Stef Joosten opgezette bedrijf Anaxagoras. Dit in Hengelo gevestigde bedrijf is inmiddels overgenomen door Ordina.
Anaxagoras heeft de techniek gebruikt voor procesarchitectuur omdat de onderneming zich daar specifiek op heeft toegelegd, maar de techniek is ook daarbuiten bruikbaar. Bij een pensioenfonds heeft Anaxagoras met behulp van de CC-techniek adviezen gegeven over het omzetten van business-modellen naar workflow-modellen. Bij een grote bank is het gebruikt voor vereenvoudiging van procesmodellering. Bij een andere grote bank is de CC-techniek ingezet om discussies rond workflow-management te ‘ontmoeilijken’.
TNO Telecom denkt dat de techniek op termijn zal zorgen voor flinke besparingen bij organisaties. De doorlooptijd van grote ict-projecten en de beheerskosten van een organisatie zijn volgens de ontwikkelaars aanzienlijk te beperken wanneer tijdig voor heldere regels en afspraken wordt gezorgd. Ook kan men tijdig fouten in procesketens opsporen en dus veel geld besparen.< BR>