Desventajas de UML

Unified Modeling Language (UML) es un lenguaje de modelado de software con énfasis en gráficos y movimiento. Es el estándar de la industria para modelado y diseño, según Sparx Systems. Sin embargo, algunos desarrolladores y empresas pueden tener inconvenientes al usarlo. Desventajas: añade tareas al alcance del proyecto y depender demasiado de los diagramas UML.

Tiempo

Una desventaja es el tiempo que lleva gestionar y mantener los diagramas UML. Para funcionar bien, deben sincronizarse con el código, lo que requiere tiempo de configuración y mantenimiento, añadiendo trabajo al proyecto. Pequeñas empresas y desarrolladores independientes pueden no asumir esa carga extra.

No está claro quién se beneficia

No siempre es evidente quién se beneficia de un diagrama UML. Según un artículo de Eiffel Software, UML no beneficia a los desarrolladores, porque trabajan con código, no con dibujos. Los diagramas pueden servir a gerentes o directivos para ilustrar cómo funcionará una herramienta, pero puede ser más fácil dibujarlos en una pizarra o papel que aprender UML.

Los diagramas pueden resultar abrumadores

Al crear un diagrama UML junto al desarrollo, puede volverse abrumador o sobrecomplicado, confundiendo y frustrando a los desarrolladores. No se pueden mapear todos los escenarios; si se intenta, el diagrama se ensucia. Una solución es incluir solo hechos básicos y información de alto nivel (Stefano Borini, Stack Overflow).

Demasiado énfasis en el diseño

UML pone mucho énfasis en el diseño, lo que puede ser problemático. Mirar el alcance del software en un diagrama UML puede llevar a los interesados a sobreanalizar problemas y perder foco dedicando demasiado tiempo a características. No todos los problemas se resuelven con un diagrama; eventualmente hay que programar y probar. Brody Gooch, co-creador de UML, dijo que la visión original era un «lenguaje gráfico para ayudar a razonar sobre el diseño de un sistema a medida que se desarrolla». Si la gente se atasca usando diagramas para identificar y resolver issues, retrasa el trabajo real.