¿Cuáles son las cosas esenciales que uno necesita saber sobre UML?

18

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?

Hanno Fietz
fuente
1
Me gustó más el título antiguo, al menos al principio: "¿Cuál es el 10% más útil de UML?" De lo contrario, buena edición!
Joey Adams
si ya tiene documentación escrita, probablemente ya esté en uml, simplemente no está familiarizado con lo que decidieron llamar a su tipo de documentación
Ryathal el

Respuestas:

4

Me gustaron las preguntas, las mismas que me hice a mí mismo:

¿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?

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.

rodar
fuente
Ese enlace de blog es bueno.
Hanno Fietz
8

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.

Kevin Cline
fuente
1
¡+1 por mencionar este libro, me he olvidado por completo al escribir mi respuesta!
Alexander Galkin
2
¿Puedes profundizar un poco más sobre tus experiencias con el libro?
¿Cuál fue la razón del voto negativo?
Kevin Cline
1
Una de las primeras cosas que hice cuando me convertí en líder del equipo fue comprar copias de este libro para todos en mi equipo. Nos dio a todos un vocabulario común para discutir nuestros diseños. Algunos de los chicos más jóvenes también informaron que les ayudó a comprender mejor los diagramas en los diversos libros de patrones de diseño que leyeron.
TMN
2
@kevincline Normalmente hago un enlace a Amazon porque convertirá el enlace en una URL de referencia para Stack Exchange. Si alguien hace clic y compra desde esa URL, Stack Exchange puede ganar dinero. También se vuelve trivial, con el título, el autor y la información de ISBN de Amazon, encontrar el libro en su vendedor de libros favorito.
Thomas Owens
5

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:

  • Use el diagrama del caso
  • Diagramas de clase
  • Diagrama de actividad
  • Diagrama de secuencia

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.

Ninguna posibilidad
fuente
+1 para diagramas de clase , secuencia y actividad . No me convencen en absoluto los Diagramas de casos de uso, aparte de que son excelentes portadas para informes ya que los usuarios parecen amar las imágenes.
Sjoerd
@Sjoerd, gracias por tu comentario. Como ha especificado correctamente, los usuarios adoran los casos de uso. Además, los diagramas de casos de uso tienen muchos valores. Le permiten identificar a los actores (primarios y secundarios) y le permiten descubrir "casos Cse de nivel C". Su relación con su diagrama de actividad y diagrama de clase es lo que crea una cohesión en su especificación. Recuerde que no reemplazan las reglas comerciales detalladas y la documentación completa de los requisitos.
NoChance
¿Puedes profundizar más sobre tus experiencias con estos recursos? ¿Qué hay de ellos, y no de otros, que te ayudó a entender UML?
@ MarkTrapp, gracias por tu comentario y por las ediciones.
NoChance
2

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:

  1. Le presenta una tabla general de diagramas UML en la primera página.
  2. Esta tabla, además de dar una breve descripción de cada digramm UML2.0, también tiene una columna muy útil "Prioridad de aprendizaje" que puede ayudar a un principiante en UML a identificar los diagramas UML más utilizados.
  3. Aunque también contiene diagramas renderizados a máquina, la mayoría de los diagramas parecen dibujados a mano (probablemente estén dibujados a mano). Lo tomo como una señal de que el modelado aún se puede hacer usando solo su lápiz y papel, no es necesario profundizar en el software de visualización UML desde el principio.
Alexander Galkin
fuente
¿Puedes profundizar más sobre tus experiencias con estas recomendaciones? ¿Qué hay de ellos, y no de otros, que te ayudó a entender UML?
1

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

Michael Borgwardt
fuente
¿Puedes profundizar más sobre tus experiencias con este libro? ¿Qué hay de eso, y no otros libros, te ayudaron a entender UML?
@ Mark Trapp: principalmente el hecho de que es pequeño, por lo que puede recoger rápidamente todos los elementos esenciales sin perderse en detalles y casos especiales.
Michael Borgwardt
0

Hay tres partes en esto:

  1. 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.

  2. 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.

  3. 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.

Derekerdmann
fuente
0

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 :)

UML_GURU
fuente