MDA, Molto Design Apriori

Definizione di model driven architecture per gli organizzatori del “first Italian MDA forum” :

“Basato sugli standard aperti stabiliti dall’ OMG®, l’approccio MDA® separa la logica di business dalla sottostante piattaforma tecnologica. E’ un approccio allo sviluppo del software che aiuta le imprese a sviluppare progetti complessi medio-grandi riducendo i costi di sviluppo e sopratutto di manutenzione, permettendo di incorporare rapidamente cambiamenti tecnologi e funzionali. MDA® inoltre favorisce la salvaguardia degli investimenti aziendali poiché permette il riuso continuo e trasparente dell’analisi e del codice.”

Questo approccio di sviluppo sembra davvero avere dei vantaggi eccezionali! Devo assolutamente apprenderlo… certo che se si tratta semplicemente di creare un modello nella propria applicazione (invece che, ad esempio, avere qualche centinaio di transaction scripts con migliaia di variabili globali), hanno scoperto l’acqua calda, non c’era bisogno di inventarsi un nuovo nome, si tratta semplicemente di object-oriented programming, ma vediamo più in dettaglio di cosa si tratta :

“MDA consider the existence of two models:

  • a PIM (Platform Independent Model), which is an abstract, high level model that specifies the application to be built (=what we want to do).
  • a PSM (Platform Specific Model), which is a concrete model that contains elements tied to a specific platform (=how we will do it).”

“Summarizing, a complete MDA application consists of a definitive PIM, plus one or more PSMs and complete implementations, one on each platform that the application developer decides to support.”

Hm… suona come un sacco di documentazione, io credevo che Model fosse il model di “model view controller”, cioè il cuore dell’applicazione, il dominio, dove si mette la logica di business.

Ma vediamo come sono fatti questi PIM e PSMs:

“For many specifications, these [PIM e PSM] will be defined in UML, making OMG’s standard modeling language a foundation of the MDA.”

Quindi questo metodo di sviluppo richiede :
1) Un documento di design UML, indipendente dalla tecnologia, -completo- di tutta l’applicazione.
2) Uno o più documenti di design UML estremamente dettagliati che tenga conto della tecnologia usata(PSM). Uno per ogni tecnologia su cui si implementerà.
3) Implementazione del PSM.

A conferma di questo ordine di esecuzione leggo questa frase da degli esperti di MDA :

“A functional model, or a business transaction, must at some point be translated into a executable code and a physical transaction”

Manco a dirlo tutti gli esperti di MDA che ho visitato su internet sono anche degli esperti di generazione automatica del codice a partire dall’UML.

Adoro in particolare quel “at some point”, che rivela tutta la diffidenza verso questa fase del lavoro, quasi a dire : “magari si potesse fare a meno dell’implementazione!”, risuona proprio come “implementation considered harmful”.

Tutto torna, è proprio lui… mr. Waterfall I presume.

Mi rimane solo un’ultima osservazione, ma perchè mascherare un processo di sviluppo (per altro già ben noto), dietro al nome “architecture”? Ah, già, perchè in questo “nuovo” paradigma i diagrammi UML (e MOF, e CWM*) non sono documentazione, sono -parte integrante- del sistema. Direi che è un ottimo approccio, almeno quando avremo finito di diagrammare tutto quanto e non ci sarà nulla di implementato, non solo potremo dire che il sistema esiste già, ma è anche perfettamente aderente al modello.

Il sistema, anzi, è il modello!

La prossima volta che il baraccone su cui lavoro (e il cui codice non posso toccare) non funziona farò un bel diagrammone di come invece dovrebbe essere per poter funzionare bene e poi lo spedirò ai sistemisti da installare. Sarà uno spettacolo.

[MOF sta per Meta-Object Facility, che, a quanto leggo, sarebbero le specifiche a cui aderire per far sì che un tipo di diagramma sia trasformabile in un altro diagramma MOF-based.
CWM sta per Common Warehouse Metamodel, a quanto pare si tratta di un meta-modello per definire i meta-modelli dei metadati che definiscono gli insiemi di dati.
Insomma, ho capito che quando ho bisogno di farmi un sacco di risate, devo solo visitare il sito dell’OMG]

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s