3.2    Diagrama de Estructura de Cuadros

3.2.1  Objetivos :

       Esta t‚cnica trae consigo los siguientes objetivos :

       * Permitir MODELAR el sistema computarizado, para  solucionar  un 
         problema.
       * Visualizar modularmente el sistema, la conexi¢n, y comunicaci¢n 
         entre los mismos.

3.2.2  Utilidad :

       El  diagrama  de estructura de cuadros (La estructura de Constan-
       tine), es £til en vista que da una visi¢n de la arquitectura  del 
       sistema.

3.2.3  Descripci¢n :

       El  Diagrama de Estructura de Cuadros es una de las  herramientas 
       m s importantes en el dise¤o de sistemas. envista que brinda  una 
       visi¢n de Arquitectura del Sistrema.

       Este diagrama a su vez, est  compuesto por tres elementos b sicos:

       * M¢dulos
       * Conexiones entre m¢dulos
       * Comunicaci¢n entre m¢dulos

         Cada uno de estos elementos b sicos se explican a continuaci¢n:

       * M¢dulo.

         El m¢dulo representa un programa, subprograma o rutina, depend:
         iendo del lenguaje que se vaya  a utilizar. Se representa en el 
         diagrama mediante un rect ngulo.

         El dise¤o estructurado NO ha impuesto la restricci¢n de que  un 
         m¢dulo tenga que ser compilado independiente.

         Se considera m¢dulo como aquella parte de c¢digo que  se  pueda 
         llamar, es por tanto aquello que admite par metros  de  llamada 
         y retorna un valor.

         * Conexi¢n.
           La conexi¢n se representa mediante una l¡nea.

           Por ejemplo, en la Figura N§ 23: Conexi¢n, veremos :
         
              * A  llama a  B
              * B hace su funci¢n.
              * B retorna a A, inmediatamente  despu‚s  del lugar  donde 
                se produjo la llamada de A a B.
                                                     
                                                     
      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»        
      º                                       º
      º        MODULOS                        º
      º     ÚÄÄÄÄÄÄÄÄÄÄÄ¿                     º
      º     ³           ³                     º   
      º     ÀÄÄÄÄÄÄÄÄÄÄÄÙ                     º 
      º                                       º 
      º        CONEXION                       º    El diagram no dice nada sobre  el  c¢digo
      º     ÚÄÄÄÄÄÄÄÄÄÄÄ¿         M¢dulo de   º    A ni sobre el c¢digo B, lo unico que sabe
      º     ³     A     ³         llamadas    º    es que en A existe una sentencia del tipo
      º     ÀÄÄÄÄÄÂÄÄÄÄÄÙ                     º    CALL
      º           ³                           º
      º           ³                           º
      º           ³                           º
      º      ÚÄÄÄÄÁÄÄÄÄÄ¿         M¢dulo      º
      º      ³     B    ³         Llamado     º
      º      ÀÄÄÄÄÄÄÄÄÄÄÙ                     º
      º                                       º
      º                                       º
      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
      Figura N§ 23: Conexi¢n

       * Comunicaci¢n

       Los  signos  para llevar a cabo  la  comunicaci¢n  entre  m¢dulos 
       se muestra  en  la Figura  N§ 24:  Signos  de  Comunicaci¢n entre 
       M¢dulos, y ‚stos son :

           
       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
       º                                        º
       º +oÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ      º
       º                                        º
       º                 FLAG                   º
       º                                        º
       º                                        º
       º    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ     º
       º                 DATOS                  º
       ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

     Figura  N§ 24: Signos de Comunicaci¢n entre M¢dulos.

     * Comunicaci¢n que se ha producido  un error en el proceso.
     
     Comunicaci¢n  de  que  se puede proceder a una operaci¢n  concreta, 
     por  ejemplo, en el caso de una inserci¢n  de  datos  del  sistema, 
     un m¢dulo puede "inspeccionar" los datos  existentes  y comunicar a 
     otro que el dato a insertar existe.
     
     La diferencia existente entre un dato y flags es la siguiente :
     
     * Los  datos son  la informaci¢n compartida por los m¢dulos,  tanto 
     por el llamado como por el que llama, de esta manera la posici¢n de 
     la flecha s¢lo indica el sentido de la comunicaci¢n. Los  flags, se 
     encargan de indicar al m¢dulo que llama la terminaci¢n EOF, o error 
     del m¢dulo llamado y ‚ste siempre debe de ir en sentido ascendente.
     
     * Los  datos  se  van  a  procesar,   en  cambio  los  flags no son 
     procesados.
     
     * Los  datos  tienen  gran importancia para el sistema en s¡ mismo, 
     hacia  el  exterior,  en cambio, los flags, tiene importancia en la 
     comunicaci¢n de informaci¢n en el interior  y  son  los  que  sinc-
     ronizan la operatividad de los m¢dulos.

     El diagrama de Estructura de Cuadros adem s emplea  los  siguientes 
     simbolos.

     * Secuencia.

     Se dice que un m¢dulo est  en secuencia cuando  un  m¢dulo llama  a 
     varios, y ‚sto se realiza solamente una vez. Esto es mostrado gr f-
     icamente en la Figura N§ 25: Secuencia de M¢dulos.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º                                           º
º               ÚÄÄÄÄÄÄÄÄ¿                  º
º     ÚÄÄÄÄÄÄÄÄÄ´        ÃÄÄÄÄÄÄÄÄÄÄ¿       º    En   ejemplo  la  se-
º     ³         ÀÄÄÄÂÄÄÄÄÙ          ³       º    cuencia de  ejecuci¢n
º     ³             ³               ³       º    ser  1,2,3  es  decir 
º     ³             ³               ³       º    se leer  de izquierda 
º     ³             ³               ³       º    a derecha y de arriba 
º ÚÄÄÄÁÄÄÄ¿     ÚÄÄÄÁÄÄÄÄ¿      ÚÄÄÄÁÄÄÄÄ¿  º    hacia abajo.
º ³       ³     ³        ³      ³        ³  º
º ÀÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÙ      ÀÄÄÄÄÄÄÄÄÙ  º
º     1              2              3       º
º                                           º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

      Figura N§ 25: Secuencia de M¢dulos.

     * Iteraci¢n.

     Si adem s de haber llamadas a varios m¢dulos inferiores se ejecu-
     tan varias veces, se denomina  con  el  nombre de iteraci¢n, y es 
     representado por el siguiente simbolos.


     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
     º               þ  º   Un ejemplo de iteraci¢n se muestra
     º  ³            ³  º   en la Fig. N§ 26.
     º  ³            ³  º
     º  ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ  º
     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

                 
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º                       ÚÄÄÄÄÄÄÄÄÄÄ¿                         º
º                    ÚÄÄ´ PROCESAR ³                         º
º         ÚÄÄÄÄÄÄÄÄÄÄÅÄÄ´  PEDIDOS ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ¿           º En  esta  figura  se
º         ³          ³  ÀÄÄÄÄÂÄÄÄÄÄÙ             ³           º trata de representar
º       þ ³ þ        ³       ³    þ              ³           º las multiples llama-
º       ³ ³ ³        ÀÄÄÄÄÄÄÄÅÄÄÄÄÙ              ³           º das que  realiza  el
º       ³ ³ ³              ³ ³ þ                 ³ ³         º m¢dulo    "Procesar"
º         ³                ³ ³ ³                 ³ ³         º Pedidos a los modul- 
º         ³                þ ³ þ                 ³ þ         º os de m¢dulos de m s  
º         ³                  ³                   ³           º baja   jerarquia  es 
º ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿   ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿ º en ‚ste caso se rea- 
º ³    Obtener    ³   ³   Procesar   ³  ³     Crear        ³ º lizan  los  tres  en  
º ³ Pedido Valido ³   ³ Linea Pedido ³  ³ Historia Pedidos ³ º esa secuencia  y  un   
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º n£mero  n de veces.
º                                                            º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

     * Decisi¢n.

     Cuando existe una selecci¢n de caminos, el m¢dulo superior tendr  
     que realizar una decisi¢n. De esta manera la decisi¢n se represe-
     ntar  con el siguiente s¡mbolo:

                        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
                        º         Ú¿          º
                        º        ÚÙÀ¿         º
                        º       ÚÙ  À¿        º
                        º      ÚÙ    À¿       º
                        º     ÚÙ      À¿      º
                        º     À¿      ÚÙ      º
                        º      À¿    ÚÙ       º
                        º       À¿  ÚÙ        º
                        º        À¿ÚÙ         º
                        º         ÀÙ          º
                        º                     º
                        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

      Un ejemplo de decisi¢n se muestra en la Figura N§ 27: Decisi¢n.

 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
 º                                                                           º
 º                               ÚÄÄÄÄÄÄÄÄÄÄ¿                                º
 º                               ³ CALCULAR ³                                º
 º           ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´  PREMIO  ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿            º
 º           ³                   ÀÄÄÄÄÄÂÄÄÄÄÙ                   ³            º
 º           ³                         ³                        ³            º
 º           ³                         ³                        ³            º
 º   ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿          ÚÄÄÄÄÄÄÁÄÄÄÄÄÄ¿          ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿  º
 º   ³   Calcular    ³          ³  Calcular   ³          ³    Calcular    ³  º
 º   ³ Premio Adulto ³          ³ Premio Ni¤o ³          ³ Premio Anciano ³  º
 º   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  º
 º                                                                           º
 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
                                                                             
      Figura N§ 27:   Desici¢n


      * M¢dulo Predefinido:

      Es un m¢dulo que est  disponible en la libreria del sistema o  de 
      la propia aplicaci¢n. y se representa de la siguiente manera :

                                 ÚÄÄÄÄÄÄÄÄÄÄÄ¿
                                 ³ IMPRIMIR  ³
                                 ³ CHEQUE DE ³
                                 ³   PAGO    ³
                                 ÀÄÄÄÄÄÄÄÄÄÄÄÙ

      
      * Almacen de datos:

      Es la representaci¢n f¡sica de d¢nde van a estar los datos  en la 
      realidad, en nuestro sistema y se representa mediante  la   sigu-
      iente figura :

                              ÚÄÄÄÄÄÄÄÄÄÄ¿  
                             ÚÙ          À¿
                             À¿  NOMBRE  ÚÙ
                              ÀÄÄÄÄÄÄÄÄÄÄÙ 
      
      * Dispositivo f¡sico.

      Es cualquier dispositivo por el cual se  puede recibir  o  enviar 
      informaci¢n que necesite el sistema.


                           ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  
                          ÚÙ               ÚÙ
                         ÚÙ     DEVICE    ÚÙ
                        ÚÙ               ÚÙ
                        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
      
       Un ejemplo del diagrama de estructura completo se muestra  en la 
       Figura N§ 27: Diagrama de Estructura de Cuadros Completo.                                 
                                                                                                 
                                                                                                  
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿       
³              Final de         ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿                                         ³       
³              fichero          ³    EMITIR    ³                                         ³       
³             ÄÄÄÄÄÄÄÄÄÄþ       ³  CHEQUES DE  ³      ÄÄÄÄÄÄÄÄþ   Nombre Empleado        ³       
³         þÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´   EMPLEADOS  ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿                ³       
³Registro ³³                    ÀÄÄÄÂÄÄÄÄÄÄÄÄÂÄÙ                        ³                ³       
³Empleado ³³   Pago                 ³  Pago  ³     Reg.                 ³                ³       
³         ³³   Neto         þ       ³  Sueldo³   ³ Pago                 ³                ³       
³          ³   Horas        ³       ³ ³Neto  ³   ³ Empleado             ³                ³       
³          ³                ³       ³ ³      ³   þ                      ³     N£mer      ³       
³          ³                   ÚÄÄÄÄÙ þ      ÀÄÄÄÄÄ¿       Pago         ³     emple do   ³       
³          ³                   ³      Registro   þ ³       Empleado  ³  ³  ³             ³       
³          ³                   ³      Pago Horas   ³                 þ  ³  þ             ³       
³    ÚÄÄÄÄÄÁÄÄÄÄÄ¿     ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄ¿    ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿      ÚÄÄÄÄÄÁÄÄÄÄÄ¿          ³       
³    ³ OBTENER   ³     ³ OBTENER NETO ³    ³ CALCULAR NETO ³      ³ IMPRIMIR  ³          ³       
³    ³ REG. PAGO ³     ³   TRABAJADOR ³    ³   TRABAJADOR  ³      ³   CHEQUE  ³          ³       
³    ³ EMPLEADOS ³     ³   POR HORAS  ³    ³    CONTRATO   ³      ³    PAGO   ³          ³       
³    ÀÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÂÄÄÄÄÂÄÄÄÄÙ    ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÙ      ÀÄÄÄÄÄÄÄÄÄÄÄÙ          ³       
³               Tarifa      ³    ³ Retenciones deducþ³                                   ³       
³                 por    ³  ³    ³ ³impuestos  norma³³  ³   Tarifa                       ³       
³                Horas   þ  ³    ³ ³       Pago     ³³  ³   Normal                       ³       
³                           ³    ³ þ      þBruto H.  ³  þ                                ³       
³ Horas       ³ ÚÄÄÄÄÄÄÄÄÄÄÄÙ    ÀÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿                  ³       
³ Trabajadas  ³ ³ þ  Pago   Reducciones  ³³  Desctos       Pago    þ  ³   ³ Pagos        ³       
³             þ ³ ³  Bruto  Normales    ³³³ ³Imptos.       Bruto   ³  ³   þ              ³       
³               ³    Horas              þ³³ þ              Contrato   ³                  ³       
³        ÚÄÄÄÄÄÄÁÄÄÄÄÄ¿           ÚÄÄÄÄÄÄÁÁÄÄÄÄÄ¿   Pago       ÚÄÄÄÄÄÄÁÄÄÄÄÄÄ¿           ³       
³        ³ CALCULAR   ³           ³  CALCULAR   ³ ³ Bruto      ³ CALCULAR    ³           ³       
³        ³ BRUTO TRAB.³           ³ REDUCCIONES ³ þ Contrato   ³   OTRAS     ³           ³       
³        ³ POR MORAS  ³           ³   NORMALES  ³              ³ REDUCCIONES ³           ³       
³        ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ           ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ           ³       
³                                                                                        ³       
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ       
                                                                                          
       Figura N§ 27: Diagrama de Estructura de Cuadros Completo

       Sobre la Figura N§ 27, se puede a¤adir cuatro detalles.

       * El m¢dulo Calcular reducciones normales aparece s¢lo una vez, 
       a pesar de tener dos padres; esto se  hace para simplificar  la 
       escritura y mantenimiento  y para comprobar el n£mero y tipo de 
       parametros con los que los m¢dulos padres le llaman (consisten-
       cia de interfase).
     
       * Se seguira un criterio de lectura de izquierda a derecha para 
       conocer el orden en que se realizan las llamadas a los m¢dulos.
     
       * Est  permitido que un m¢dulo, por ejemplo  el  que realiza la 
       llamada,  reconozca  una  variable  como  un nombre, y otro por 
       ejemplo el llamado, lo reconozca con uno diferente. Por ejemplo 
       en el gr fico el Pago Bruto por Horas y Pago Bruto por Contrato 
       se refiere a lo mismo pueden ser reconocidas en Calcular Deduc-
       ciones normales como Pago Bruto.
     
l      El  nombre  de  un  m¢dulo  resume su funci¢n, es decir, lo que 
       realizan  para  su  padre,  no tiene que resumir la funci¢n que 
       realizan los hijos.