DDD in pillole #5 - Il limite intrinseco del Model Driven Design

Il odel Driven Design, pretenderebbe di poter generare il codice partendo dall'UML. Ed è li che il fallimento ci aspetta dietro l'angolo.
Fare una generazione di codice da UML e poi continuare a mantenere il codice allineato al modello è un lavoro pesante e difficilmente automatizzabile.

Teniamo a mente anche che:

  1. I diagrammi rappresentano una vista del modello analitico. Ma non sono il modello analitico.
    Per dirla con un detto zen...se qualcuno vi indica la luna con il dito...non confondete il dito con la luna. 
  2. E' invece il codice di un progetto (e volendo astrarre, anche il design) che riesce a catturare il modello più finemente.
    Certe volte è meglio leggere codice parlante che quintali di documentazione (Ogni buon developer nel suo intimo conosce questa verità!).

Il class designer di Visual Studio si discosta da altri tool di modellazione (statica) proprio per il fatto che non è UML che in qualche modo sarà trasformato in codice. E' semplicemente una view grafica sul codice stesso, modificabile interattiva ed intuitiva. E per far questo si è dovuto superare il limite dell'UML in favore dell'adozione di un Domain Specific Language.

Nei prossimi post cercheremo di capire meglio come il design ci aiuti a mantenere allineata l'implementazione al modello analitico.

Print | posted on martedì 5 settembre 2006 13.11

Feedback

# re: DDD in pillole #5 - Il limite intrinseco del Model Driven Design

left by Luca Minudel at 05/09/2006 19.19 Gravatar
> ...poter generare il codice partendo dall'UML. Ed è li che il fallimento ci aspetta dietro l'angolo.

sempre + d'accordo ! ;-)

# re: DDD in pillole #5 - Il limite intrinseco del Model Driven Design

left by Giampiero Granatella at 18/10/2006 12.39 Gravatar
Ciao interessante quello che dici, ma non mi trovo pienamente d'accordo.

Nel mio blog porto avanti alcuni ragionamenti sullo stesso tema.
Il quesito è da un modello posso arrivare all'applicazione finita senza scrivere codice?
Su questo ci sono rami dell'ingegneria del software che si impegnano a trovare una risposta, i nomi alla moda sono MDE (Model Driven Engineering) o MDA (Model Drivern Archtecture) - www.omg.org.

Secondo me non si riesce ad arrivare al codice perchè l'UML ha dei limiti nella modellazione, non riesco con l'UML ad essere esaustivo nel modellare un problema. Posso affrontarne e nalizzarne solo alcune parti e poi ho il problema di metterle assieme.
I RAD che da un modello arrivano all'applicazione creano dei gusci, dei prototipi che poi vanno riempiti con parti di codice desiderati. Ne ho provati alcuni, ma nessuno mi ha pienamente soddisfatto.

A questo punto anche io ero convinto dell'impossibilità di automatizzare la generazione del codice.
Poi ho provato, e usato in progetti reali, il prodotto Portofino della Manydesigns www.manydesigns.com ed effettivamente ho constato che è possibile (in alcuni domini) arrivare dal modello all'applicazione senza scrivere codice. Mi piacerebbe sapere cosa ne pensi e come si sposa con i tuoi ragionamenti.


Ciao
Giampiero

Comments have been closed on this topic.