Diagrama de flujo y llamadas a métodos

11

Estoy haciendo algunos diagramas de flujo y me pregunto si me estoy acercando a esto correctamente. En esencia, tengo varias llamadas a métodos y estoy organizando cada una por separado. Sin embargo, varios de estos métodos hacen que un método solicite información y luego continúe. Ver este ejemplo:

ingrese la descripción de la imagen aquí

Tengo otros 3 métodos que también llaman a GetQueue () y me pregunto si estoy representando esto correctamente. El flujo AddQueue () visualmente parece que está roto.

NOTA: Cambios realizados en mi diagrama de flujo:

ingrese la descripción de la imagen aquí

Keith Barrows
fuente
¿Es realmente necesario este nivel de detalle pictórico? Sé que, en algún momento, los diagramas de flujo como este eran populares, pero parecen haber caído en desgracia hoy en día por muchas razones ... Esencialmente, son una forma redundante de documentación; debe mantenerlos actualizados y, de todos modos, el código ya debe representar adecuadamente lo que se muestra en el diagrama de flujo (es decir, es mejor dedicar más tiempo a producir más código).
Robert Harvey
Me lo pidieron antes de pasar a otro cliente.
Keith Barrows
@Robert Harvey: los diagramas de flujo fueron útiles en los viejos tiempos, cuando la gente escribía el código de máquina o ensamblador directamente. Pueden haber sido útiles para los primeros programadores de FORTRAN y BASIC, que no tenían una buena variedad de estructuras de control. Hoy en día, bueno, la única razón por la que los haría es si un cliente los quería como entregables y estaba dispuesto a pagarme adecuadamente.
David Thornley
Al desarrollarlos desde cero, me ha resultado muy útil usar adhesivos amarillos, girando los 90 grados para tomar decisiones. Esto le permite moverlos e insertar procesos intermedios. Cuando todos estén don, ingréselos en su software.
Michael Riley - AKA Gunny
Todavía uso ocasionalmente diagramas de flujo, aunque creo que las pruebas unitarias suelen ser mejores para el mismo propósito. Sin embargo, no son entregables; Los uso para obtener un flujo de control justo en mi cabeza.
Michael K

Respuestas:

2

Recientemente hice algunos diagramas de flujo y luché con el mismo problema, cómo presentar llamadas de subrutina, o tal vez llamadas a métodos y funciones como podría llamarlas en estos días.

Me decidí por una convención que separaba las LLAMADAS de subrutina de las REFERENCIAS de subrutina. Para el primero, uso un rectángulo ordinario que muestra la llamada con argumentos en curso, usando cualquier variable que esté vigente en ese punto de la ejecución del programa.

Utilizo el rectángulo de "proceso predefinido" de doble cara simplemente como referencia a otro diagrama de flujo que contiene la definición de esa función o subrutina. No es necesario que el rectángulo de la subrutina muestre los argumentos de la subrutina, ya que eso forma parte del diagrama de flujo de definición de la subrutina en cuestión, pero puede ser útil agregarlos en la referencia ya que quien lo lea puede ver el significado de los argumentos reales utilizados en una llamada.

Esto aumenta el número de rectángulos, pero deja en claro que esos otros diagramas de flujo existen para buscar la definición de algunas de las funciones llamadas. A menudo, si una función es simple, no crearé un diagrama separado para ella, sino que simplemente la documentaré verbalmente.

También uso el símbolo de "documento" para decir que los detalles deben buscarse en la lista de códigos.

El objetivo de un diagrama de flujo para mí no es crear un programa, sino facilitar que otros entiendan un programa. Creo que la ayuda a vista de pájaro y su propósito deben tenerse en cuenta. No son para describir visualmente CADA detalle de su programa, los detalles son visibles desde el código cuando sea necesario. El diagrama de flujo es solo una imagen de su programa desde el punto de vista de alto nivel.

Mantener diagramas de flujo de alto nivel también significa que hay menos necesidad de mantenerlos actualizados a medida que se modifica el código.

Son fotos. Al igual que cualquier buena historia, la documentación del software también debe tener imágenes que den un punto de vista alternativo al código.

Panu Logic
fuente