Konstruktive und Deskriptive Spezifikationen

Marcel Lüthi
Departement Mathematik und Informatik

Klassifikation von Spezifikationsmethoden

  • Konstruktiv, Deskriptiv
    • Konstruktive Spezifikation:
      Verhalten wird anhand einer "abstrakten Maschine" definiert
    • Deskriptive Spezifikation:
      Verhalten wird anhand von Eigenschaften definiert
  • Informell, Semiformal, Formal

Beispiel: Konstruktive Spezifikation

Spezifikation einer geometrischen Figur $E$.
  1. Bestimme zwei Punkte $P_1$ und $P_2$ einer Ebene
  2. Nimm eine Schnur und befestige die Enden an den Punkten $P_1, P_2$
  3. Nimm einen Bleistift und spanne damit die Schnur
  4. Fahre mit dem Bleistift im Gegenuhrzeigersinn
    • Schnur muss immer gespannt sein

Beispiel: Deskriptive Spezifikation

Spezifikation einer geometrischen Figur $E$.
  1. Die geometrische Figure $E$ wird durch die folgende Gleichung definiert
    \[ \frac{x^2}{a^2} + \frac{y^2}{b^2} = c \] wobei $a, b, c > 0$ zu wählende Konstanten sind

Beispiele wichtiger Spezifikationsmethoden

Datenflussdiagramme

  • Semi-formale, konstruktive Spezifikation
  • Systemsicht: Kollektionen von Daten die durch Funktionen "transformiert" werden
    • Daten/Informationsfluss im Zentrum
  • Daten können persistent sein
    • können in Datenspeicher gespeichert sein

Datenflussdiagramme

Diagramm nach Ghezzi et al. Abbildung 5.3

Datenflussdiagramme

Datenflussdiagramm Beispiel

Diagramm nach Ghezzi et al. Abbildung 5.4

Präzisierung

Präzisierung

Präzisierung

Datenflussdiagramm Beispiel

Diagramm nach Ghezzi et al. Abbildung 5.4

Datenflussdiagramm Beispiel: Präzisierung

Diagramm nach Ghezzi et al. Abbildung 5.5

Vor / Nachteile von Datenflussdiagrammen

  • Vorteile
    • Intuitive Semantik, Einfach zu lesen
    • Kann auch von Kunden verstanden werden
    • Natürliche Aufteilung in verschiedene Detaillevel
     
  • Nachteil
    • Keine formale Definition der Semantik

Unklarheit im Datenfluss

Diagramm nach Ghezzi et al. Fundamentals of Software Engineering, Abbildung 5.6
  • Braucht D Information von A, B und C?
  • Gibt D dieselben Daten an E und F?

Unklarheit im Kontrollfluss

Diagramm nach Ghezzi et al., Fundamentals of Software Engineering, Abbildung 5.7
  • Mögliche Interpretation:
    • A und B sind sequentielle Funktionen
      • A produziert Datum für B, wartet bis B es konsumiert
    • A und B sind autonome Prozesse
      • A produziert kontinuierlich
      • B kann Datum mehrmals lesen

Entity Relationship Model

Entität: Individuell identifizierbares Objekt der Wirklichkeit
Wikipedia
  • Deskriptive Spezifikationsmethode
  • Vorläufer der UML Klassendiagramme
  • Drei Kernstrukturen:
    • Entitäten
    • Beziehungen zwischen Entitäten
    • Attribute der Entitäten

ERM: Kardinalitäten

  • Keine standardisierte Notation.
    • Unterschiedliche Varianten möglich

ERM: Beispiel

Entity Relationship Model

  • Trotz alter noch sehr populär für Datenmodellierung
  • Einfach - daher auch für nicht Experten verständlich
  • Nur Semi-formal
  •  
  • Komplementieren Datenflussdiagramme
    • Datenflussdiagramm: Operationen auf Daten
    • Entity Relationship Modelle: Beziehung zwischen Daten

Endliche Automaten (Finite State Machines)

  • Formale, konstruktive Methode
    • Menge von Zuständen $Q$
    • Menge von Inputs $I$
    • Transitionsfunktion: $\phi : Q \times I \to Q$
    • Startzustand $s \in Q$
Diagramm nach Ghezzi et al., Fundamentals of Software Engineering, Abbildung 5.12

Beispiel: Endliche Automaten