stringtranslate.com

Diagrama de Nassi-Shneiderman

Ejemplo de un diagrama de Nassi-Shneiderman

Un diagrama de Nassi-Shneiderman (NSD) en programación informática es una representación gráfica de diseño para programación estructurada . [1] Este tipo de diagrama fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman , ambos estudiantes de posgrado en la Universidad de Stony Brook . [2] Estos diagramas también se denominan estructogramas , [3] ya que muestran las estructuras de un programa.

Descripción general

Siguiendo un diseño de arriba hacia abajo , el problema en cuestión se reduce a subproblemas cada vez más pequeños, hasta que solo quedan enunciados simples y construcciones de flujo de control . Los diagramas de Nassi-Shneiderman reflejan esta descomposición de arriba hacia abajo de una manera sencilla, utilizando cajas anidadas para representar subproblemas. En consonancia con la filosofía de la programación estructurada, los diagramas de Nassi-Shneiderman no tienen representación para una instrucción GOTO .

Los diagramas de Nassi-Shneiderman se utilizan muy pocas veces en la programación formal. Su nivel de abstracción es cercano al del código de un programa estructurado y las modificaciones requieren volver a dibujar todo el diagrama, pero los editores gráficos eliminaron esa limitación. Estos diagramas aclaran los algoritmos y los diseños de alto nivel, lo que los hace útiles en la enseñanza. Se incluyeron en Microsoft Visio y en docenas de otras herramientas de software, como el alemán EasyCODE. [4]

En Alemania, los diagramas de Nassi-Shneiderman se estandarizaron en 1985 como DIN 66261. [5] Todavía se utilizan en las introducciones alemanas a la programación, por ejemplo, la introducción a C de Böttcher y Kneißl, [6] la introducción a C de Baeumle-Courth y Schmidt [7] y la introducción a C# de Kirch. [8]

Los diagramas de Nassi-Shneiderman también se pueden utilizar en la redacción técnica . [9]

Diagramas

Bloques de proceso: el bloque de proceso representa el paso más simple y no requiere análisis. Cuando se encuentra un bloque de proceso, se realiza la acción dentro del bloque y se pasa al siguiente bloque.

Bloques de proceso

Bloques de ramificación: existen dos tipos de bloques de ramificación. El primero es el bloque de ramificación simple Verdadero/Falso o Sí/No, que ofrece al programa dos caminos a seguir dependiendo de si se ha cumplido o no una condición. Estos bloques se pueden utilizar como un procedimiento de bucle que impide que el programa continúe hasta que se cumpla una condición.

Bloques de ramificación verdaderos/falsos

El segundo tipo de bloque de ramificación es un bloque de ramificación múltiple. Este bloque se utiliza cuando se necesita un caso de selección en un programa. El bloque suele contener una pregunta o un caso de selección. El bloque proporciona al programa una serie de opciones y suele utilizarse junto con bloques de subprocesos para ahorrar espacio.

Bloques de ramificación múltiples

Bucles de prueba: este bloque permite que el programa ejecute en bucle uno o varios procesos hasta que se cumpla una condición determinada. Los bloques de proceso cubiertos por cada bucle son subconjuntos con una barra lateral que se extiende desde la condición.

Existen dos tipos principales de bucles de prueba: los bloques de prueba primero y de prueba último. La única diferencia entre ambos es el orden en el que se completan los pasos involucrados. En la situación de prueba primero, cuando el programa encuentra el bloque, prueba si se cumple la condición y, si no es así, completa los bloques de proceso y luego vuelve al bucle anterior. La prueba se realiza nuevamente y, si la condición aún no se cumple, se procesa nuevamente. Si en cualquier etapa se cumple la condición, el programa omite los bloques de proceso y continúa con el siguiente bloque.

Probar el primer bloque de bucle

El último bloque de prueba simplemente se invierte, los bloques de proceso se completan antes de que se realice la prueba. El último bucle de prueba permite que los bloques de proceso se realicen al menos una vez antes de la primera prueba.

Probar el último bloque de bucle

La ejecución paralela se puede dibujar así:

procesamiento paralelo

Véase también

Publicaciones

Referencias

  1. ^ Hans-Georg Fill (2009). Visualización para sistemas de información semántica . p.32
  2. ^ Breve historia de los diagramas de flujo estructurados (Diagramas de Nassi-Shneiderman) . Borrador de Webdoc: 27 de mayo de 2003. (Fuente)
  3. ^ Rolf Isermann (1988). Control automático: artículos seleccionados del congreso mundial trienal de la Federación Internacional de Control Automático: Múnich, República Federal de Alemania, 27-31 de julio de 1987, volumen 10; volumen 14 , pág. 89
  4. ^ "Implementación con diagramas de estructura". EASYCODE GmbH . Consultado el 7 de febrero de 2023 .
  5. ^ Instituto Alemán de Normas e. V. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman.
  6. ^ Böttcher, Axel; Kneißl, Franz: Informatik für Ingenieure: Grundlagen und Programmierung in C. 3ra edición. Múnich: Oldenbourg, 2012. ISBN 978-3-486-70527-0 . Véase especialmente el Capítulo 10: "Kontrollstrukturen" (flujo de control). 
  7. ^ Baeumle-Courth, Peter; Schmidt, Torsten: Praktische Einführung en C . Múnich: Oldenbourg, 2012. ISBN 978-3-486-70799-1 . Véase especialmente el Capítulo 6: "Kontrollstrukturen" (flujo de control). 
  8. ^ Kirch, Ulla: C# lernen und professional anwenden . Heidelberg: mitp, 2009. ISBN 978-3-8266-5915-7 . Véase especialmente el Capítulo 5: "Schleifen und Verzweigungen" (bucles y ramas). 
  9. ^ Weiss, Edmond H.: "Visualización de un procedimiento con diagramas de Nassi-Schneiderman", Journal of Technical Writing and Communication , Vol. 20, Nr. 3 (1990): 237-54.

Enlaces externos