Quiero que mis garabatos del diseño y el comportamiento de un programa se simplifiquen y tengan un lenguaje común con otros desarrolladores.
Miré a UML y, en principio , parece ser lo que estoy buscando, pero parece ser excesivo. La información que encontré en línea también parece muy hinchada y académica.
¿Cómo puedo entender UML en inglés simple, lo suficiente como para poder explicárselo a mis colegas? ¿Cuáles son los recursos canónicos para comprender UML a nivel del suelo?
Respuestas:
Me gustaron las preguntas, las mismas que me hice a mí mismo:
Esto es lo que he encontrado:
Para empezar: mi elección sería UML Destilado de Fowler . Realmente es una destilación de los conceptos básicos, como se ha mencionado: definiciones, ejemplos, consejos sobre cuándo un determinado tipo de diagrama debe o no usarse. También es una buena referencia , si desea centrarse en una determinada parte de UML sin leer el libro de principio a fin.
Para una introducción más detallada, pero en inglés simple: UML 2 para Dummies lo ha hecho para mis colegas y para mí. No solo presenta UML, su sintaxis y usos extensos, sino que tiene muchos consejos sobre buenas prácticas de programación y diseño.
Hay diferencias ocasionales entre los dos libros sobre qué sintaxis pertenece a qué versión del estándar UML. Sin embargo, estos son mínimos y definitivamente no son esenciales para usar diagramas UML para comunicar ideas de diseño. (Por ejemplo: si UML 2 permite multiplicidades discretas, es decir, muestra que una determinada propiedad puede tener exactamente objetos X, Y o Z, en lugar de solo cero, uno, muchos o más que X, por ejemplo; cuando los nombres de los participantes deben estar subrayados. ..)
Para una introducción totalmente no académica y menos prolija: este blog tiene artículos sobre varios fragmentos de UML: http://blog.diadraw.com/category/uml/
No es un libro de texto, por lo que está lejos de ser exhaustivo, sino que también utiliza historias y ejemplos que no son de libros de texto, que pueden relacionarse. Las pocas publicaciones disponibles se centran en la introducción visual de conceptos UML, por lo que puede omitir la lectura del texto por completo.
fuente
Realmente me gustó el destilado UML de Martin Fowler . Corto y dulce, y más que adecuado para discusiones en pizarra. Obtenga un par de copias y páselos al equipo.
fuente
Los diagramas solos no siempre son útiles. Por ejemplo, el diagrama de casos de uso no puede transmitir reglas de negocios en detalle. El diagrama de clase puede ser muy útil ya que puede generar código de clase y archivos DLL a partir de él.
Encuentro estos diagramas los más útiles:
Hay tantos recursos útiles, pero verifique estos:
Edit-1 en respuesta al comentario de Mark.
Si bien no uso estos recursos día a día, sirven como referencia rápida para la sintaxis de UML. Los recursos anteriores se eligen ya que proporcionan una representación rápida y algo completa de los diagramas UML. Muestra diagramas comunes y ayuda al nuevo usuario de UML a ver rápidamente la diferencia entre ellos. El primer recurso, el video, brinda detalles sobre el caso de uso y cómo se relaciona con otros diagramas. No se espera que los recursos anteriores sean suficientes para cualquier persona que quiera aprender UML u OOD, me doy cuenta de que aprender tales temas no estaba previsto en la pregunta original.
fuente
Si está satisfecho con solo el 10% , entonces no debe intentar aprenderlo del libro UML. Más bien, es mejor que lea un buen libro sobre análisis orientado a objetos o patrones de diseño : estos libros le proporcionan el 10% que está buscando.
Sin embargo, si está buscando un tutorial para UML, recomendaría esta página web , y especialmente este ensayo sobre diagramas UML (no es un anuncio, personalmente no tengo ninguna relación con este sitio). Simplemente navegue a través de los diagramas y mírelos: en su mayoría se explican por sí mismos y puede comprender fácilmente lo que están representando siempre que conozca OOP y, en general, el diseño y la arquitectura del programa.
¿Por qué recomendaría exactamente esta página? (preguntado en el comentario)
Hay varias razones por las que me gustó más que las otras:
fuente
La referencia de bolsillo UML 2.0 de O'Reilly es un poco más detallada que eso, pero probablemente sea la mejor opción, ya que es lo suficientemente pequeña como para encontrar rápidamente lo que necesita, pero aún tiene explicaciones cuando las necesita. Y está actualizado, que no es el caso de las "hojas de trucos UML" o las tarjetas de referencia que he encontrado en la web, que en su mayoría describen UML 1.x
fuente
Hay tres partes en esto:
Obtenga una referencia UML formal
Cada vez que esté aprendiendo un nuevo "idioma", obtenga una referencia que pueda extraer y usar en cualquier momento, ya sea un libro o un recurso en línea. UML Distilled es pequeño, tiene excelentes explicaciones y muchos diagramas claros. Incluso si no utiliza todas las funciones, siempre puede regresar y mirar la forma "correcta" de expresar algo.
Usa UML para modelar cosas
Ahora que tiene una referencia, comience a usarla para modelar algunos sistemas pequeños existentes o sistemas que está comenzando a usar. Probablemente querrá seguir con Diagramas de clase, Diagramas de secuencia y Diagramas de estado para la mayoría de las situaciones. Si hay algo de lo que no está seguro, vaya a su referencia y busque el uso "correcto"; si eso no ayuda, intente buscar en Google o pregunte sobre Desbordamiento de pila. Al igual que la programación, la práctica es clave.
Usa algunos UML en proyectos reales
Cuando comience a usar UML con su equipo, recuerde que es solo una herramienta para comprender el sistema que creó o construirá. Aún debe verificar su referencia mientras hace un diagrama, pero enfóquese en transmitir la información, no siguiendo estrictamente las reglas.
Piensa en tus clases de escritura en la escuela secundaria. Su maestro probablemente consideró un pecado capital comenzar las oraciones con "y", "pero" o "o". A medida que escribía más y ganaba más control sobre el idioma inglés, aprendió a doblar las reglas para obtener un mayor efecto: hizo la transición de seguir el enfoque adecuado al que transmitía lo que quería decir mejor. UML debe usarse en la industria exactamente de la misma manera.
fuente
Diría que si conoce UML, todos los diagramas le ofrecen diferentes vistas de su aplicación. Muchos libros están disponibles.
Si no conoce UML, lo más fácil es crear solo diagramas de clase / secuencia que se hayan invertido a partir del código existente. Solo necesita invertir el código existente en UML y agregar sus propias notas dentro de los diagramas de clase / secuencia. Los diagramas de clase darán una vista estática de su aplicación, el diagrama de secuencia describirá los flujos de métodos y, por lo tanto, el comportamiento de la aplicación. Trabajo UML hecho y sin error :)
fuente