Onlangs ontving ik van een collega een email waarin hij verwees naar een artikel geschreven door Martin Fowler. Die schrijft daarinj over de nieuwe op MDA-gebaseerde tools (Model Driven Architecture) waarmee code vanuit uml-specificaties gegenereerd wordt. Hij vergelijkt ze met de oude generatie case-tools die aan het einde van de jaren tachtig zo populair waren. Zijn conclusie: MDA-tools worden net zo’n groot commercieel als case-tools. Niet dus. Hij noemt het heel charmant “The night of the living case tools”.
Martin Fowler is een internationaal gerespecteerd specialist op het gebied van refactoring en heeft er ook hét boek over geschreven. Dus omdat hij dat zei, vond ik het belangrijk het artikel eens te lezen en stil te staan bij zijn vergelijking. Ook omdat ik in mijn eigen lezingen over MDA-tools vaak de vraag krijg wat de overeenkomsten en verschillen zijn tussen deze twee generaties van producten.
Om maar gelijk met de deur in huis te vallen, deze twee categorieën tools kunnen niet met elkaar vergeleken worden. Het is een vergelijking van appels met peren. De eerste generatie case-tools, zoals Excelerator, ER-Designer en IEW, waren voornamelijk bedoeld om specificaties te controleren en te registreren. Er konden ook relaties tussen elementen van verschillende diagrammen vastgelegd worden en allerlei rapporten en diagrammen konden gecreëerd worden. In feite waren het de opvolgers van de nog oudere data dictionary/directory systemen. De case-tools waren echter gebaseerd op modernere diagramvormen, hadden grafische interfaces en konden meer soorten specificaties vastleggen.
De mogelijkheden om werkelijk code te genereren waren minimaal. De meeste konden wel databasestructuren genereren, maar daar hield het wel een beetje mee op. Uitzonderingen, zoals toentertijd IEF (nu CA’s Advantage Gen geheten) konden wel code genereren.
Eén van de hoofdredenen dat deze case-tools nooit commercieel zijn aangeslagen is waarschijnlijk dat ze geen code genereerden. De return on investment (roi) moest dus volledig uit de documentatie- en rapportagemogelijkheden komen. Met de hand moest de code afgeleid worden van alle specificaties. Als later diezelfde code aangepast moest worden, moesten de specificaties in het case-tool ook met de hand bijgewerkt worden. Niets gebeurde automatisch. En, zoals u al vermoedt, gebeurde dat niet altijd met als effect dat de waarde van de specificaties opgeslagen in het case-tool verminderden. Integratie tussen case-tools en de echte ontwikkeltools ontbrak toen.
De markt van MDA-tools is ook geen homogene groep producten, dus generalisaties zijn niet mogelijk. En dat maakt ook een algemene vergelijking lastig. Er zijn MDA-tools die geëvolueerd zijn vanuit moderne case-tools, zoals die van IBM/Rational en Borland/Togethersoft. De integratie tussen de case-omgeving en de ontwikkelomgeving (waarin er met code gestoeid wordt) is hier veel hechter dan dat we ooit gezien hebben bij de oudere case-tools. En IBM en Borland zullen in de toekomst deze integratie nog meer versterken. Als gegenereerde code aangepast wordt, wordt ook direct de specificatie aangepast.
Maar er zijn ook MDA-tools die speciaal voor het genereren van code zijn gebouwd, zoals Uniface’s Jdeveloper en Interactive Objects’ Arcstyler. Deze producten zijn initieel geen case-tools geweest, maar richten zich echt op de ontwikkelaar. Let wel, deze tools zullen ongetwijfeld evolueren naar case-tools. We zien dat al bij het product van Uniface. In ieder geval kunnen ook deze tools nog niet met de oude case-tools vergeleken worden. En als ze hun case-mogelijkheden toegevoegd hebben, zal ook hier de integratie tussen case en ontwikkeling hechter zijn.
Een beperking van MDA-tools is wel dat ze niet geschikt zijn voor het ontwikkelen van allerlei soorten programma’s. De huidige MDA-tools zijn sterk gericht zijn op het genereren van administratieve, databasegeoriënteerde applicaties. Voor het genereren van andere soorten applicaties kunnen we waarschijnlijk het beste weer met de hand gaan coderen. En deze gerichtheid was ook zichtbaar bij de oude case-tools. Hier bestaat dus wel een overeenkomst.
Heeft Martin Fowler dus gelijk? Deels niet en deels wel. Het vergelijken met case-tools en het meldden dat MDA-tools slechts een reïncarnatie zijn, is onterecht. De tools zijn te verschillend om een dergelijke vergelijking te mogen maken.
Het commerciële succes van de MDA-tools is nog steeds onzeker. De productverkoop is helaas nog te beperkt om met zekerheid te voorspellen dat het een doorslaand succes wordt. Dus het zou kunnen dat ze net zo weinig succes hebben als de case-tools, en dat zou dan wel een overeenkomst kunnen zijn. < BR>
Rick F. van der Lans is onafhankelijk adviseur, een internationaal bekend spreker en auteur van diverse boeken, tevens gespecialiseerd in softwareontwikkeling, datawarehousing en internet.