Abstract:
Das Dokument beschreibt das Pflichtenheft für das Java-Fortgeschrittenenpraktikum im Sommersemester 2001. Es liegt auch in Postscriptform oder als Pdf vor. Das Pflichtenheft wird während des Semesters dem Projektfortschritt und entsprechend den getroffenen Entscheidungen angepaßt und verfeinert.
Was genau gecheckt wird, bleibt zu diskutieren!
MODULE main VAR request : boolean; state : {ready,busy}; ASSIGN init(state) := ready; next(state) := case state = ready & request : busy; 1 : {ready,busy}; esac;Es werden zunächst zwei Variablen deklariert, eine boolesche request sowie eine enumerative state. Letztere kann die Werte ready und busy annehmen. Im ASSIGN-Part wird das Verhalten des Systems spezifiziert. Initial wird die Variable state mit ready belegt. Im next(state)-Teil wird beschrieben, wie sich der Wert von state abhängig vom aktuellen Zustand verändert. Wie man sieht ist nichts über request ausgesagt; folglich kann diese Variable in jedem Schritt einen beliebigen Wert annehmen.
SFC ::= istep : step steps : step list transs : transition list actions : action list declist : declaration list step ::= name : string actions : stepaction list stepaction ::= qualifier : action_qualifier a_name : string action ::= a_name : string sap : stmt list (* simple assignment program *) stmt ::= skip | assign assign ::= var : variable val : expr variable ::= name : string type : type action_qualifier ::= Nqual (* may be extended *) transition ::= source : step list guard : expr target : step list declaration ::= var : variable type : type val : constval expr ::= b_expr | u_expr | constval | variable b_expr ::= left_expr : expr right_expr : expr op : operand type : type u_expr ::= sub_expr : expr op : operand type : type operand ::= PLUS | MINUS | TIMES | DIV (* Operand als *) | AND | OR | NEG (* Konstanten in expr *) | LESS | GREATER | LEQ | GEQ | EQ | NEQ constval ::= ...| -2 | -1 | 0 | 1 | ... | true | false type ::= inttype | booltype
Die SFC's bestehen aus Knoten, genannt Steps, zu denen Aktionen assoziiert sind, sowie aus Transitionen zwischen Steps, die mit booleschen Guards versehen sind. Es sind immer einer oder mehrere der Steps aktiv; die mit diesen aktiven Steps assoziierten Aktionen werden in einem Arbeitszyklus ausgeführt. Die Transition von s1 zu s2 und s3 (mit doppelter horizontaler Linie) ist eine parallele Verzweigung, wird diese Transition genommen, so wird s1 deaktiviert und s2 sowie s3 aktiviert.
This document was translated from LATEX by HEVEA.