Top Qs
Línea de tiempo
Chat
Contexto

Diagrama Nassi-Shneiderman

De Wikipedia, la enciclopedia libre

Diagrama Nassi-Shneiderman
Remove ads

En programación de computadores un diagrama Nassi-Shneiderman (o NSD por sus siglas en inglés), también conocido como diagrama de Chapin[1][2] es una representación gráfica que muestra el diseño de un programa estructurado.[3]

Thumb
Ejemplo de un diagrama Nassi-Shneiderman.

Fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman. Este diagrama también es conocido como estructograma, ya que sirve para representar la estructura de los programas. Combina la descripción textual del pseudocódigo con la representación gráfica del diagrama de flujo.

Remove ads

Descripción

Basado en un diseño top-down (de lo más complejo a lo más simple), el problema que se debe resolver se divide en subproblemas cada vez más pequeños —y simples— hasta que solo queden instrucciones simples y construcciones para el control de flujo. El diagrama Nassi-Shneiderman refleja la descomposición del problema en una forma simple usando cajas anidadas para representar cada uno de los subproblemas. Para mantener una consistencia con los fundamentos de la programación estructurada, los diagramas Nassi-Shneiderman no tienen representación para las instrucciones GOTO.

Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programación analítica. Su nivel de abstracción es muy cercano al código de la programación estructurada y ciertas modificaciones requieren que se redibuje todo el diagrama.[4]

Los diagramas Nassi-Shneiderman son (la mayoría de las veces) isomórficos con los diagramas de flujo. Todo lo que se puede representar con un diagrama Nassi-Shneiderman se puede representar con un diagrama de flujo. Las únicas excepciones se dan en las instrucciones GOTO, break y continue.

Remove ads

Tipos de diagramas

Resumir
Contexto


Bloques de procesos El bloque de proceso representa el paso más simple y no requiere ningún análisis específico. Cuando un bloque de proceso es encontrado, la acción dentro del bloque se realiza, y pasamos directamente al siguiente bloque.

Thumb
Process blocks

Bloques ramificados hay dos tipos de estos bloques. El primero y más sencillo de ellos es el bloque verdadero-falso el cual ofrece al programa dos caminos para tomar, dependiendo de si una determinada condición ha sido especificada. Estos bloques pueden ser usados como bucles que detienen el programa hasta que una determinada condición se cumpla.

Thumb
True/False branching blocks

El segundo tipo es un bloque ramificado múltiple. Este tipo de bloque es utilizado cuando se necesita la selección de un caso en un programa . El bloque suele contener una pregunta. Además, el bloque le da al programa una cadena de oportunidades y es generalmente usado en las conjunciones con bloques de subprocesos para ahorrar espacio.

Thumb
Multiple branching blocks

Bucles testeadores: este bloque permite al programa repetir un bloque o un conjunto de bloques hasta que una determinada condición se haya cumplido.

Hay dos tipos de estos bloques: de testeo inicial y testeo final. La única diferencia entre los dos es el orden en el cual se completan los pasos involucrados en el proceso. En los de la primera situación, cuando el programa encuentra el bloque, testea si la condición necesaria se cumple, si no, se repite el bucle. El test se repite hasta que se cumpla dicha condición. En el nivel que se cumpla la condición, el programa detiene la ejecución del bucle y pasa a analizar los bloques del siguiente nivel.

Thumb
Test first loop block

Los de testeo final operan al revés.

Thumb
Test last loop block

Una expresión concurrente puede ser dibujada así:[5]


Thumb
parallel processing
Remove ads

Referencias

Enlaces externos

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads