Ringvorlesung 02.11. Einführung in das Graduiertenkolleg (INF 3) 09.11. Spezifikationsverfahren in...

Post on 06-Apr-2016

215 views 0 download

Transcript of Ringvorlesung 02.11. Einführung in das Graduiertenkolleg (INF 3) 09.11. Spezifikationsverfahren in...

Ringvorlesung02.11. Einführung in das Graduiertenkolleg (INF 3) 09.11. Spezifikationsverfahren in den verschiedenen Phasen des

Software-Entwurfs, Graph. Verfahren (INF 2) 16.11., 23.11. Aufgaben und Auswirkungen der Konstruktion in der

Produktentwicklung (KTmfk) 30.11. Spezifikationsverfahren in den verschiedenen Phasen des

Software-Entwurfs, Math. Methoden (INF 2) 07.12., 14.12. Gestaltungsspielräume beim Entwurf von Betriebssystemen (INF 4)

21.12., 11.01. Entwurf und Planung von Rechnernetzen und

Kommunikationssystemen (INF 7) 18.01., 25.01. Entwurfssicherheit und Verläßlichkeitsbewertung (INF 3) 01.02., 08.02. Entwurf verläßlicher Systeme aus der Sicht des IC-Entwurfs (LRS)

Spezifikationsverfahren in den verschiedenen Phasen

des Software-Entwurfs

Graphische Verfahren

Mark Minas

Software-Projektmodell (nach Denert)

System-Spezifikation

System-Konstruktion

Modul-Programmierung

System-Integration

Requirements analysis

System design

Coding

Benutzer-Schnittstelle

Daten-modell

Funktionen-modell

Software-Projektmodell (nach Denert)

System-Spezifikation

System-Konstruktion

Modul-Programmierung

System-Integration

Requirements analysis

System design

Coding

Modulari-sierung

Datenbasis-entwurf

Prozeß-organisation

Software-Projektmodell (nach Denert)

System-Spezifikation

System-Konstruktion

Modul-Programmierung

System-Integration

Requirements analysis

System design

Coding

Modul-spezifikation

Modul--konstruktion

Modul-test

Software-Projektmodell (nach Denert)

System-Spezifikation

System-Konstruktion

Modul-Programmierung

System-Integration

Requirements analysis

System design

Coding

Subsystem-definition

Subsystem-test

System-test

System-Spezifikation Modellierung mit

Petri-Netzen Statecharts

Modellierung mit Petri-Netzen Multitechnologiesysteme

verschiedene, kooperierende Teilsysteme Spezifikation auf abstraktem Niveau Simulation, Analyse und Optimierung schon in der frühen

Phase

Petri-Netze (C.A. Petri) abstraktes Beschreibungsmittel einfach, modular, anschaulich (graphischer Entwurf) Nebenläufigkeit, Sequenzen, Synchronisation gut darstellbar

Petri-Netze: Idee Modellierung auf abstraktem Niveau

Darstellung der Prozeßzusammenhänge als gerichteter, bipartiter Graph

Identifikation von Teilsystemen mit Stellen Übergänge (Transitionen und Kanten) definieren

Schnittstellen zwischen Modulen

1

1

1

Petri-Netze: Idee Modellierung auf abstraktem Niveau

Darstellung der Prozeßzusammenhänge als gerichteter, bipartiter Graph

Identifikation von Teilsystemen mit Stellen Übergänge (Transitionen und Kanten) definieren

Schnittstellen zwischen Modulen

1

1

1

Petri-Netze: Idee Modellierung auf abstraktem Niveau

Darstellung der Prozeßzusammenhänge als gerichteter, bipartiter Graph

Identifikation von Teilsystemen mit Stellen Übergänge (Transitionen und Kanten) definieren

Schnittstellen zwischen Modulen

1

1

1

Petri-Netze: Idee Nebenläufigkeit

Mehrfachkanten ~ parallel ablaufende Prozesse Übergangsbedingungen ~ Synchronisation der Teilsysteme

Analyse des Prozeßzustands Markierung der Knoten ~ Modellierung versch. Zustände

Petri-Netze: Formale Definition

Petri-Netz PN=(P,T,I,O,m) P: Stellen (Plätze) T: Transitionen (endliche Mengen!) PT PT I: PT N: Eingabefunktion (Kantengewichte) O: PT N: Ausgabefunktion (Kantengewichte) m: P N: Markierungsvektor (#Marken pro

Stelle)

21

1

1

2

Petri-Netze: Formale Definition Transition tT aktiviert pP: m(p) I(p,t) t aktiviert mit Markierung m Feuernneue Markierung m‘ mit:

pP: m‘(p) = m(p)+O(p,t)-I(p,t)

P2

I(P1,T)

I(P2,T)

O(P3,T)

P1

P3

T

Aktiv

Petri-Netze: Formale Definition Transition tT aktiviert pP: m(p) I(p,t) t aktiviert mit Markierung m Feuernneue Markierung m‘ mit:

pP: m‘(p) = m(p)+O(p,t)-I(p,t)

P2

I(P1,T)

I(P2,T)

O(P3,T)

P1

P3

T21

1

1

2

Petri-Netze: Formale Definition Transition tT aktiviert pP: m(p) I(p,t) t aktiviert mit Markierung m Feuernneue Markierung m‘ mit:

pP: m‘(p) = m(p)+O(p,t)-I(p,t)

P2

I(P1,T)

I(P2,T)

O(P3,T)

P1

P3

T21

1

1

2

Petri-Netze: Abbildung realer Objekte

Keine Vorgabe durch formale Definition Plätze: oft Zustand, Position, Materialien, ... Markenfuß Daten-, Kontroll-, Materialfluß hilfreich: Festlegung verschiedener Platz- und

TransitionsklassenRestriktionen und Verifikationsmöglichkeiten (z.B. „Transporttransition“ erlaubt keine Änderung der Markenzahl, „Pufferstelle“ kann bis zu N Marken

enthalten)

Petri-Netze: Aufzugsteuerung

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

Petri-Netze: Aufzugsteuerung

EK

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

Petri-Netze: Aufzugsteuerung

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: Aufzugsteuerung

Start

„Ab“

„Auf“

Keller (K)

Erdge-schoß (E)

KEEK

EK

Petri-Netze: zu primitiv! Bei komplexen Spezifikationen/Modellierungen:

große GraphenNetze unübersichtlich

Zeitabhängigkeiten schwer modellierbar keine Unterscheidung zwischen

Flußkontrolle, Nutzdaten, Material verschiedenen Material-, Nutzdatentypen

keine inhibitorischen Kanten

Petri-Netze: w-Funktionen wT: T ExprBool

Zusätzliche Schaltbedingung: Transition t kann nur aktiv sein, wenn wT (t) erfüllt ist

wP: P VarBool

vVarBool: (v = true pP: (wP(p) = v m(p) > 0))

21

1

1

2

Petri-Netze & Zeit: TPN Jeder Transaktion wird eine Zeitfunktion zugewiesen Zeitfunktion deterministisch oder stochastisch (~SPN) Zu Beginn des Feuerns werden Markierungen auf den

Eingangsstellen entfernt Erst nach Ablauf der „Feuerzeit“ werden Markierungen

auf den Ausgangsstellen aufgebracht

Petri-Netze & Zeit: TPN Jeder Transaktion wird eine Zeitfunktion zugewiesen Zeitfunktion deterministisch oder stochastisch (~SPN) Zu Beginn des Feuerns werden Markierungen auf den

Eingangsstellen entfernt Erst nach Ablauf der „Feuerzeit“ werden Markierungen

auf den Ausgangsstellen aufgebracht

21

1

1

2

Petri-Netze & Zeit: TPN Jeder Transaktion wird eine Zeitfunktion zugewiesen Zeitfunktion deterministisch oder stochastisch (~SPN) Zu Beginn des Feuerns werden Markierungen auf den

Eingangsstellen entfernt Erst nach Ablauf der „Feuerzeit“ werden Markierungen

auf den Ausgangsstellen aufgebracht

21

1

1

2

Petri-Netze & Zeit: TPN Jeder Transaktion wird eine Zeitfunktion zugewiesen Zeitfunktion deterministisch oder stochastisch (~SPN) Zu Beginn des Feuerns werden Markierungen auf den

Eingangsstellen entfernt Erst nach Ablauf der „Feuerzeit“ werden Markierungen

auf den Ausgangsstellen aufgebracht

21

1

1

2

Petri-Netze: gefärbte Netze (CPN) Gefärbte/attributierte Marken Farbkonvertierungsfunktion an den Kanten z.B. Teile in verschiedenen Bearbeitungszuständen

oder verschiedenen Orten modellierbar neu: Farbkonflikt

„normales“Petri-Netz:

? ?

gefärbtesPetri-Netz:

„Normales“ Petri-Netz:

Gefärbtes Petri-Netz

Petri-Netze: gefärbte Netze (CPN)

Waschen Waschen Waschen Fertig

1

Marke {1,2}

Marke = 3

Fertig

incr

Waschen

Petri-Netze: sonstiges Inhibitorkanten Informations-Transitions-Netze (ITN)

schwarze Plätze: üblicher Kontrollfluß/Prozeßablauf weiße Plätze: Fluß interner Datenobjekte zusätzliche Gewichte für Informationsverarbeitung und

Schaltbedingungen

...

Statecharts 1987 von D. Harel als visuelle Spezifikationssprache

für reaktive Systeme eingeführt Semantik erstmals 1996 definiert („Statemate-Semantik“) Erweiterung konventioneller Zustandsdiagramme:

Hierarchisierung Kommunikationsmechanismen

StandByoff/{}

on/{}txt/{}

Normal

Videotext

txt/{}

Mute

SoundOn

mute/{}sound/{}

Image Sound

On

Statecharts: Zustände Startzustände einfache Zustände

(basic states) Oder-Zustände

(or-states) Und-Zustände

(and-states)

Statecharts: Zustände History-Zustände

StandBy

standby/{}

1/{}

Kanal 1

Kanal 2

2/{}

On1/{}

2/{}

Off

off/{} on/{}

H

on/{}

off/{}

Statecharts: Transitionen Transitionen zwischen unterschiedlichen

Hierarchiestufen erlaubt:

Statecharts: Transitionen Transitionen sind beschriftet mit

Ereignis [Bedingung] / Aktion Ereignis: Signal für 1 Zeitschritt Bedingung: boolesches Prädikat Aktion: Erzeugung anderer Ereignisse

Aber wann??? I-Feedback D-Feedback

M-Feedback

Zusammenfassung Graphische Verfahren sind nicht unbedingt

anschaulich Formale Fundiertheit ist keine Voraussetzung für

(wirtschaftlichen) Erfolg Petri-Netze:

+ einfache Struktur- unübersichtlich für nichttriviale Beispiele

Statecharts:+ Hierarchie vermeidet Zustandsexplosion- Ereignisse sind Broadcast-Ereignisse