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