Enseño ingeniería de software a nivel de pregrado y tengo una pregunta para los profesionales de UML.
La mayoría de los libros de texto de ingeniería de software hacen un gran esfuerzo para cubrir los diagramas UML. Pero, por otro lado, escuché de muchos graduados que UML ya no parece usarse en las trincheras.
¿Qué diagramas UML todavía se usan ampliamente en la práctica profesional y por qué? ¿Hay diagramas que ya no se usan y por qué?
NB: para evitar debates y debates basados en opiniones, ilustre su respuesta con elementos objetivos y objetivos (si es posible, verificables) u observaciones neutrales sobre la experiencia personal
Respuestas:
De los muchos diagramas propuestos por UML, los diagramas de clase y los diagramas de secuencia todavía se usan ampliamente, ciertamente seguidos de diagramas de estado:
Creo que los casos de uso en la vida real se usan de manera más ocasional. En grandes proyectos, con varios cientos de casos de uso, los diagramas son dolorosos de dibujar y proporcionan pocos beneficios sobre una forma tabular. BPMN para diseño de procesos, mapeo de historias de usuario o descomposición tabular de eventos en un estilo Cockburn son mucho más utilizados. Por qué ? Porque se comparten más fácilmente con los usuarios de negocios para resolver de manera eficiente los requisitos.
Estoy seguro de que son lugares donde UML todavía se usa de manera sistemática y en gran medida. No me imagino que el software aeroespacial o los sistemas de control de centrales nucleares se produzcan sin el conjunto completo de documentación UML. Pero creo que es más la excepción que la regla.
Me siento confirmado en esta declaración cuando busco en las librerías. Hace un par de años, puedes encontrar muchos libros en UML 2.0. Hoy en día, si está buscando UML 2.5, la elección es bastante restringida. Peor aún: muchos autores ni siquiera hacen el esfuerzo de revisar sus antiguos libros para mantenerlos actualizados (por ejemplo: la agradable introducción " UML destilada " de Fowler que todavía data de 2003 con UML 2.0 y lo mismo para los Elementos de Ambler de estilo UML 2.0 "!).
No creo que cambie esta tendencia decreciente, considerando la generalización de ágil y su promoción de "Software de trabajo sobre documentación completa".
Al final, afirmaría muy provocativamente que los métodos de modelado parecen seguir un esquema darwinista: solo sobrevivirá la técnica de diagramación más adecuada, las que proporcionan una clara ventaja sobre los enfoques informales (por ejemplo, la ilustración de la servilleta) y el código detallado (por ejemplo, ¿Por qué dibujar un diagrama de actividad A1, cuando el código correspondiente podría caber en una hoja A4?) ;-)
fuente
Todos se usan en la práctica. Pero no todos los usan. Algunas personas evitan el diseño por completo y pasan directamente a la codificación. No se puede confiar en la evidencia anecdótica para saber qué hace "todos".
Las herramientas como UML funcionan mejor si las usas cuando agregan valor ; p.ej
Crearlos solo por hacerlos (o porque el proceso dice que debes hacerlo) no es productivo. La mejor práctica es ser selectivo en lo que diagrama y qué tipos utiliza. Use UML cuando y donde ayude ... y eso incluye ser selectivo de los tipos de diagramas UML que usa.
Además ... UML fue diseñado principalmente como una herramienta de diseño. No es tan efectivo (en estos días) como una herramienta de documentación. Los IDE típicos le ayudan a visualizar muchos aspectos si se estructura una base de código sobre la marcha. Esto es a menudo mejor que confiar en diagramas UML que pueden haber quedado desactualizados / inexactos.
fuente
UML todavía se usa en las trincheras. Pero, como siempre, la gente usa un subconjunto. Qué subconjunto está sujeto a los problemas en cuestión.
UML viene en muchas versiones. Pero, como siempre, la gente usa sus símbolos de manera informal e inconstante.
UML es cómo entendemos gran parte de los libros de patrones que existen. También es una de las formas en que nos comunicamos en la pizarra. No se ha ido Pero nunca se usará tan formalmente como el código.
En lugar de producir estudiantes que puedan corregir cualquier diagrama UML para cumplir con la versión 2.5 de UML , o lo que sea más reciente, produzcan estudiantes que puedan entender lo que el diagrama está tratando de comunicar, incluso si no es totalmente consistente con una versión UML particular porque es cómo se usa UML en las trincheras. Viene en dialectos locales extraños, mezclados con otros sistemas, y algunas veces inventamos nuestros propios símbolos.
Enséñeles que está bien preguntar qué significan las cosas. No les enseñe a corregir a otros que están rompiendo algunas reglas imaginarias. Solo estamos tratando de comunicarnos aquí.
El mejor uso que he visto en uml es dejar que un nuevo programador nos muestre su plan para resolver un problema. Rápidamente nos mostró las partes del sistema que habían descuidado o que no sabían que existían.
También he trabajado en lugares que requieren UML incluso cuando no son necesarios. Siempre usamos el mismo patrón, así que fue solo una formalidad. Llegamos al punto en el que acabamos de comprar nuevos nombres en diagramas antiguos. No aliente este tipo de uso.
Pero creo que todos sabemos que hay una diferencia entre la punta de flecha normal y la punta de flecha abierta. ¿Derecho?
fuente
Voy a ser específico de acuerdo con mi experiencia: - Diagrama de implementación - Diagrama de secuencia - Diagrama de clases Los tres son los más utilizados en cualquier proyecto, proporcionan un valor de comunicación real con el equipo en diferentes niveles.
fuente