R20/Consultancy B.V. - The website of Rick F. van der Lans

R20/Consultancy B.V.

The website of Rick F. van der Lans

Home page
Up

Ontwikkelen met MDA

Auteur: Rick F. van der Lans
Geschreven: februari 2002
Gepubliceerd in: CM Corporate.Net, nummer 176

Laten we eerlijk zijn over programmeurs. Ze houden niet van documenteren, en evenmin van modelleren. De meesten zijn zeer monogaam in hun interesses: programmacode schrijven. 

Hoe vaak komt het niet voor dat analisten de specificaties voor een systeem keurig in modellen gespecificeerd hebben, maar dat de programmeurs er slechts zijdelings naar kijken? Hoe vaak belanden modellen niet in een kast om nooit meer ingekeken te worden en zeker niet bijgewerkt te worden? Richard Soley, CEO van de OMG (Object Management Group), verwoordde het tijdens de in februari gehouden OMG Days in Amsterdam als volgt: Als de modellen door de analisten aan de programmeurs overgedragen zijn, hoor je ze op de gang al roepen: “Ok guys, let’s have a model burning party!”

En zolang er tussen de modellen en de programmacode geen automatische transformatie bestaat, zal deze situatie niet veranderen. Ofwel, zolang de modellen niet de laatste stap van ontwikkeling zijn, blijven er party’s georganiseerd worden. 

De OMG wil hier verandering in brengen. Zij, die ooit CORBA ontwikkelden, zijn vorig jaar gestart met de ontwikkeling van hun nieuwste standaard, genaamd MDA (Model Driven Architecture).

MDA bevindt zich in het domein van code-generatie. Het idee is simpel. Ontwikkelaars definiëren en specificeren hun gewenste systeem in technologie en platformonafhankelijke modellen, zogenaamde PIM’s (Platform Independent Models). In deze modellen is UML (Unified Modeling Language) de voertaal. Uiteraard is dit voor de OMG een begrijpelijke keuze, want deze standaard hebben zij reeds in hun portfolio zitten. Bij het specificeren van de PIM’s hoeft de ontwikkelaar zich niet te bemoeien met technische details van platformen zoals .NET, J2EE, EJB of CICS. Hij houdt zich voornamelijk bezig met het beschrijven van het gewenste systeem met behulp van UML-modellen, zoals use case en class-diagrammen.

Deze PIM’s worden vervolgens getransformeerd naar PSM’s (Platform Specific model). Dit wil gewoon zeggen dat bijvoorbeeld Java- of VisualBasic-code gegenereerd wordt. Bij de transformatie leunt MDA zwaar op de andere OMG-standaarden, zoals XMI (XML Meta Data Interchange) en MOF (Meta Object Facility). MDA is dus een bepaalde toepassing van reeds bestaande standaarden om code te genereren. 

Ondanks dat MDA nog niet klaar is, is een klein groepje leveranciers reeds begonnen met de implementatie. Zeker het Duitse Interactive Objects biedt al een aardige ondersteuning van MDA in hun ArcStyler-product. De bekende CASE-tool leverancier Rational en het minder bekende TogetherSoft zijn ook van de partij. Maar er zullen er ongetwijfeld nog meer volgen. Het zal weer een gebied worden waar initieel kleine, startende bedrijven om een marktaandeel gaan vechten en vervolgens zullen de grotere hier wat laat op instappen, maar uiteindelijk wel de slag winnen.

Met behulp van MDA kan de productiviteit van de ontwikkelaars en de onderhoudbaarheid van de systemen verhoogd worden. En daarbij is de gegenereerde code nog overdraagbaar ook. Het klinkt natuurlijk allemaal prima. Of klinkt het soms te mooi? Het opbouwen van technologie-onafhankelijke modellen die later vertaald worden naar bepaalde platformen is een nobel streven, maar het is ook een heidens karwei. De PIM-specificaties dienen onafhankelijk genoeg te zijn zodat er code voor verschillende platformen gegenereerd kan worden. Betekent dit dat we niet alle mogelijkheden van deze platformen kunnen gebruiken? En hoe zit het met de schaalbaarheid en snelheid van deze gegenereerde code?

En er zijn nog veel meer vraagtekens bij MDA te plaatsen. De antwoorden zullen nog wel even op zich laten wachten. Toch is het een goed initiatief. Het scheiden van de specificaties en de implementatie is altijd aan te raden geweest. Echter, de afgelopen jaren hebben vele bedrijven gekozen voor ontwikkelstraten waarbij er tussen deze twee geheel geen scheiding was. We weten uit het verleden dat software die op deze wijze gebouwd wordt, slechts een kort leven beschoren is. Implementatietechnologie verandert namelijk heel snel. Als u er bijvoorbeeld voor kiest om al uw code in Java of C# te schrijven met gebruikmaking van alle bijbehorende API's, dan zult u daar enkele jaren later voor boeten. Want dan zijn er betere platformen ontwikkeld en kunt u niet eenvoudig migreren.

Kortom, hoewel de standaard nog niet geheel klaar is, de ondersteuning door producten nog minimaal is en er nog vele vragen zijn, is MDA een initiatief om in de gaten te houden. MDA vormt namelijk een mijlpaal. Het kondigt het einde van een tijdperk aan. Een tijdperk waarin arbeidsintensieve programmeertalen en complexe API’s veel aandacht kregen en ons hebben afgeleid van waar het allemaal omgaat: het ontwikkelen van bedrijfsapplicaties en niet het oplossen van allerlei technologische problemen. Niet meer programmeren met programmeertalen, maar met modellen. Misschien wordt MDA wel de 5GL waar we al jaren op zitten te wachten? Laten we hopen dat de OMG zal lukken en dat ze voor eeuwig de “partypooper” zullen zijn.

 

If you have any questions or remarks concerning this website, please send us an email: info@r20.nl.
Copyright © 2009 R20/Consultancy B.V.