¿En qué circunstancias los diagramas de flujo siguen siendo una herramienta valiosa y útil?

13

Cuando comencé a programar por primera vez, confiaba mucho en los diagramas de flujo (y en los gráficos de espaciado de la impresora). Mientras estaba en la clase COBOL, no podía comenzar a escribir ningún código hasta que el instructor firmó mi diagrama de flujo. En ese entonces, tuve que hacer un diagrama de flujo para todo.

Hoy, veinticinco años más tarde, me encuentro con un diagrama de flujo de dos tipos de cosas. Algoritmos muy específicos donde la lógica es complicada o conceptos muy generales para garantizar que todos los grandes pasos estén definidos y en el orden correcto.

¿Hay otros casos de uso para diagramas de flujo que simplemente he pasado por alto?

    
pregunta Michael Riley - AKA Gunny 10.09.2011 - 03:07

8 respuestas

17

Absolutamente.

Siempre que estoy implementando algo que no he hecho antes (y el algoritmo toma más de unos pocos pasos), lo graficaré. Encuentro que realmente me obliga a analizar la solución completa a un nivel más atómico y más exhaustivamente que si no se hubiera trazado. Encuentro que hay tres beneficios principales para esta práctica:

  • Menos "oh craps" porque he pensado en todo el algoritmo a través de
  • elimina cualquier posible problema en los problemas que puedan surgir en el resto del sistema
  • Me permite guiar fácilmente a otra persona a través del algoritmo

Las dos ocasiones diferentes en las que realmente uso estas son:

  • Algoritmos de nivel bajo (ish). Me refiero a una solución muy específica a un problema muy específico. Generalmente los pasaré por pares antes de la implementación.
  • flujo de usuario. No solo puedo usar esto para pasar por un par, sino que también lo usaré para explicar (de una manera muy no técnica) el flujo a un experto en usabilidad.

Habiendo dicho todo eso, no produzco diagramas de flujo a diario (e incluso cuando están listos, generalmente es una sesión de pizarra a menos que esté escribiendo un documento de diseño técnico).     

respondido por el Demian Brecht 10.09.2011 - 03:19
11

Nunca

Los diagramas de flujo, especialmente como se practicaron hace más de 25 años, han sido reemplazados por técnicas de diagramación mucho más expresivas (c.f. Diagramas de acción, Tablas de secuencia, Tablas de estado, etc.).

Los propios estudios de IBM mostraron que el uso de diagramas de flujo no tuvo ningún efecto en la calidad del diseño o la implementación de un sistema (aunque fueron marginalmente útiles para comunicarse con los usuarios y otros desarrolladores) [referencia precisa no disponible, pero fue citado en James Martin Técnicas de diagramación para analistas y programadores ].

    
respondido por el Steven A. Lowe 10.09.2011 - 05:20
6

No he dibujado un diagrama de flujo clásico desde mi primera clase de programación en 1976, y no he visto a nadie más crear uno desde principios de los 80. Los diagramas de flujo fueron útiles para comunicar la lógica del programa cuando el código estaba en lenguaje ensamblador. A finales de la década de 1960, los programadores de lenguaje ensamblador utilizaban un pseudo-código. Al programar en lenguajes OO modernos, ni los diagramas de flujo ni el pseudocódigo tienen ningún valor. También puede escribir código de alto nivel en el lenguaje de implementación.

De vez en cuando dibujo diagramas UML, principalmente en papel, para expresar ideas de diseño, pero esos diagramas solo se mantienen hasta el final de la discusión. También dibujo diagramas de transición de estado de vez en cuando, luego los convierto a una tabla de estado en el lenguaje de implementación.

    
respondido por el kevin cline 10.09.2011 - 05:39
5

Uso diagramas de flujo todo el tiempo por varias razones:

  1. En mi opinión, son mejores que los diagramas de casos de uso UML. Pueden reflejar una serie de diferentes casos de uso y cómo interactúan, y hacen un mejor trabajo en general al reunir la experiencia y las decisiones del usuario.

  2. Son más fáciles de entender y más intuitivos. Tu mente, naturalmente, sigue las flechas como un laberinto de principio a fin. Puede usar diagramas de flujo para finalizar y hacer referencia a otro diagrama de flujo para una historia de usuario diferente. Por lo general, puedo imprimirlos en un libro de páginas numeradas y voltear las páginas rápidamente para navegar al siguiente diagrama de flujo.

  3. Son universales. Pocas personas fuera de la ingeniería de software conocen y entienden los diagramas UML, donde los diagramas de Diagrama de flujo son mucho más reconocibles por los usuarios y los analistas de negocios. Intento comunicar casos de uso complejos a un cliente y, a veces, les resulta difícil comprenderlos, les dibujo un diagrama de flujo y entienden por qué finalmente entienden todos los matices que lo hacen MUCHO MÁS complejo de lo que pensaban.

respondido por el maple_shaft 10.09.2011 - 05:08
3

Los diagramas de flujo son útiles cuando hay que hacer las cosas en un orden específico. Lo que realmente brillan en mi mente es mostrar dónde se toman las decisiones y asegurarse de que cada decisión posible tenga un camino. Esto evita la creación de programas donde se requiere la aprobación de un mamager, pero no hay manera de lidiar con eso si el gerente (quien aprueba el 98% del tiempo) dice que no. Nos recuerdan que el camino más común no es el único. Los encuentro útiles para hablar con los usuarios sobre los requisitos porque a menudo solo te dirán la ruta más común.

    
respondido por el HLGEM 10.09.2011 - 18:28
1

Los diagramas de flujo pueden ser útiles para la ingeniería inversa de código muy mal estructurado. Particularmente si tiene gotos. Afortunadamente, no he visto mucho código goto-riddden recientemente.

Como otros usuarios destacan por comunicarse con los usuarios finales. Ordeno la puesta en marcha de un transmisor de TV documentado por diagrama de flujo. La gente de hardware y software tenía una especificación común para trabajar.

    
respondido por el Nick Keighley 13.10.2016 - 12:58
0

El diagrama de actividades y el diagrama de flujo de UML son útiles para mostrar la complejidad baja a media de un proceso o algoritmo.

Son muy buenos cuando se comunican con los usuarios empresariales sobre las reglas comerciales.

Existe una variación en la forma de BPMN 2.0 que es muy útil en Business Process Modeling.

Algunas herramientas BPMN pueden generar aplicaciones web en ejecución a partir de gráficos.

Entonces, sí, los diagramas de flujo aún tienen un lugar, pero deben usarse con prudencia.

    
respondido por el NoChance 10.09.2011 - 08:49
-2

No soy un programador. Soy un técnico de ingeniería de hardware.

Para mí, tiene sentido comenzar al menos con comentarios que expliquen los bloques lógicos que se utilizarán. Después de eso, pulsa el esqueleto del programa con el código real. Es similar a comenzar un guión de película con un tablero de cuentos y luego completar los detalles de la acción y el diálogo después.

¿No debería planearse cuidadosamente cualquier esfuerzo que valga la pena? En el ámbito del hardware, comenzamos con un documento de requisitos del cliente, luego escribimos un documento de especificación de hardware, luego completamos el esquema, dibujamos un diseño de la placa y luego presentamos la documentación de ensamblaje. No solo empezamos a agarrar piezas y soldarlas juntas a medida que surgen ideas para hacer el producto final.

No veo cuán eficiente puede escribirse el código en un programa de 15 KB o 15 MB sin mucho trabajo de preparación antes de comenzar la codificación real.

    
respondido por el mobileHman 13.10.2016 - 07:24

Lea otras preguntas en las etiquetas