Category Archives: Stichpunktsammlung

Notizen zu Michael von der Beeck „Ein Kontrollmodell für die Strukturierte Analyse“


Stichpunktsammlung zur Quelle:
http://www.bibsonomy.org/bibtex/232766ee7944b7e18009adb7043ae114f/funthomas424242

Anmerkung: Die Stichpunkte wurden von mir ca. 1997 beim Studium notiert. Die Bücher liegen mir aktuell nicht mehr vor. Es ist davon auszugehen, dass diverse Fehler in den Notizen enthalten sind.

Seite 29

„Der Statecharts-Formalismus stellt eine Erweiterung endlicher Automaten und ihrer graphischen Darstellung durch Zustandsübergangsdiagramme dar.“ Dieser Formalismus eignet sich besonders zur Spezifikation reaktiver Systeme.

Seite 30

Statecharts=State Diagramms + Depth + Orthogonality + Broadcast-Communication
Ein Statechart besteht aus 2 kompl. Zustandsarten (AND | OR) . Diese enthalten selbst wieder Zustände (Kindzustände). Zustände werden durch Transitionen verbunden, diese stellen Zustandsübergänge in Pfeilrichtung dar. Sie werden markiert mit dem Namen, gefolgt von einem Doppelpunkt und einem Triggerteil. Dieser enthält eine Triggerbedingung gefolgt von Slash und einer Aktion. Ist der Quellzustand aktiv und die Triggerbedingung wahr, wird ein Zustandsübergang vollzogen und anbei die Aktion ausgeführt (Event gesendet). OR Zustände modellieren sequentielle, AND Zustände nebenläufige Vorgänge. In einem OR Zustand kann entweder gar kein Zustand oder maximal einer aktiv sein. Entsprechend ist er selbst aktiv wenn ein Zustand aktiv ist. In einem AND Zustand können alle oder kein Zustand aktiv sein. Er ist aktiv wenn alle aktiv sind.
?Aktionen stellen das Senden Zustandsinterner Ereignisse dar?

Seite 33

Mit Statecharts treten folgende Probleme auf:

  • Streng Synchrone Hypothese
  • Selbsttriggerung, Kausalität
  • Negiertes Triggerereignis
  • Wirkung einer Transitonsausführung widerspricht ihrer Ursache
  • Mehrebenen Transition
  • Zustandsreferenz
  • History Mechanismus
  • Kompositionelle Semantik, Selbsttriggerung, Selbststart
  • Operationelle / denotationelle Semantik
  • zeitloser Zustand
  • Lebensdauer eines Ereignisses
  • Gleichzeitige Transitionsausführung
  • Transitionsverfeinerung
  • Gleichzeitiges, mehrfaches Betreten oder Verlassen eines Zustandes
  • Unendliche Folge von Transitionsausführungen in einem Zustand
  • Nichtdeterminismus
  • Prioritätenregelung für die Ausführung von Transitionen
  • Starker/Schwacher Interrupt
  • Unterscheidung zwischen internen und externen Ereignissen
  • Gültigkeitsbereich von Ereignissen
  • Ereignisschnittstelle
  • Zustandshierarchie
  • Zeitspezifikation

(sind ja gar nicht so viele 😉 letztlich eine endliche Liste)

Seite 34

Die Streng Synchrone Hypothese legt die Transitionsausführungszeit mit 0 fest. Diese Annahme ist nur zulässig wenn: max. Antwortzeit des Systems < min. Zeit zwischen zwei Eingaben. Ob die Bedingung gilt kann erst die Implementation ergeben, wenn ja und sie wurde angenommen bringt dies Vorteile.

Seite 35.

Als Selbsttriggerung können Transitionen aufgefaßt werden deren Aktionsteil die Bedingung der jeweils anderen Transition erfüllt. Mit Ausführungszeit 0 wird Selbsttriggerung angenommen wenn die festgelegte Semantik nicht kausal ist. Kausale Semantik unterscheidet Ursache und Wirkung und benötigt daher ein externes Ereignis.

Seite 36

Das negierte Triggerereignis in der Bedingung sollte zu deterministischen Verhalten führen, tut dies aber nicht.

Seite 37

Besitzt die Transitionsmarkierung die Triggerbedingung ¬e und die Aktion e so entsteht das Problem der lokalen oder globalen Konsistenz. (Das ist nicht weiter wichtig für meine Arbeit)
Dennoch informativ: Bei globaler Konsistenz wird obiges verboten, auch bei: t1:¬e/f   t2:f/e. (klar wenn nicht e zu e führt ist das schon komisch aber für mich nicht weiter schlimm)

Seite 40

Bei Mehrebenen Transitionen wird die Zustandsgrenze überschritten, das führt zu Problemen.

Der History Mechanismus ermöglicht eine Zustandsänderung zu dem Kindzustand eines OR Zustandes welcher als letztes aktiv war.

Die Zustandsreferenz gibt für die Ausführung einer Transition einen aktive Zustand als Bedingung an.

Kompositionelle Semantik bedeutet, dass verschiedene Konstrukte zu einem neuen gefügt werden ohne weitere semantische Definitionen. Dies erleichtert die Verifikation da die Teile nicht noch einmal gepfüft werden müssen. Sie wird erschwert durch Zustandsreferenzen,  Historie Mechanismus und Mehrebenen Transitionen.

Seite 43

Auswege bilden Selbstterminierung und Selbststart.
Ein zeitloser Zustand darf gleichzeitig betreten und verlassen werden. Werden meißt verboten, dadurch wird schwacher Interrupt verhindert.

Seite 66

Vergleich von 20 Statechart Variablen

 

 

 

 

Notizen zu Dieter Hogrefe „Estelle, Lotos, SDL, Standard- Spezifikationssprachen für verteilte …“


Stichpunktsammlung zur Quelle:
http://www.bibsonomy.org/bibtex/22b3dc5c60f24fefb9dc7242cf9b986c3/funthomas424242

Anmerkung: Die Stichpunkte wurden von mir ca. 1997 beim Studium notiert. Die Bücher liegen mir aktuell nicht mehr vor. Es ist davon auszugehen, dass diverse Fehler in den Notizen enthalten sind.

Seite 23/1

Die Entwicklung von Estelle und LOTOS wurde von der ISO initiiert. Die Notwendigkeit ergab sich aus der Komplexität der Protokollspezifikationen.

Seite 23/2

Estelle:  ~ basiert auf der Theorie der endlichen Automaten (sogar der erweiterten laut S. 24/1)
LOTOS: ~ basiert auf Prozeßalgebra

Ein erweiterter endlicher Automat besitzt Zustände (wie endlicher Automat) und zusätzlich Variablen als Wertspeicher.

Seite 25

Ein Automat wird in Estelle Modul genannt. Dieser kann mittels eines Interaktionspunktes, welcher das Ende eines Kanals darstellt, mit anderen Modulen kommunizieren (asynchron). Module sind hierachisch definiert. Sohnmodule können mit Vatermodule kommunizieren (auch über Kanal). Es wird zwischen Moduldefinition und Modulinstanz unterschieden. Hierbei kann eine Definition beliebig viele Instanzen besitzen. Ein Modul kann zur Interpretationszeit neue Module dynamisch instanzieren. Diese müssen durch eine Variable referenziert werden. Wird auf dieselbe Variable eine 2. Referenz (durch Erzeugung eines neuen Moduls) gelegt, so bleibt der erste Modul erhalten. Es ist jedoch sehr schwierig diesen dann noch zu referenzieren. Hier wird auf [ISO: Estelle:  A formal description technique based on an extended state transition model, International Standard ISO/IS 9074, 1987] verwiesen.

Seite 29

Die Sprache erlaubt es in einfacher Form Zustände und Übergänge zu definieren. Dabei können die Übergänge mit eingaben sowie mit Ausgaben versehen werden. Diese beziehen sich scheinbar immer auf Interaktionspunkte und werden als Interaktion bezeichnet. Jeder Interaktionspunkt besitzt eine Warteschlange in welcher die Eingaben eingereiht werden. Die Warteschlange kann allein oder mit anderen IP’s gemeinsam genutzt werden. Konstrukte zur Vermeidung von textwiederholungen sind vorhanden. Sind zum gleichen Zeitpunkt mehrere Zustandsübergänge (Transitionen) möglich, so können Prioritäten vergeben werden (statisch). Bei nicht deterministischen Übergängen entscheidet Estelle „zufällig“ welcher genommen wird. Spontane Zustandsübergänge können spezifiziert werden durch Nichtverwendung einer Eingabebedingung. Bei der Ausführung einer Transition kann eine Verzögerunszeit definiert werden. Reflexive Zustandsübergänge sind möglich. Parametrisierung von Transitionen möglich. Module gleicher Hierarchieebene können miteinander kommunizieren. Module könnnen an der Kommunikation ihres übergeordneten Moduls teilnehmen. Eine Moduldefinition besteht aus einem Modulkopf und mindestens einem Modulbody. Modulinstanzen können nur auf Modulvariablen abgelegt werden (spezielle Variablen).
Es werden 3 Arten von Modulen unterschieden: Blattmodul, passiver oder aktiver Vatermodul.
Im Modulkopf wird die Schnittstelle des Moduls beschrieben. Hier wird eine Liste von IP’s und eine Liste exportierter Variablen festgelegt.

Seite 41

Ein Blattmodul enthält keine Moduldefinition. Er kann Variablen, Typen, Prozeduren und Funktionen deklarieren. Im Initialisierungsteil können Wertebelegungen erfolgen. Der dritte Abschnitt definiert die Transitionen (Zustandsübergänge).

Seite 42

Ein passiver Vatermodul kann zusätzlich zum Blattmodul Kanaldefinitionen, Moduldefinitionen, Modulvariablen und einen Initialisierungsteil für die Kommunikationsstruktur der Sohnmodule besitzen. Er darf keine Transitionsbeschreibungen enthalten.
Ein aktiver Vatermodul kann zusätzlich zum passiven noch Definitionen für Interaktionspunkte und Transitionsbeschreibungen enthalten. Hier könnnen im Gegensatz zum Blattmodul zusätzliche Aktionen und Transitionen beschrieben werden. Es existieren Möglichkeiten um neue Söhne zu erzeugen, sowie um die Kommunikationsstruktur zu ändern.

Seite 46

Für die Attributierung von Modulen stehen process, activity sowie systemprocess und systemactivity zur Verfügung. Hierzu folgende Regeln (!):

  • Jeder aktive Modul muß attributiert sein.
  • Module mit „system“ dürfen nicht Nachfahre eines attributierten Moduls sein.
  • Ein mit process oder activity attributierter Modul muß Nachfahre eines „system*“  sein.
  • Ein mit „*process“ attributierter Modul kann nur Nachfahren mit process oder activity haben.
  • Ein mit „*activity“ attributierter Modul kann nur Nachfahren mit activity haben

Seite 50/51

Modulinstanzen können erzeugt und vernichtet werden

Verbindungen können erzeugt und beendet werden. Nach dem Beenden bleiben die Eingaben in der Warteschlange und können weiterhin Transitionen hervorrufen.
Externe Interaktionspunkte können an externe Interaktionspunkte des Vaters  gebunden werden.
Die verwendete Sprache für Aktionen ist Standard Pascal.
Für einen Kanal zwischen den Interaktionspunkten müssen die Rollen der Interaktionspunkte sowie die möglichen Signale angegeben werden.