Diagrama Warnier/Orr

Un diagrama de Warnier/Orr (también conocido como construcción lógica de un programa/sistema) es una especie de diagrama de flujo jerárquico que permite la descripción de la organización de datos y procedimientos. Fueron desarrollados inicialmente en 1976, en Francia por Jean-Dominique Warnier y en los Estados Unidos por Kenneth Orr sobre la base del álgebra booleana. Este método ayuda al diseño de estructuras de programa al identificar la salida y procesar los resultados y luego trabajar hacia atrás para determinar los pasos y las combinaciones de entrada necesarias para producirlos. El método gráfico simple utilizado en los diagramas de Warnier/Orr hace que los niveles del sistema sean evidentes y que el movimiento de los datos entre ellos sea vívido.

Elementos Básicos

Los diagramas de Warnier/Orr muestran los procesos y las secuencias en las que se realizan. Cada proceso se define de manera jerárquica, es decir, consta de conjuntos de subprocesos que lo definen. En cada nivel, el proceso se muestra entre paréntesis que agrupa sus componentes.

Ejemplo de diagrama de Warnier/Orr Data que ilustra la estructura de una página de Wikipedia.

Dado que un proceso puede tener muchos subprocesos diferentes, el diagrama de Warnier/Orr utiliza un conjunto de corchetes para mostrar cada nivel del sistema. Los factores críticos en la definición y desarrollo de software son la iteración o repetición y la alternancia. Los diagramas de Warnier/Orr lo muestran muy bien.[cita requerida]

Usando diagramas de Warnier/Orr

Para desarrollar un diagrama de Warnier/Orr, el analista trabaja hacia atrás, comenzando con la salida del sistema y utilizando el análisis orientado a la salida. Sobre el papel, el desarrollo pasa del decorado al elemento (de izquierda a derecha). En primer lugar, se definen la salida o los resultados previstos del procesamiento. En el siguiente nivel, que se muestra mediante la inclusión entre corchetes, se definen los pasos necesarios para generar el resultado. Cada paso a su vez se define con más detalle. Los corchetes adicionales agrupan los procesos necesarios para producir el resultado en el siguiente nivel.

Los diagramas de Warnier/Orr ofrecen algunas ventajas distintivas a los expertos en sistemas. Son simples en apariencia y fáciles de entender. Sin embargo, son poderosas herramientas de diseño. Tienen la ventaja de mostrar agrupaciones de procesos y los datos que se deben pasar de un nivel a otro. Además, la secuencia de trabajar hacia atrás asegura que el sistema estará orientado a los resultados. Este método es útil tanto para la definición de datos como de procesos. Se puede utilizar para cada uno de forma independiente, o se pueden combinar ambos en el mismo diagrama.

Construcciones en diagramas de Warnier/Orr

Hay cuatro construcciones básicas utilizadas en los diagramas de Warnier/Orr: jerarquía, secuencia, repetición y alternancia. También hay dos conceptos un poco más avanzados que ocasionalmente se necesitan: concurrencia y recursividad.

Jerarquía

La jerarquía es la más fundamental de todas las construcciones de Warnier/Orr. Es simplemente un grupo anidado de conjuntos y subconjuntos que se muestra como un conjunto de corchetes anidados. Cada paréntesis en el diagrama (dependiendo de cómo lo represente, el carácter suele parecerse más a una llave "{" que a un paréntesis "[", pero los llamamos "paréntesis") representa un nivel de jerarquía. La jerarquía o estructura que se representa en el diagrama puede mostrar la organización de los datos o el procesamiento. Sin embargo, tanto los datos como el procesamiento nunca se muestran en el mismo diagrama.

Secuencia

La secuencia es la estructura más sencilla de mostrar en un diagrama de Warnier/Orr. Dentro de un nivel de jerarquía, las funciones enumeradas se muestran en el orden en que ocurren. En otras palabras, el primer paso enumerado es el primero que se ejecutará (si el diagrama refleja un proceso), mientras que el último paso enumerado es el último que se ejecutará. De manera similar con los datos, el campo de datos que aparece en primer lugar es el primero que se encuentra al mirar los datos, el campo de datos que aparece en último lugar es el último que se encuentra.

Repetición

La repetición es la representación de un "bucle" clásico en términos de programación. Ocurre cada vez que el mismo conjunto de datos ocurre una y otra vez (para una estructura de datos) o siempre que el mismo grupo de acciones debe ocurrir una y otra vez (para una estructura de procesamiento). La repetición se indica colocando un conjunto de números entre paréntesis debajo del conjunto repetitivo.

Por lo general, hay dos números enumerados entre paréntesis, que representan la menor y la mayor cantidad de veces que se repetirá el conjunto. Por convención, la primera letra del conjunto repetido es la letra elegida para representar el máximo.

Si bien el límite mínimo y el límite máximo técnicamente pueden ser cualquier cosa, la mayoría de las veces son "(1,n)" como en el ejemplo, o "(0,n)". Cuando se utiliza para representar el procesamiento, la repetición "(1,n)" se conoce clásicamente como bucle "DoUntil", mientras que la repetición "(0,n)" se denomina bucle "DoWhile". En el diagrama de Warnier/Orr, sin embargo, no hay distinción entre los dos tipos diferentes de repetición, aparte del valor límite mínimo.

En ocasiones, los límites mínimo y máximo están predefinidos y no es probable que cambien: por ejemplo, el "Día" establecido ocurre dentro del "Mes" establecido de 28 a 31 veces (dado que el mes más pequeño tiene 28 días, los meses más grandes, 31) . No es probable que esto cambie. Y en ocasiones, el mínimo y el máximo se fijan en el mismo número.

En general, sin embargo, es una mala idea "codificar" una constante que no sea "0" o "1" en una cláusula de número de veces: el diseño debe ser lo suficientemente flexible para permitir cambios en el número de veces sin cambios. al diseño Por ejemplo, si una empresa tiene 38 empleados en el momento en que se realiza un diseño, codificar "38" como el "número de empleados" dentro de la empresa ciertamente no sería tan flexible como diseñar "(1,n)".

La cláusula de número de veces es siempre un operador adjunto a algún conjunto (es decir, el nombre de algún paréntesis) y nunca está adjunto a un elemento (una característica de diagrama que no se descompone en características más pequeñas). La razón de esto se hará más evidente a medida que continuemos trabajando con los diagramas. Por ahora, deberá aceptar esto como una regla de formación para un diagrama correcto.

Alternancia

La alternancia, o selección, es el proceso tradicional de "decisión" mediante el cual se toma la determinación de ejecutar un proceso u otro. El símbolo OR exclusivo (el signo más dentro del círculo) indica que los conjuntos inmediatamente arriba y abajo son mutuamente excluyentes (si uno está presente, el otro no lo está). Este diagrama indica que un Empleado es Gerencia o No Gerencia, un Empleado no puede ser ambos. También está permitido usar una "barra de negación" sobre una alternativa de manera similar a la notación de ingeniería. La barra se lee simplemente usando la palabra "no".

Las alternativas no tienen que ser binarias como en los ejemplos anteriores, pero pueden ser alternativas de muchas formas.

Concurrencia

La concurrencia es una de las dos construcciones avanzadas utilizadas en la metodología. Se utiliza cuando la secuencia no es importante. Por ejemplo, los años y las semanas operan concurrente-mente (o al mismo tiempo) dentro de nuestro calendario. El operador de concurrencia rara vez se usa en el diseño de programas (ya que la mayoría de los lenguajes no admiten el procesamiento concurrente real de todos modos), pero entra en juego cuando se resuelven conflictos de estructuras de datos físicos y lógicos.

Recursividad

La recursividad es la menos utilizada de las construcciones. Se utiliza para indicar que un conjunto contiene una versión anterior o menos ordenada de sí mismo. En el clásico problema de "lista de materiales", los componentes contienen partes y otros subcomponentes. Los subcomponentes también contienen sub-sub-componentes, y así sucesivamente. El paréntesis doble indica que el conjunto es recursivo. Las estructuras de datos que son verdaderamente recursivas son bastante raras.

Véase también

Referencias

Ninguna referencia de momento

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.