• Damiano D'Amici

Model-driven architecture

Aggiornato il: ago 5

L’architettura guidata dal modello, o model-driven architecture (MDA), è un approccio di progettazione per il design, lo sviluppo, e l’implementazione di sistemi software. Introdotta dall’Object Management Group (OMG) nel 2001, come suggerito dal suo nome la MDA utilizza il concetto di modelli come linee guida per strutturare le specifiche del progetto software. Seguendo le direttive dell’OMG, per aderire alla MDA un applicativo deve consistere in un singolo modello piattaforma-indipendente (PIM), atto a descrivere il sistema in termini funzionali e di dominio, e uno o più modelli piattaforma-specifici (PSM), ognuno atto all’implementazione del software in una specifica piattaforma.[1]



L’idea dietro al processo dettato dalla MDA è quella di iniziare la progettazione del sistema assimilandolo ad un modello scevro di dettagli tecnici, che si focalizza invece sulla rappresentazione della struttura di dominio e del comportamento del sistema (il PIM). Questo modello è poi tradotto tramite trasformazione in una serie di modelli specifici (e maggiormente tecnici) per l’implementazione del sistema descritto dal PIM nelle varie piattaforme (o tecnologie) dove sarà operativo (i PSM).[2] Spesso questa fase di trasformazione è gestita automaticamente da uno strumento che va di fatto a generare una parte o la totalità del codice sorgente necessario all’implementazione del sistema nelle varie piattaforme relative ai PSM.[3]


Vantaggi e compromessi

L’approccio MDA si prepone come soluzione capace di aumentare la produttività delle fasi di progettazione e sviluppo di sistemi software. L’utilizzo di modelli standardizzati è infatti teoricamente in grado di aumentare la compatibilità tra sistemi e semplificarne il processo di design, una necessità particolarmente pressante in contesti dove interagiscono diversi sistemi software. In questa chiave la separazione concettuale tra PIM e PSM può potenzialmente apportare ulteriori benefici grazie ad una migliore suddivisione dei compiti tra esperti di dominio e di piattaforma.


Anche se molti di questi vantaggi vanno effettivamente a concretizzarsi nelle realtà aziendali che adottano l’approccio MDA, nella pratica la dicotomia PIM-PSM è raramente rispettata in favore di uno o dell’altro. Nel primo caso la trasformazione del modello va a coincidere con la generazione del codice (saltando di fatto la fase di trasformazione in PSM), mentre nel secondo il livello di astrazione fornito dal PIM è abbandonato e i vari PSM sono direttamente interpretati da un compilatore che li traduce in codice.[4]


Fonti

[1,2] FAQ Model-Driven Architecture (MDA, Object Management Group (OMG). Consultato il 09/04/2019 da https://www.omg.org/mda/faq_mda.htm.

[3] Raistrick, C., Francis, P., Wright, J., Carter, C., Wilkie, I. (2004). Model Driven Architecture with Executable UML, Volume 1, 3-9.

[4] Cabot, J. (2013). Modeling Languages. Consultato il 09/04/2019 da https://modeling-languages.com/anybody-using-both-mda-platform-independent-and-platform-specific-models/.