"UML es lo peor que le ha pasado a MDD". ¿Por qué?

17

William Cook en un tweet escribió que:

" UML es lo peor que le ha pasado a MDD. Afortunadamente, muchas personas ahora se dan cuenta de esto ... "

Me gustaría saber el razonamiento detrás de esa afirmación (aparentemente, no me estoy refiriendo a su opinión personal).

Me he dado cuenta de que a muchas personas no les gusta mucho UML. También vale la pena mencionar que él está en la academia, donde UML es bastante el santo grial del diseño y modelado efectivos.

Florents Tselai
fuente
15
Yo diría que MDD es lo peor que le ha pasado a MDD.
Michael Borgwardt

Respuestas:

39

Bueno, soy el académico que publicó el tweet original. Los tweets no están destinados a ser artículos académicos. Son anuncios, y creo que también pueden ser controvertidos. Aquí están mis tweets de seguimiento:

1) UML fue creado para modelar diseños OO. Efectúa que estás modelando el código de un sistema, no el comportamiento del sistema. UML está en un nivel incorrecto.

2) la idea de que 7 (o 13) formatos de diagrama en UML pueden cubrir todo es una locura. ¿Qué pasa con las GUI, las tramas web, la autorización, etc.?

3) UML ha alentado la idea de que los modelos deben ser gráficos. ¡Ridículo! Los modelos de texto y gráficos son útiles y a menudo intercambiables.

4) UML es a la vez demasiado grande y complejo y al mismo tiempo muy limitado. El estereotipo y los perfiles no son efectivos para extensiones utilizables.

Tenga en cuenta que no estoy diciendo necesariamente que UML sea malo. Simplemente digo que no está ayudando al objetivo del "desarrollo impulsado por modelos", que es lo que me interesa. No entiendo el comentario sobre "santo grial".

William Cook
fuente
10
¡+1 por encontrar y responder una pregunta en prog.SE sobre tu propio tweet!
Warren P
Por lo tanto, el desarrollo basado en modelos siempre me pareció tener un modelo visual. Y si no es UML, ¿entonces qué? (nota, nunca me ha gustado MDD, y odio UML. Pero estoy dispuesto a darle una oportunidad a MDD-sans-UML. ¿Qué debería intentar?
Warren P
1
@Warren P: ¿qué le disgusta de MDD y UML?
dan_l
1
Eliminé mi respuesta porque claramente estaba equivocado sobre lo que querías decir. Pero mantengo la afirmación de que UML, como cualquier lenguaje, es una herramienta de comunicación, no una herramienta de diseño. Respondió que "Muchos lenguajes de programación tienen la palabra" lenguaje "en su nombre, pero eso no significa que sean solo para comunicación, no para ejecución". Creo que no entiende que la ejecución ES comunicación con una computadora. Tampoco utilizarías COBOL como herramienta de diseño.
pdr
Creo que el comentario del "santo grial" se refiere a la frecuencia de la enseñanza.
8

UML es el equivalente a tomar un destornillador y un martillo y pegarlos juntos y llamarlo una "Herramienta de fijación universal". En teoría, se puede usar para representar una tonelada de cosas con gran detalle, en la práctica es un conjunto de herramientas mal integradas que dicen ser una sola herramienta, lo que hace que hacer cualquier tarea sea mucho más difícil que tener una herramienta adecuada para empezar.

Ryathal
fuente
3

Creo que también se puede argumentar que MDD es lo peor que le sucedió a UML (¿por qué si no tendríamos el UML2 que tenemos?), Pero ignorando eso por el momento ...

MDD = Model Driven <Diseño | Desarrollo>. La idea es poder desarrollar soluciones a un nivel de abstracción apropiado para el dominio del problema, es decir, es un intento de expresar soluciones a problemas en la sintaxis más natural para expresar esas soluciones. El dominio del problema en sí se caracteriza por un modelo operativo (es decir, por un modelo que puede ejecutarse por computadora). Por lo tanto, MDD puede ser un enfoque muy atractivo, aunque con dos requisitos principales:

  1. Uno debe poder compilar ese lenguaje en una forma adecuada para la ejecución de la computadora (el modelo debe estar operativo ); y
  2. Uno debe crear un lenguaje de modelado para el dominio del problema.

Tengo entendido que el esfuerzo de UML2 tenía la intención de abordar el punto 1, probablemente bajo la creencia de que la experiencia industrial con UML mostró que el punto 2 estaba satisfecho para un gran subconjunto de dominios problemáticos. Desafortunadamente, y esto es a lo que creo que se refería William Cook, UML no satisface el punto 2 en ninguna parte cerca del alcance de los problemas que se pensó. No hablo por experiencia personal, pero creo que la experiencia industrial de usar MDD con UML tiene dos resultados comunes:

  • O bien, el código fuente generado a partir del UML debe modificarse para resolver esas brechas pequeñas entre el diseño UML y los requisitos del programa (lo que obliga a los desarrolladores a trabajar con el código generado que tiene diferentes estándares de mantenimiento y reduce la aplicabilidad de los artefactos UML a la implementación ); O
  • El UML se llena con muchos detalles que reducen su usabilidad como lenguaje para comunicar sobre el diseño.

    En cualquier caso, la promesa de MDD no se cumple. UML podría considerarse lo peor que le sucedió a MDD porque ocupó la atención de los desarrolladores de herramientas MDD con la exclusión de los modelos que realmente podrían funcionar (aunque para un conjunto más pequeño de problemas de software).

  • Aidan Cully
    fuente
    -2

    UML es excelente siempre que sea solo un lenguaje de modelado. Si intenta conectar MDD a UML para obtener una vista gráfica, entonces es inútil. MDD sería genial sin UML, así como UML sin MDD.

    Digamos que UML y MDD se han divorciado hoy para tener una vida mejor que ya no están juntos :-)

    UML_Guru
    fuente
    No es "genial" en ningún nivel. Un usuario del desastroso lenguaje de programación ADA (Booch) creó algunos diagramas infantiles y se conectó con un par de enfoques de diagramas de clases más serios para crear UML. UML se convirtió inmediatamente en un generador de ingresos para grandes proveedores de software. Fue horrible, pero se recuperó simplemente colocando nuevos tipos de diagramas (ese UML anterior) como secuencia, flujo de datos, etc. No hay nada extensible al respecto. Sin esquemas de base de datos, sin diagramas de capas, está lleno de huecos y lleno de diagramas inútiles al mismo tiempo.
    Rick O'Shea