Informační tok Funkční structura Datová struktura ER model Modulová struktura Typová struktura Relační model Dokumentace


[Celkový datový model] [Funkce] [Externí rohraní] [Stavové diagramy] [Datové elementy] [Entity] [Relace]
[Databáze] [Události] [Materiály] [Generovací funkce] [Vyhodnocovací funkce] [Konfigurace] [Uživatelé] [Projekt] [Home]



Vyhodnocovací funkce
Check_Connections
(Information Flow)


Vytvořeno: 02-13-1996 16:08:43
Poslední změna: 12-04-2002 10:37:07

Checks for all elements in the specified information flow if they are connected to other elements; prints the names of elements which are not connected to other elements.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE Check_Connections FOR INFORMATIONFLOW
BEGIN
/*
  check connections; print name of elements not connected
  to other elements
*/
  PRINT {"ARIAL",12,BOLD} "Test propojení prvků v diagramu informačních toků ";
  PRINT {"ARIAL",12,BOLD,ITALIC} CONV$(Informationflow.Boxname),NL(2);

  any%=0;

  // Functions
  first%=0;
  FOREACH Ifunc WHERE Ifunc.Ifd=Informationflow.Name ORDER BY Function DO
    found%=0;
    FOREACH Funfunflow WHERE Funfunflow.Ifd=Informationflow.Name AND
                            (Funfunflow.Sfname=Ifunc.Function OR
                             Funfunflow.Tfname=Ifunc.Function) DO
      found%=1;
      BREAK;
    END
    IF found% = 0 THEN
      FOREACH Funifaflow WHERE Funifaflow.Ifd=Informationflow.Name AND
                               Funifaflow.Function=Ifunc.Function DO
        found%=1;
        BREAK;
      END
      IF found% = 0 THEN
        FOREACH Funportflow WHERE Funportflow.Ifd=Informationflow.Name AND
                                  Funportflow.Function=Ifunc.Function DO
          found%=1;
          BREAK;
        END
        IF found% = 0 THEN
          FOREACH Fundatflow WHERE Fundatflow.Ifd=Informationflow.Name AND
                                   Fundatflow.Function=Ifunc.Function DO
            found%=1;
            BREAK;
          END
          IF found% = 0 THEN
            FOREACH Funefaflow WHERE Funefaflow.Ifd=Informationflow.Name AND
                                     Funefaflow.Function=Ifunc.Function DO
              found%=1;
              BREAK;
            END
            IF found% = 0 THEN
              FOREACH Funentflow WHERE Funentflow.Ifd=Informationflow.Name AND
                                       Funentflow.Function=Ifunc.Function DO
                found%=1;
                BREAK;
              END
            END
          END
        END
      END
    END

    IF found%=0 THEN
      FOR Function WHERE Function.Name=Ifunc.Function DO
        IF first%=0 THEN
          PRINT {BOLD,"ARIAL",10} "Funkce bez toků:",NL;
          first%=1;
          any%=1;
        END
        PRINT {"ARIAL",10} TAB(4),CONV$(Function.Boxname),NL;
      END
    END
  END
  
  IF first%=1 THEN
    PRINT NL;
  END
  
  // Internal interfaces
  first%=0;
  FOREACH Iface WHERE Iface.Ifd=Informationflow.Name ORDER BY Function DO
    found%=0;
    FOREACH Funifaflow WHERE Funifaflow.Ifd=Informationflow.Name AND
                             Funifaflow.Iface=Iface.Function DO
      found%=1;
    END
    IF found%=0 THEN
      FOR Function WHERE Function.Name=Iface.Function DO
        IF first%=0 THEN
          PRINT {BOLD,"ARIAL",10} "Interní rozhraní bez toků:",NL;
          first%=1;
          any%=1;
        END
        PRINT {"ARIAL",10} TAB(4),CONV$(Function.Boxname),NL;
      END
    END
  END
  
  IF first%=1 THEN
    PRINT NL;
  END
  
  // Entity-Types
  first%=0;
  FOREACH Entityref WHERE Entityref.Ifd=Informationflow.Name ORDER BY Entity DO
    found%=0;
    FOREACH Funentflow WHERE Funentflow.Ifd=Informationflow.Name AND
                             Funentflow.Entity=Entityref.Entity DO
      found%=1;
      BREAK;
    END
    IF found%=0 THEN
      FOR Entity WHERE Entity.Name=Entityref.Entity DO
        IF first%=0 THEN
          PRINT {BOLD,"ARIAL",10} "Entity bez toků:",NL;
          first%=1;
          any%=1;
        END
        PRINT {"ARIAL",10} TAB(4),CONV$(Entity.Boxname),NL;
      END
    END
  END
  
  IF first%=1 THEN
    PRINT NL;
  END
  
  // Ports
  first%=0;
  FOREACH Portref WHERE Portref.Ifd=Informationflow.Name DO
    found%=0;
    FOREACH Funportflow WHERE Funportflow.Ifd=Informationflow.Name AND
                             Funportflow.Portrefno=Portref.Portrefno AND
                             Funportflow.Portno=Portref.Portno DO
      found%=1;
      BREAK;
    END
    IF found%=0 THEN
      CALL GenPortname(Portref.Portno,Portref.Ifd,Portname$);
      IF first%=0 THEN
        PRINT {BOLD,"ARIAL",10} "Porty bez toků:",NL;
        first%=1;
        any%=1;
      END
      PRINT {"ARIAL",10} TAB(4),Portname$,NL;
    END
  END
  
  IF first%=1 THEN
    PRINT NL;
  END
  
  // stores
  first%=0;
  FOREACH Store WHERE Store.Ifd=Informationflow.Name DO
    found%=0;
    FOREACH Fundatflow WHERE Fundatflow.Ifd=Informationflow.Name AND
                             Fundatflow.Datastructure=Store.Datastructure DO
      found%=1;
    END
    IF found%=0 THEN
      FOR Datastructure WHERE Datastructure.Name=Store.Datastructure DO
        IF first%=0 THEN
          PRINT {BOLD,"ARIAL",10} "Paměti bez toků:",NL;
          first%=1;
          any%=1;
        END
        PRINT {"ARIAL",10} TAB(4),CONV$(Datastructure.Boxname),NL;
      END
    END
  END
  
  IF first%=1 THEN
    PRINT NL;
  END
  
  // External interfaces
  first%=0;
  FOREACH Efaceref WHERE Efaceref.Ifd=Informationflow.Name DO
    found%=0;
    FOREACH Funefaflow WHERE Funefaflow.Ifd=Informationflow.Name AND
                             Funefaflow.Eface=Efaceref.Eface DO
      found%=1;
    END
    IF found%=0 THEN
      FOR Eface WHERE Eface.Name=Efaceref.Eface DO
        IF first%=0 THEN
          PRINT {BOLD,"ARIAL",10} "Externí rozhraní bez toků:",NL;
          first%=1;
          any%=1;
        END
        PRINT {"ARIAL",10} TAB(4),CONV$(Eface.Boxname),NL;
      END
    END
  END
  
  IF any%=0 THEN
    PRINT {"ARIAL",10} TAB(4),"Žádné formální chyby propojení prvků.",NL(2);
  END
  IF first%=1 THEN
    PRINT NL;
  END

END


Generováno: 16.10.2003 7:41 Systém: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\Projekt03.csf Generováno systémem case/4/0
Vygeneroval: Administrator Soubor: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\html\14565.htm (C) microTOOL GmbH 2002