MDSD

Vývoj softvéru založený na modeli

Model-driven software development (MDSD) je technika vývoja softvéru, pri ktorej implementácia aplikácie alebo jej časti je generovaná na základe vysokoúrovňového modelu. Jednou z foriem MDSD je štandard MDA (Model-driven architecture), ktorý špecifikuje postupy pre takýto vývoj softvéru a využíva UML ako modelovací jazyk.

Všeobecná architektúra systému využívajúceho MDSD je zobrazená na obrázku nižšie. Na základe modelu je generovaná časť systému, ktorá je dynamická. Okrem toho systém obsahuje univerzálny kód, ktorý nie je závislý od modelu a môže byť využívaný generovaným kódom. Väčšinou však nie je možné modelom špecifikovať všetky detaily systému. Preto môže byť potrebné doplniť špecifický kód, ktorý je vytváraný manuálne.

Architektúra MDSD (MAGSA)
Obr. 1: Architektúra MDSD (MAGSA)

Pri MDSD sa tiež používa pojem metamodelovanie. Ide o definíciu akéhosi „modelu modelov“ — modelu opisujúceho štruktúru a vlastnosti modelov na nižšej úrovni.

Hierarchia modelov (MAGSA)
Obr. 2: Hierarchia modelov (MAGSA)

Ako som už spomínal, model je vstupom pre generátor kódu. Model však môže byť súčasťou aj vygenerovaného kódu. Ak máme model (alebo skôr metamodel) implementovaný aj v cieľovom jazyku, potom nám stačí generovať iba konfiguráciu modelu a ostatný kód môže byť súčasťou statického univerzálneho kódu.

V prípade, že nepoužijeme explicitnú reprezentáciu modelu v cieľovom jazyku, potom zväčša musíme generovať viac opakujúceho sa kódu. To však nie je podstatný problém, keďže tento kód nebude upravovaný ručne. Takéto riešenie môže byť nevyhnutné kvôli obmedzeniam cieľovej platformy, ktorá neumožňuje reprezentovať v nej model.

Literatúra