No conozco a ningún ingeniero de software que use UML. Tal vez algunos de mis compañeros de equipo lo hagan, en raras ocasiones o en privado.
Diseñar software de esta manera puede agregar mucho esfuerzo de diseño inicial. Realmente no tienes suficiente información para tomar esas decisiones por adelantado, entonces, ¿cuál es el punto de entrar en tantos detalles que esquematizan algo que va a cambiar con frecuencia?
UML también desalienta la refactorización a gran escala. ¿Algún voluntario para mantener los diagramas actualizados?
Los diagramas de generación automática son prácticamente inútiles. Es demasiada información, y rara vez necesita pensar en algo más que un modelo simplificado de una porción de la aplicación.
- Tengo una MacBook Air y recientemente compré un iPhone 6. ¿Cuáles son las diferentes formas en que puedo integrar estos dos productos de Apple? ¿Qué aplicaciones y juegos son aptos para usar?
- Si veo a un artista copiando a otro artista, ¿debo informarle a uno de ellos?
- Tengo muchos intereses ¿Debo seguir una carrera en consultoría financiera o de gestión?
- ¿Por qué me da miedo ver a la policía cuando no he hecho nada ilegal?
- Mi Yamaha QT50 alcanza su punto máximo a 25 mph, aunque sé que alcanzarán hasta 35 mph para la mayoría de las personas. ¿Que puedo hacer?
Me gusta dibujar cuadros con flechas que los conectan para ayudarme a visualizar partes de la aplicación. Esto no es UML, ni siquiera cerca. Apenas es un boceto de servilleta.
Aquí hay una publicación de blog que escribí describiendo un enfoque que me gusta tomar para dibujar diagramas de código: Comprensión del código mediante el dibujo de gráficos de llamadas por Ryan Cook en publicaciones