¿Cuáles son las deficiencias de UML (Unified Modeling Language)?

Las principales deficiencias son su complejidad y su falta de semántica para todos los elementos. Aprender a usar UML de manera efectiva y correcta no es una tarea fácil.

Sin embargo, después de haber trabajado con UML durante los últimos 17 años (desde que se introdujo v0.8 por primera vez), puedo decirle que se ha utilizado con éxito, generalmente en proyectos más grandes donde se tomó el tiempo para definir adecuadamente la semántica y enseñarles desarrollador. El mayor éxito fue cuando esto resultó en un lenguaje de modelado específico de dominio efectivo y se utilizaron técnicas completas de MDA / MDE. Esto dio como resultado que el modelo se tratara como el código y que el código 3GL real se tratara como binarios.

Por cierto, una vez que puede tratar el modelo como el “código fuente”, las metodologías ágiles y Lean se aplican muy bien.

Sin embargo, esto no quita la complejidad de las herramientas, la notación y el metamodelo y la brecha de conocimiento.

No ha sido ampliamente adoptado por los desarrolladores de software de nivel pequeño a medio. UML tiene un gran potencial como herramienta de comunicación y documentación, pero en mi experiencia, incluso la mayoría de los programadores de nivel medio superior no se han tomado el tiempo para aprenderlo. Es frustrante ver pizarras blancas con palabras en cajas conectadas por líneas porque estos diagramas no significan absolutamente nada a menos que conozca el contexto en el que se construyeron. El conjunto de diagramas UML tenía como objetivo resolver este problema al ofrecer abstracciones estándar para comunicar conceptos de arquitectura. UML ha jugado un papel importante en la arquitectura de software de nivel empresarial. IBM y otros han construido paradigmas completos en torno a UML como una forma de crear, controlar y administrar sistemas comerciales complejos de principio a fin. Creo que UML como herramienta de comunicación se ha derrumbado bajo su propia complejidad debido a los vínculos con la generación de código costosa y los productos de ingeniería inversa. Desearía que más personas lo usaran. Creo que los libros de Scott Ambler sobre cómo usar UML en el desarrollo ágil deberían ser una lectura obligatoria para los ingenieros de software

La principal desventaja de UML es que es completamente inútil a partir de hoy.


Movido a la respuesta de los comentarios como se sugiere.

Esto se debe a que no hay un problema real que UML esté resolviendo en el ágil mundo actual de las startups lean.

Los ingenieros con experiencia en el mundo real entienden los diagramas de bloques y no tienen problemas para ponerlos en código.

Si se necesita un diseño más detallado, los documentos de diseño se escriben y ejecutan. El desarrollo basado en pruebas también ayuda.

Pasar tiempo deliberadamente aprendiendo y emplear la “tecnología” UML solo “para asegurarse de que hablemos el mismo idioma” no tiene mucho sentido. Hay mejores formas de invertir el tiempo de los ingenieros para aumentar la productividad a largo plazo y la satisfacción laboral / vital.

Dicho esto, conocer UML puede ser útil porque introduce el marco para que tu cerebro piense. Te convierte en un desarrollador un poco mejor en comparación con alguien que no conoce UML. Pero si alguien que no conoce UML está considerando dónde crecer profesionalmente, leer casi cualquier diseño de código abierto o sus pruebas les enseñará más que comprender los fundamentos de UML.

Divulgación completa: he estudiado UML hace ~ 10 años en la escuela y no lo he usado ni lo he visto desde entonces.

Las técnicas gráficas como UML se ven bien en proyectos pequeños pero no escalan bien a proyectos medianos o grandes.

Siempre he encontrado que definir archivos de encabezado y luego generar diagramas UML con Doxygen funciona mejor en proyectos más grandes.

No hay deficiencias de UML

Pero enumeraré los elementos que son deficiencias sobre el uso de UML en la práctica.

  1. El diseño requiere 3 cosas, Herramienta, Metodología e Integridad del conjunto de habilidades de personas.
  1. He visto equipos y proyectos que no tiene idea sobre metodología y UML,
  2. He conocido personas que no tienen suficientes habilidades para el diseño UML, pero lo estoy haciendo
  3. También presencié algunos equipos que lo practican con herramientas insuficientes.
  • Los gerentes de proyecto tienen una reputación errónea acerca de UML, tal vez se debe a las malas prácticas de UML
  • En la industria del software, la buena aplicación de OOAD usando UML no se promueve tanto como debería.
  • Las mejores prácticas no se siguen lo suficiente
  • Hay demasiadas y débiles herramientas en la práctica,
  • Atentamente