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_EventFlows
(Information Flow)


Vytvořeno: 12-11-1995 11:30:34
Poslední změna: 12-04-2002 10:44:01

Checks for all event flows in the specified information flow if the event type matches the type of the function receiving the event.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE Check_EventFlows FOR INFORMATIONFLOW
BEGIN
/* check event flows attached to low-level functions according to the
   technical rules defined in Methodology Handbook, chapter 2.2.2
*/

  PRINT {"Arial",12,BOLD} "Test toků událostí v diagramu informačních toků ";
  PRINT {"Arial",12,BOLD,ITALIC} Conv$(Informationflow.Boxname),NL;

  first% = 1;
  
  FOREACH Ifunc WHERE Ifd = Informationflow.Name DO
    has_children% = 0;
    FOR Function WHERE Name = Ifunc.Function DO

      IF Type = "" THEN // processing function

        FOREACH Informationflow WHERE Name = Function.Name DO
          has_children% = 1;
          BREAK;
        END
        IF has_children% = 0 THEN // check functions without refinement only

          FOREACH Funfunflow WHERE Ifd = Informationflow.Name DO // flow between functions
            FOR Datastructure WHERE Name = Infoname AND Type = "ev" DO
              IF (Tfname = Function.Name AND
                  NOT (((Eventclass = "tr") OR (Eventclass = "di")) OR (Eventclass = "en")))
                  OR (Sfname = Function.Name AND Eventclass <> "") THEN
                  IF first% = 1 THEN
                    PRINT {"Arial",10,BOLD} NL, "Nedefinovaný typ události:",NL;
                    first% = 0;
                  END
                  FOR Datastructure WHERE Name=Funfunflow.Infoname DO
                    PRINT {"Arial",10,BOLD} TAB(4),CONV$(Boxname);
                  END
                  FOR Function WHERE Name=Funfunflow.Sfname DO
                    PRINT {"Arial",10} TAB(18),"(od funkce ";
                    PRINT {"Arial",10,ITALIC} CONV$(Boxname),NL;
                    PRINT {"Arial",10} TAB(18)," k funkci ";
                  END
                  FOR Function WHERE Name = Funfunflow.Tfname DO
                    PRINT {"Arial",10,ITALIC} Conv$(Boxname);
                  END
                  PRINT {"Arial",10} ")",NL;
              END
            END
          END
          
          FOREACH Funefaflow WHERE Ifd = Informationflow.Name AND // flow from external interface
                                   Function = Function.Name DO
            FOR Datastructure WHERE Name = Infoname AND Type = "ev" DO
              IF NOT (((Eventclass = "tr") OR (Eventclass = "di")) OR
                      (Eventclass = "en")) THEN
                IF first% = 1 THEN
                  PRINT {"Arial",10,BOLD} NL, "Nedefinovaný typ události:",NL;
                  first% = 0;
                END
                FOR Datastructure WHERE Name=Funefaflow.Infoname DO
                  PRINT {"Arial",10,BOLD} TAB(4),CONV$(Boxname);
                END
                FOR Eface WHERE Name=Funefaflow.Eface DO
                  PRINT {"Arial",10} TAB(18),"(od externího rozhraní ";
                  PRINT {"Arial",10,ITALIC} CONV$(Boxname),NL;
                  PRINT {"Arial",10} TAB(18)," k funkci ";
                END
                PRINT {"Arial",10,ITALIC} CONV$(Function.Boxname);
                PRINT {"Arial",10} ")",NL;
              END
            END
          END
        END

      ELSIF Type = "dg" THEN // dialog function

        first% = 1;
        FOREACH Funfunflow WHERE Ifd = Informationflow.Name AND
                                 Tfname = Function.Name DO
          FOR Datastructure WHERE Name = Infoname AND Type = "ev" DO
            IF NOT ((((Eventclass = "sh") OR (Eventclass = "hi")) OR
                     (Eventclass = "ok")) OR (Eventclass = "ca")) THEN
              IF first% = 1 THEN
                PRINT {"Arial",10,BOLD} NL, "Nedefinovaný typ události:",NL;
                first% = 0;
              END
              FOR Datastructure WHERE Name=Funfunflow.Infoname DO
                PRINT {"Arial",10,BOLD} TAB(4),CONV$(Boxname);
              END
              PRINT {"Arial",10} TAB(18),"(dialogová funkce ";
              PRINT {"Arial",10,ITALIC} CONV$(Function.Boxname);
              PRINT {"Arial",10} ")",NL;
            END
          END
        END

        FOREACH Funefaflow WHERE Ifd = Informationflow.Name AND // flow from external interface
                                 Function = Function.Name DO
          FOR Datastructure WHERE Name = Infoname AND Type = "ev" DO
            IF NOT ((((Eventclass = "sh") OR (Eventclass = "hi")) OR
                     (Eventclass = "ok")) OR (Eventclass = "ca")) THEN
              IF first% = 1 THEN
                PRINT {"Arial",10,BOLD} NL, "Nedefinovaný typ události:",NL;
                first% = 0;
              END
              FOR Datastructure WHERE Name=Funefaflow.Infoname DO
                PRINT {"Arial",10,BOLD} TAB(4),CONV$(Boxname);
              END
              FOR Eface WHERE Name=Funefaflow.Eface DO
                PRINT {"Arial",10} TAB(18),"(od externího rozhraní ";
                PRINT {"Arial",10,ITALIC} CONV$(Boxname),NL;
                PRINT {"Arial",10} TAB(18)," k funkci ";
              END
              PRINT {"Arial",10,ITALIC} CONV$(Function.Boxname);
              PRINT {"Arial",10} ")",NL;
            END
          END
        END
        
      END
    END
  END

  IF first% = 1 THEN
    PRINT {"Arial",10} NL,TAB(4),"Žádné formální chyby toků událostí.",NL;
  END

  PRINT NL(2);

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\24733.htm (C) microTOOL GmbH 2002