UML and JDeveloper

Jethro Wallenburg en Bart van Kuik

3 februari 2003

Introductie

Al een aantal jaren is het ontwikkelen in een objectgeorienteerde (OO) taal de normaalste zaak van de wereld. Om een OO-applicatie te modelleren, dient ook een modelleertaal gebruikt te worden die dit ondersteund. Wat dat betreft is UML de lingua franca geworden. Dit artikel probeert duidelijk te maken wat UML is, wat de marktsituatie voor modelleertools is, wat de combinatie JDeveloper/UML mag betekenen en tenslotte welke richting we op gaan.

Wat is UML? UML staat voor Unified Modeling Language. Het is een modelleertaal (dus geen methode) met de nadruk op OO. Centraal in een OO-taal staan objecten, waarin gerelateerde variabelen en functies verzameld zijn. Een klasse is een blauwdruk van een object. Door de focus van UML op OO wordt zowel data als functionaliteit beschreven -- in tegenstelling tot bijvoorbeeld ER-diagrammen die slechts data beschrijven.
Korte geschiedenis van UML

In 1994 besloten drie heren, Grady Booch, Ivar Jacobson en James Rumbaugh om 'het beste' van hun talen te combineren en er één taal van te maken. In de praktijk bleek namelijk dat de talen fundamenteel niet veel verschilden. Zij waren de grondleggers van (respectievelijk) de methodes Booch, Object Oriented Software Engineering (OOSE) en Object Modeling Technique (OMT). De standaard die zij ontwikkelden werd de Unified Method (UM) genoemd.

Door de opkomst van objectgeorienteerde software werd duidelijk dat er behoefte bestond bij bedrijven om de UM te gaan gebruiken. De Object Management Group (OMG), een consortium van bedrijven in de software-industrie, wilde graag een aantal voorstellen zien voor een standaard objectgeorienteerde taal. Rational bracht daarop UM als notatiestandaard naar voren. In samenwerking met een groot aantal andere bedrijven waaronder Oracle, DEC, HP, IntelliCorp, IBM, Microsoft, TI en Unisys vormde Rational het UML Partner Consortium. Dit leidde in 1997 tot UML 1.0 en in 2001 is UML beland in versie 1.4.

Tot zover het verleden. Interessanter is de huidige stand van zaken!

Marktsituatie

UML is een taal die stevige ontwikkeling heeft doorgemaakt. Rational is er vanaf het begin bij geweest en heef de touwtjes stevig in handen gehouden. Dit blijkt ook duidelijk uit de huidige marktsituatie: een rapport van IDG (juni 2002) geeft aan dat Oracle op een tweede plaats staat, ver onder Rational.

Rational's belangrijkste product is genaamd Rose. Door het grote marktaandeel is Rational Rose een de facto standaard. Het nieuwste product van Rational is Rational XDE, deze integreert met de omgevingen van Macromedia, IBM en Microsoft.

Onlangs is Rational overgenomen door IBM. De focus van diens producten zal wellicht verschuiven naar de IBM ontwikkeltools. Een andere interessante ontwikkeling is de aankoop van Visio door Microsoft. Met Visio konden al UML-diagrammen getekend worden, inmiddels heeft Microsoft het product geïntegreerd in de dot-Net suite.

Componenten van UML

UML definieert negen soorten diagrammen, verdeeld in twee categorieen: vier diagramtypen geven de statische structuur van de applicatie aan en vijf geven dynamisch gedrag aan.

De eerste categorie bevat het class diagram, object diagram, component diagram en deployment diagram. Die eerste spreekt voor zich. Object diagrammen worden niet veel gebruikt, ze dienen om het instantieren van een klasse te verduidelijken. Component diagrammen tonen (kant-en-klare, executable, wellicht aangekochte) componenten en hun afhankelijkheden. Deployment diagrammen tonen runtime hoe componenten verdeeld zijn over de infrastructuur.

De tweede categorie bevat het use case diagram, sequence diagram, collaboration diagram, statechart diagram en activity diagram. Een use case diagram toont de interactie van gebruikers met de (als een black box benaderde) applicatie. Sequence diagrammen laten zien hoe objecten onderling communiceren, uitgezet tegen de tijd. Collaboration diagrammen geven dezelfde informatie weer, alleen dan niet uitgezet tegen de tijd zodat het berichtenverkeer benadrukt wordt. Statechart diagrammen geven weer in welke staat een object kan verkeren. Een activity diagram is oorspronkelijk een beperkt soort statechart, maar is in de praktijk geschikt voor het uitwerken van use cases (hoog niveau), maar ook de flow van data of het verloop van business processen kan worden weergegeven, of zelfs het uitwerken van een algoritme (laagste niveau).

JDeveloper

Oracle's Java ontwikkeltool JDeveloper wordt op een incrementele manier uitgerust met een geïntegreerde UML-modelling tool. Met de huidige versie van JDeveloper (versie 9.0.3) kunnen class diagrams en activity diagrams gemaakt worden.

Wanneer een class diagram wordt gemaakt, ontstaat automatisch de code van een Java klasse. Omgekeerd kan ook: wanneer de class in de code is veranderd, kan het class-diagram bijgewerkt worden door de naam van het bestand naar het UML-diagram te slepen. Dit wordt 'round-trip-engineering' genoemd (wordt overigens door meerdere producten geïmplementeerd).

Naast de hierboven beschreven standaard UML-mogelijkheden is het ook mogelijk om BC4J te modelleren. Net als bij een gewone class wordt automatisch de code gegenereerd en bovendien is het hierbij mogelijk om een bijbehorende tabel te genereren. Deze mogelijkheden zijn overigens geen afwijking van UML, want de standaard voorziet in dergelijke uitbreidingen. Deze worden genaamd stereotypes en worden in diagrammen weergegeven tussen punthaakjes.

Zoals gezegd kunnen in JDeveloper naast class diagrams ook activity diagrams gemaakt worden. Een voorbeeld is hier te vinden.

Een activiteit wordt weergegeven door een platgeslagen eclips en een overgang door middel van een pijl. Eventuele voorwaarden voor een overgang worden weergegeven tussen vierkante haken.

Toekomst

Tot zover de toepassing van UML. Ter afsluiting zullen we hier nog proberen om de toekomst te schetsen van JDeveloper/UML en van UML als standaard.

Wat JDeveloper betreft: uitbreidingen aan de UML-mogelijkheden die op stapel staan, zijn use case en sequence diagrams. Verder zal incrementeel gewerkt worden aan een modelleertool voor de database, die vervolgens SQL genereert. Exporteren van UML door middel van XMI is nu al mogelijk. Development is van plan om hier verbeteringen in aan te brengen.

De standaard UML is op dit moment genummerd als 1.4 en bestaat sinds februari 2001. Vanuit OMG zijn een drietal RFI's opgesteld. Binnen de UML community zijn hierop antwoorden geformuleerd. Het werk voor versie 2.0 is nu in volle gang (zie ook kader). Er zijn zelfs al fabrikanten die versie 2.0 proberen te ondersteunen met hun modeling tool. Er wordt dus enthousiast aan UML gewerkt. Het is onze verwachting dat de komende tien jaar UML de standaard is en blijft.

Noot: Oracle University

Oracle University heeft een 3-daagse, klassikale cursus genaamd 'Object-Oriented Analysis and Design Using UML'. De eerstvolgende startdatum in Maarssen is 26 maart 2003.

Bronnen

Visio integratie in de .Net suite: http://www.microsoft.com/office/visio/evaluation/indepth/devtools.asp

Rapport van IDG over de markt voor tools voor analyse, modellering en design: http://www.rational.com/media/products/rose/idc.pdf

Rational Rose: http://www.rational.com/rose/

Online magazine over UML in verband met Rational Rose: http://www.therationaledge.com/

ArgoUML, een open source UML modeler, geschreven in Java: http://argouml.tigris.org/

Umbrello, een open source UML modeler voor Linux: http://uml.sourceforge.net/

"The Future of UML", een whitepaper door J. Warmer: http://www.klasse.nl/english/uml/uml2.pdf

"Praktisch UML", J. Warmer en A. Kleppe, Addison Wesley, ISBN 90-6789-937-2 (alternate, search)