stringtranslate.com

Diagrama de Nassi-Sneiderman

Ejemplo de diagrama de Nassi-Sneiderman

Un diagrama de Nassi-Shneiderman (NSD) en programación de computadoras es una representación de diseño gráfico 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 Stony Brook . [2] Estos diagramas también se denominan estructuragramas , [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 sólo quedan declaraciones simples y construcciones de flujo de control . Los diagramas de Nassi-Shneiderman reflejan esta descomposición de arriba hacia abajo de manera sencilla, utilizando cuadros anidados para representar subproblemas. De acuerdo con la filosofía de la programación estructurada, los diagramas de Nassi-Sneiderman no tienen representación para una declaración GOTO .

Los diagramas de Nassi-Sneiderman rara vez se utilizan para programación formal. Su nivel de abstracción se acerca al código de programa estructurado y las modificaciones requieren volver a dibujar todo el diagrama, pero los editores gráficos eliminaron esa limitación. Aclaran algoritmos y diseños de alto nivel, lo que los hace útiles en la enseñanza. Estaban incluidos 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 de Böttcher y Kneißl a C, [6] la introducción de Baeumle-Courth y Schmidt a C [7 ] y la introducción de Kirch a C#. [8]

Los diagramas de Nassi-Sneiderman también se pueden utilizar en 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 pasamos al siguiente bloque.

Bloques de proceso

Bloques de ramificación: existen dos tipos de bloques de ramificación. El primero es el bloque de bifurcació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 Verdadero/Falso

El segundo tipo de bloque de bifurcación es un bloque de bifurcación múltiple. Este bloque se utiliza cuando se necesita un caso seleccionado en un programa. El bloque suele contener una pregunta o un caso seleccionado. El bloque proporciona al programa una variedad de opciones y, a menudo, se usa junto con bloques de subprocesos para ahorrar espacio.

Múltiples bloques de ramificación

Bucles de prueba: este bloque permite que el programa realice un bucle en uno o un conjunto de procesos hasta que se cumpla una condición particular. Los bloques de proceso cubiertos por cada bucle están subconjuntos con una barra lateral que se extiende desde la condición.

Hay dos tipos principales de bucles de prueba: el primer bloque de prueba y el último bloque de prueba. La única diferencia entre los dos es el orden en que se completan los pasos involucrados. En la primera situación de prueba, cuando el programa encuentra el bloque, prueba para ver si se cumple la condición, luego, si no, completa los bloques de proceso y luego retrocede. Se vuelve a realizar la prueba y, si aún no se cumple la condición, se vuelve a procesar. Si en algún momento se cumple la condición, el programa se salta los bloques del proceso y continúa con el siguiente bloque.

Probar el primer bloque de bucle

El último bloque de la prueba simplemente se invierte y los bloques del proceso se completan antes de realizar la prueba. El último ciclo 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 en paralelo

Ver también

Publicaciones

Referencias

  1. ^ Relleno Hans-Georg (2009). Visualización para Sistemas de Información Semántica . p.32
  2. ^ Una breve historia de los diagramas de flujo estructurados (Diagramas de Nassi-Shneiderman) . Borrador del 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: Munich, República Federal de Alemania, 27 a 31 de julio de 1987, volumen 10; volumen 14 . p.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 gráficos de Nassi-Schneiderman", Revista de redacción y comunicación técnica , vol. 20, núm. 3 (1990): 237-54.

enlaces externos