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.
- ¿Alguien podría nombrar a dos (después de 1970) importantes ingenieros de software (y sus contribuciones) que no recibieron una educación formal en informática?
- ¿Por qué la mayoría de los estudiantes de ciencias de la computación en la India se centran más en los marcos de aprendizaje y los lenguajes de programación en lugar de perfeccionar sus habilidades de resolución de problemas (es decir, estructuras de datos y algoritmos)?
- ¿El concepto de "ingeniero de pila completa" va en contra de la cultura / mentalidad de DevOps?
- ¿Cuáles fueron los libros que leyó en su camino de aprendizaje para convertirse en un buen ingeniero de software?
- ¿Es la ingeniería de software un trabajo a prueba de futuro, o debería estudiar algo más?
Sin embargo, esto no quita la complejidad de las herramientas, la notación y el metamodelo y la brecha de conocimiento.