Model-driven architecture

Model Driven Architecture is een methode voor het ontwikkelen van software die gedefinieerd is door de Object Management Group (OMG). Kenmerkend is het gebruik van formele modellen tijdens het ontwikkelproces.

Modellen

Een model is een voorstelling van functies, structuur en gedrag van een systeem.

Elk systeem wordt in een bepaalde omgeving gebruikt. Deze wordt gemodelleerd in een Computation Independent Model (CIM). Enkele kenmerken van een dergelijk model zijn:

  • Het verbergt veel informatie die handelt over het gebruik van een softwaresysteem.
  • Het is onafhankelijk van hoe een systeem geïmplementeerd wordt.

Het MDA framework omvat drie abstractieniveaus van een softwaresysteem, die formele modellen zijn:

Transformaties

De transformaties tussen de formele modellen staan centraal in het MDA framework. Het zijn automatische generaties vanuit een bronmodel naar een doelmodel volgens een bepaalde definitie. Deze transformatiedefinitie bestaat uit regels die de transformatie van een model in brontaal naar een model doeltaal beschrijven.

De bron- en doelmodellen kunnen zowel in dezelfde, als in verschillende talen geschreven zijn. Een transformatietaal is een taal waarin transformatiedefinities geschreven worden. Dit is een metataal (zoals UML) die op zijn beurt ook in een metataal is geschreven.

Transformaties worden binnen het MDA framework door bepaalde tools uitgevoerd. Omdat het framework nog in ontwikkeling is, zijn er nog geen tools beschikbaar die het transformatieproces volledig ondersteunen.

Er zijn drie types transformaties:

  • Van en naar modellen van hetzelfde abstractieniveau.
  • Van een model op hoger abstractieniveau naar een model op lager abstractieniveau.
  • Van een model op lager abstractieniveau naar een model op hoger abstractieniveau.

Metaniveaus

Een CIM kan worden geschreven in eender welke modelleertaal. PIM's en PSM's worden in een formele modelleertaal geschreven, met UML als standaard.

OMG gebruikt voor zijn standaarden een architectuur die uit 4 lagen bestaat en binnen het MDA framework ook een rol speelt. Deze lagen zijn:

  • M0 : de instanties van de klassen(objecten)
  • M1 : de modellen van het softwaresysteem
  • M2 : de metamodellen
  • M3 : de meta-metamodellen

De elementen op lager liggende lagen zijn telkens instanties van een element op een bovenliggende laag.

Literatuur

  • Anneke Kleppe ea (2003), MDA Explained, The Model Driven Architecture: Practice and Promise, Addison-Wesley, 2003, ISBN 0-321-19442-X
  • Steve Mellor ea (2004) MDA Distilled, Principles of Model Driven Architecture, Addison-Wesley Professional, ISBN 0-201-78891-8
  • (en) De officiële MDA Guide Versie 1.0.1
  • (en) MDA Website van de OMG.