"UML è la cosa peggiore che sia mai capitata a MDD." Perché?


17

William Cook in un tweet ha scritto che:

" UML è la cosa peggiore che sia mai accaduta a MDD. Fortunatamente molte persone ora capiscono questo ... "

Vorrei conoscere il ragionamento alla base di tale affermazione (apparentemente, non mi riferisco alla sua opinione personale).

Ho notato che molte persone là fuori non amano così tanto UML. Vale anche la pena ricordare che è nel mondo accademico, dove UML è preety molto il santo graal di progettazione e modellazione efficaci.


15
Direi che MDD è la cosa peggiore che sia mai successa a MDD.
Michael Borgwardt,

Risposte:


39

Bene, sono l'accademico che ha pubblicato il tweet originale. I tweet non sono pensati per essere articoli accademici. Sono annunci pubblicitari e penso che possano anche essere controversi. Ecco i miei tweet di follow-up:

1) UML è stato creato per modellare i progetti OO. Di conseguenza, stai modellando il codice di un sistema, non il comportamento del sistema. UML è al livello sbagliato.

2) l'idea che 7 (o 13) formati di diagrammi in UML possano coprire tutto è folle. Che dire di GUI, web wireframe, autorizzazioni, ecc. ???

3) UML ha incoraggiato l'idea che i modelli debbano essere grafici. Ridicolo! I modelli di testo e grafici sono entrambi utili e spesso intercambiabili

4) UML è allo stesso tempo troppo grande e complesso e allo stesso tempo molto limitato. Stereotipo e profili non sono efficaci per le estensioni utilizzabili.

Nota che non sto necessariamente dicendo che UML è male. Sto semplicemente dicendo che non sta aiutando l'obiettivo dello "sviluppo guidato dal modello", che è quello che mi interessa. Non capisco il commento sul "santo graal".


10
+1 per trovare e rispondere a una domanda su prog.SE sul tuo tweet!
Warren P,

Quindi lo sviluppo guidato dal modello mi è sempre sembrato di avere un modello visivo. E se non UML, allora? (nota, non mi è mai piaciuto MDD e odio UML. Ma sono disposto a dare un colpo a MDD-sans-UML. Cosa devo provare?
Warren P

1
@Warren P: cosa non ti piace di MDD e UML?
dan_l

1
Ho rimosso la mia risposta perché chiaramente mi sbagliavo su ciò che intendevi. Ma sostengo l'affermazione che UML, come qualsiasi lingua, è uno strumento di comunicazione, non uno strumento di progettazione. Hai risposto che "Molti linguaggi di programmazione hanno la parola" linguaggio "nel loro nome, ma ciò non significa che siano solo per comunicazione, non esecuzione". Non useresti nemmeno COBOL come strumento di progettazione.
pdr

Penso che il commento del "Santo Graal" sia in riferimento alla frequenza dell'insegnamento.

8

UML è l'equivalente di prendere un cacciavite e un martello e legarli insieme e chiamarlo "Strumento di fissaggio universale". In teoria può essere usato per rappresentare un sacco di cose in grande dettaglio, in pratica è un mucchio di strumenti mal integrati che dichiarano di essere un singolo strumento, il che rende molto più difficile svolgere qualsiasi attività piuttosto che avere uno strumento adeguato per cominciare.



3

Penso che si debba anche sostenere che MDD è la cosa peggiore che è accaduta a UML (perché altrimenti avremmo l'UML2 che abbiamo?), Ma ignorandolo per il momento ...

MDD = Model Driven <Design | Sviluppo>. L'idea è quella di essere in grado di sviluppare soluzioni a un livello di astrazione adeguato al dominio del problema - ovvero, è un tentativo di esprimere soluzioni ai problemi nella sintassi più naturale per esprimere quelle soluzioni. Lo stesso dominio problematico è caratterizzato da un modello operativo (ovvero da un modello che può essere eseguito dal computer). Quindi, MDD può essere un approccio molto interessante, sebbene con due requisiti principali:

  1. Uno deve essere in grado di compilare quel linguaggio in una forma adatta all'esecuzione del computer (il modello deve essere operativo ); e
  2. È necessario creare un linguaggio di modellazione per il dominio problematico.

Comprendo che lo sforzo di UML2 era inteso ad affrontare il punto 1, probabilmente con la convinzione che l'esperienza industriale con UML dimostrasse che il punto 2 era soddisfatto per alcuni grandi sottogruppi di domini problematici. Sfortunatamente, e questo è ciò su cui penso che William Cook stesse arrivando, UML non soddisfa il punto 2 per nulla vicino all'ambito dei problemi che si pensava. Non parlo per esperienza personale, ma penso che l'esperienza industriale dell'utilizzo di MDD con UML abbia due risultati comuni:

  • È necessario modificare il codice sorgente generato da UML per risolvere quelle piccole lacune tra la progettazione UML e i requisiti del programma (costringendo gli sviluppatori a lavorare con codice generato che ha standard diversi per la manutenibilità e riducendo l'applicabilità degli artefatti UML all'implementazione ); O
  • L'UML è ingombra di molti dettagli che riducono la sua usabilità come linguaggio per comunicare sul design.

    In entrambi i casi, la promessa di MDD non è stata mantenuta. UML potrebbe essere considerato la cosa peggiore che è accaduta a MDD perché ha attirato l'attenzione degli sviluppatori di strumenti MDD sull'esclusione di modelli che potrebbero effettivamente funzionare (anche se per una serie più piccola di problemi software).


  • -2

    UML è eccezionale fintanto che è solo un linguaggio di modellazione. Se si tenta di connettere MDD a UML per ottenere una vista grafica, è inutile. MDD sarebbe fantastico senza UML e UML senza MDD.

    Diciamo che UML e MDD hanno divorziato oggi per avere una vita migliore non più insieme :-)


    Non è "fantastico" a tutti i livelli. Un utente del disastroso linguaggio di programmazione ADA (Booch) ha creato alcuni diagrammi infantili e si è collegato con un paio di approcci di diagrammi di classe più seri per creare UML. UML si è immediatamente trasformato in un generatore di entrate per grandi fornitori di software. È stato orribile, ma salvato semplicemente inserendo nuovi tipi di diagramma (quell'UML precedente) come sequenza, flusso di dati, ecc. Non c'è nulla di estensibile al riguardo. Nessuno schema di database, nessun diagramma di livello, è pieno di lacune e pieno di diagrammi inutili allo stesso tempo.
    Rick O'Shea,
    Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
    Licensed under cc by-sa 3.0 with attribution required.