Model Driven Architecture è l'idea che crei modelli che esprimono il problema che devi risolvere in un modo che sia privo di qualsiasi (o almeno la maggior parte) tecnologie di implementazione, e quindi generi implementazione per una o più piattaforme specifiche. L'affermazione è che lavorare ad un livello più alto di astrazione è molto più potente e produttivo. Inoltre, i tuoi modelli sopravvivono alle tecnologie (quindi hai ancora qualcosa quando la tua prima lingua/piattaforma diventa obsoleta che puoi usare per la tua prossima generazione di soluzioni). Un altro vantaggio chiave rivendicato è che gran parte del boilerplate e del "lavoro da grugnito" possono essere generati. Una volta che il computer comprende la semantica della tua situazione, può aiutarti di più.Stai facendo MDA (Model Driven Architecture) in questo momento? In tal caso, quali strumenti usi e come funziona?
Alcuni sostengono questo approccio è 10 volte più produttivo, e che è il modo in cui saremo tutti costruendo software in 10 anni.
Tuttavia, questo è tutto solo teoria. Mi chiedo quali sono i risultati quando la gomma incontra la strada. Inoltre, la versione "ufficiale" di MDA è dal OMG e sembra molto pesante. È fortemente basato su UML, che può essere considerato buono o cattivo a seconda di chi chiedi (io sono inclinato verso "cattivo").
Ma, nonostante queste preoccupazioni, è difficile discutere con l'idea di lavorare a un livello più alto di astrazione e "insegnare" al computer a capire la semantica del problema e della soluzione. Immagina una serie di modelli ER che esprimono semplicemente la verità, quindi immagina di utilizzarli per generare una parte significativa della soluzione, prima in un insieme di tecnologie e poi di nuovo in un altro insieme di tecnologie.
Quindi, Mi piacerebbe sentire le persone che stanno davvero facendo MDA in questo momento ("ufficiale" o meno). Quali strumenti stai usando? Come sta funzionando? Quanta parte della promessa teorica hai potuto acquisire? Vedi un vero aumento dell'efficacia del 10X?
Grazie. Interessante che il diavolo sia nei dettagli. I modelli sono per definizione semplificazioni eccessive e questo è ciò che ti ha causato più dolore. +1 –
Lo sviluppo del software guidato dal modello riguarda la generazione del codice dal modello. Si modifica il meta-modello, il modello e i generatori per modificare o aggiungere comportamenti. Non si tratta di creare e mantenere un modello indipendente che viene aggiornato manualmente quando si aggiorna il codice. –
Questo è esattamente il mio punto. Ad un certo punto il codice generato non è più utile. Non appena si inizia a modificare manualmente il codice, il processo si interrompe. –