Vývoj softvéru riadený modelom
Metaprogramovanie 9
Sergej Chodarev
Metaprogramovanie
- Metadáta pre deklaratívny opis
- Oddelenie vrstiev a modulov
- loose coupling
- separation of concerns
- Automatické generovanie detailov na základe abstraktnejšej špecifikácie
Model-driven software development
- Špecifikácia systému pomocou vysokoúrovňového modelu
- Generovanie časti implementácie z neho
Model-Driven Architecture (MDA)
- Štandard definovaný Object Management Group (OMG)
- UML ako modelovací jazyk
- Väčšinou nahradený jednoduchšími alternatívami
Model
- Grafický (napr. UML)
- Textový – doménovo-špecifický jazyk (DSL)
- externý
- interný – samotný programovací jazyk
Príklad: JetBrains MPS
- Definícia DSL
- Projekčný editor
- Generovanie kódu
Architektúra systému
J. Porubän: Modelovanie a generovanie softvérových architektúr (cvičenia)
Hierarchia modelov
J. Porubän: Modelovanie a generovanie softvérových architektúr (cvičenia)
Architektúra generátora
J. Porubän: Modelovanie a generovanie softvérových architektúr (cvičenia)
Model vo vygenerovanom kóde
- Model implementovaný aj v cieľovom jazyku
- generujeme len konfiguráciu modelu
- Bez explicitnej reprezentácie modelu v cieľovom jazyku
- opakovanie kódu
- riešenie obmedzení cieľovej platformy