In de software-engineering is een duidelijke verschuiving van sequentiële ontwikkeling naar een meer parallelle. Dat vergroot het belang van een heldere en ondubbelzinnige communicatie tussen ontwerpers.Dit jaar verschijnt er een nieuwe hoofdversie van de gestandaardiseerde modelleertaal UML. Cris Kobryn speelde een belangrijke rol bij de totstandkoming van deze UML 2.0. Hans van Thiel interviewde de Californiër op Schiphol.
Het Sheraton Hotel op Schiphol Airport heeft een heleboel ruimten waar koffie gedronken kan worden – allemaal bijna leeg om 9.00 uur dinsdagmorgen – maar geen ‘Coffee Corner’ en daar zouden we Cris Kobryn ontmoeten. Hij is hoofdtechnoloog van Telelogic, een fabrikant van tools voor software-ontwikkeling en testen, en daarnaast betrokken bij de standaardisatie van UML (Unified Modeling Language) binnen de OMG (Object Management Group). Om precies te zijn: Cris Kobryn is medevoorzitter van de UML Revision Task Force en van de Analysis & Design Task Force.
De OMG beheert onder meer Corba (Common Object Request Brokerage Architecture) en sinds 1997 ook de zeer succesvolle UML-standaard, waarvan in 2002 een nieuwe hoofdversie zal verschijnen. Cris Kobryn heeft een belangrijke rol gespeeld bij de totstandkoming van deze UML 2.0.
Gelukkig is het Sheraton Hotel ook weer niet zo groot dat het misverstand rond de afspraak niet met behulp van mobiele telefoons is op te lossen. Na de fotosessie in de gangen van de luchthaven stelt Kobryn, met de natuurlijke hoffelijkheid van de Californiër, ruim tijd beschikbaar voor het interview.
UML is een grafische notatie om software te beschrijven. Is het daarmee ook een stap in de richting van visueel programmeren? Zoals bijvoorbeeld Delphi of Visual Studio?
Cris Kobryn: Dat is niet hetzelfde, naar mijn mening. In een visuele programmeeromgeving ligt er een sterke nadruk op gebruikersinterfaces. Bij UML gaat het om de evolutie van representatie op laag niveau naar een hoger, meer abstract niveau. Het is heel populair geworden omdat het een ‘lingua franca’ is, een gemeenschappelijke taal. In software-specificaties stonden ook vroeger al hokjes en lijnen, maar die hebben nu met UML een vaste betekenis. Daarvóór was er in de praktijk zeer veel begripsverwarring tussen ontwerpteams en zelfs daarbinnen. Door de standaardisatie van UML werd het voor het eerst mogelijk om visueel te specificeren.
Telelogic richt zich met haar tools behalve op UML ook op SDL. Wat is SDL?
De ‘Specification and Description Language’ stamt al uit 1976, en eigenlijk is veel van UML direct afgeleid uit SDL. Het wordt vaak toegepast in telecommunicatie en het is dan ook een standaard van de ITU -T (International Telecommunication Union standaarden organisatie). UML 1.x is in 1990 ontstaan als een vereniging van drie methodologieën, en de oorspronkelijke ontwerpers hadden zelf ervaring met SDL. Telecommunicatie-software behoort tot de meest kritische die je maar kunt bedenken, en SDL is dan ook ruim beproefd in de praktijk.
In 2000 is er een vernieuwde versie van de ITU-T SDL standaard uitgekomen die heel doelmatig is, en wij hebben daar bij ons werk aan UML 2.0 goed naar gekeken. We hebben veel geleerd over hoe je een taal moet ontwerpen en we wilden ons niet alleen bezig houden met het provisorisch opvullen van gaten (‘mudpacking’).
Voor UML 2.0 zijn we uitgegaan van de 80/20 regel. Dat wil zeggen dat een kern van 20 procent van het geheel zo’n 80 procent van al het werk doet. De overige functionaliteit, die minder vaak gebruikt wordt, kun je dan vastleggen in profielen. UML 2.0 is dan ook veel schaalbaarder dan de huidige versie 1.4.
U somt in een artikel* enkele veel genoemde bezwaren op tegen het huidige UML. Het zou te groot zijn, nodeloos ingewikkeld, niet precies genoeg, geen duidelijk omschreven profielen bevatten en architectuur-modelleren onvoldoende ondersteunen.
Het werk aan een nieuwe hoofdversie van de UML-standaard heeft een heel brede ondersteuning gekregen. Achtentwintig bedrijven hebben voorstellen ingediend bij de OMG, en we hebben een boel vooruitgang geboekt. Het uitgangspunt is steeds geweest dat een ontwerp niet af is als er niets meer aan is te toe voegen, maar als er niets meer kan worden weggelaten.
In de infrastructuur geven we de basisbegrippen en – constructies en in de superstructuur behandelen we geavanceerde onderwerpen als architectuur en ondersteuning van componenten.
Ook van de Object Constraint Language (OCL) komt een tweede versie en daardoor kan de precisie vergroot worden.
Eind van het jaar zal het meeste werk zijn afgerond en in april 2002 moet dan de officiële UML 2.0 versie als OMG-standaard verschijnen.
Kritiek
Anderzijds is er kritiek dat de standaarden elkaar te snel opvolgen. UML zou niet de tijd krijgen zich te stabiliseren. Volgens u is er geen enkele tool die alle aspecten van UML 1.3 daadwerkelijk ondersteunt.
Niet alleen 1.3 maar alle 1.x versies worden slechts gedeeltelijk ondersteund door tools. Dat was een van de redenen om een onderscheid aan te brengen tussen een kern en profielen. Het wordt dan makkelijker voor fabrikanten om die kern volledig te ondersteunen. Tegelijkertijd schep je ruimte voor bijzondere varianten zoals UML voor agents, Real Time UML, en dergelijke.
Overigens is de instabiliteit die u noemt grotendeels cosmetisch. Eerst had je de OMG-standaarden 1.1 en 1.2 die vrijwel hetzelfde waren. Anderhalf jaar later kwam dan 1.3 en weer een jaar later 1.4. Met de komende versie 2 inbegrepen zit er dus een periode van vijf jaar tussen twee hoofdrevisies van de standaard. Dat is een alleszins verantwoord beheer van veranderingen.
Bovendien moet je toch altijd rekening houden met een zekere natuurlijke selectie. UML is een levende taal en alle levende talen evolueren. Het is nooit met zekerheid te voorspellen wat blijft en wat zal verdwijnen.
Om terug te komen op het verband tussen modelleren en programmeren: U hebt zich beziggehouden met het modelleren van EJB (Enterprise Java Beans) en COM+ (Component Object Model) entiteiten in UML. In het betreffende artikel noemt u ook ‘round trip engineering’.
Cris Kobryn: Een belangrijk onderscheid is dat tussen logische componenten en hun implementatie in EJB of COM+. Een van de doelstellingen van UML 2.0 is geweest om die twee abstractieniveaus beter met elkaar te kunnen verbinden. De mogelijkheden van ‘round trip engineering’ worden weliswaar zwaar overdreven maar er zijn wel degelijk vorderingen gemaakt.
Een component is een onderdeel dat je eruit kunt halen en door een ander kunt vervangen (‘swap out’), liefst terwijl het systeem in bedrijf blijft (‘hot swap’). Bij een componentgebaseerd ontwerp gaat het eigenlijk om het verbinden van interfaces, het bedraden van interfaces, zou je kunnen zeggen.
Dat is in hardware-ontwerp de gebruikelijke benadering, en hardware is dan ook zeer betrouwbaar. Daar geldt ook nog steeds de wet van Moore, en de hardware-industrie is volgroeider dan de software-industrie. Vaak hoor je dat software heel anders is en dat software-engineering een veel nieuwere discipline is, maar dat is een zwak excuus. Historisch gezien hebben de ontwikkelingen in hardware en software altijd parallel gelopen.
Komt er meer eenheid in de software-engineering? Wat vindt U in dat verband van het Unified Process (UP) van Rational?
Aan de ene kant heb je de trend naar XP (eXtreme Programming), dat eigenlijk een vrijbrief geeft om te hacken, en aan de andere kant de complexiteit van UP.
Telelogic probeert met zijn tools tussen die twee uitersten in te zitten, maar ons uiteindelijk streven is wel het automatiseren van de hele levenscyclus van software.
Je ziet in elk geval in de software-engineering een duidelijke verschuiving van sequentiële ontwikkeling naar een meer parallelle. Dat vergroot het belang van een heldere en ondubbelzinnige communicatie tussen ontwerpers.
We zijn consequent bezig met het integreren van al onze tools, van eisenbeheer tot testen. Het gaat daarbij overigens ook om samenwerking met producten van anderen.
Het principe is: een goede tool-ondersteuning, gebaseerd op standaarden.
Hans Van Thiel Freelance Medewerker * Cris Kobryn, "The Road to UML 2,0: Fast Track or Detour?", April 2001, zie http://www.celigent.com/kobryn/bio.htm.