2011-08-16 16 views
35

¿Cuál es la diferencia práctica entre el uso de diagramas de flujo y los diagramas de actividad UML? Tengo algunas ideas, pero tal vez me falta un elefante en la habitación?Diagramas de flujo en comparación con diagramas de actividad UML

diagrama Diagrama de flujo:

  1. ampliamente utilizado;
  2. Fácil de entender por los no programadores;
  3. ¿Viejo?

diagrama UML Actividad:

  1. estandarizado;
  2. Admite concurrencia;
  3. Sintaxis menos conocida, pero aún bastante simple.

Para mi caso de documentación ad-hoc de un bloque particular de lógica de aplicación, decidí seguir los diagramas de flujograma. Más personas en la compañía podrán entenderlos.

Respuesta

16

Puede parecer una preferencia, pero si tenemos un lenguaje estandarizado para describir sistemas de software, ¿por qué utilizamos algo más? Esto puede llevar a la mala costumbre de sobreutilizar diagramas de flujo. Diagramas de actividad son realmente simples. Pero si decide describir un aspecto más complicado del sistema o intenta cambiar la parte que está describiendo, es posible que tenga que cambiar de todos modos. Así que solo use UML y evite confusiones en el futuro.

14

Como observa, los diagramas de actividad inherentemente pueden incluir concurrencia y tiempo. Si nos fijamos en this example cifrado de Wikipedia (que insertaría si SO SO fuera el formato SVG) puede observar la sección con dos pesadas barras horizontales, y dos actividades paralelas de "idea presente" y "idea de registro". Esto se lee como "iniciar estas actividades en paralelo, y continuar solo cuando ambas estén completas". Los diagramas de flujo no pueden expresar esto dentro de la notación.

Prácticamente, el uso de diagramas de actividad le permite pensar con claridad sobre procesos simultáneos. Creo que encontrará que cualquiera que pueda leer un diagrama de flujo se adaptará rápidamente.

+1

Gracias, Charlie, también mencioné ese punto en la publicación original. En mi caso, la lógica es de un solo subproceso, por lo que cabe tanto el diagrama de flujo como el diagrama de actividad. –

1

Puede generar código fuente desde UML, y viceversa; de ahí la característica "estandarizada" de la que hablaste.

+0

Creo que esto se aplica más a los diagramas de clase. También tengo que encontrar un generador de ida y vuelta decente, que pueda reconstruir el diagrama cuando el código haya cambiado. –

+0

@Vladimir Sinenko: si puede generar código implementando la lógica de los modelos de actividad, no intente buscar la ronda, simplemente cambie el modelo de actividad, evitará muchos problemas –

1

UML en sí mismo se utiliza para compartir su comprensión. Comparte el entendimiento de una manera estandarizada. Como su caso es ad hoc y el uso principal de un diagrama UML es proporcionar un boceto informal, el diagrama de actividad se puede usar aquí. Pero también pueden hacerlo los diagramas de flujo ya que aquí no hay paréntesis. Siempre he encontrado el siguiente argumento para ser útil. ¿El arte que estoy produciendo beneficiará a quién? Y puedo expresar el flujo de una manera auto explicativa usando un diagrama de flujo. Y si es así, entonces debe seguir y usar el diagrama de flujo. Pero si sus diagramas de clase, secuencia, etc. están en formato UML, tendría sentido tener sus diagramas de actividad en UML también por coherencia (el argumento aquí sería, si la gente puede entender clase, secuenciar semántica UML, entonces y no actividad diagramas).

9

Según el sitio Agile Modeling:

En muchas formas diagramas de actividad UML son el equivalente orientado a objetos de diagramas de flujo y diagramas de flujo de datos (DFDs) de desarrollo estructurado.

De IBM:

Sin embargo, diagramas de flujo no incluyen y estados, y las cartas para las operaciones no pueden recibir eventos de flujo.

Probablemente es por eso que los diagramas de flujo son más fáciles de entender porque los diagramas de actividad tienen la noción de desarrollo y concurrencia orientados a objetos.

Cuestiones relacionadas