Ringvorlesung 02.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) Benutzer- Schnittstelle Daten- modell Funktionen- Requirements analysis System design Coding System-Spezifikation System-Konstruktion Modul-Programmierung System-Integration
Software-Projektmodell (nach Denert) Modulari- sierung Datenbasis- entwurf Prozeß- organisation Requirements analysis System design Coding System-Spezifikation System-Konstruktion Modul-Programmierung System-Integration
Software-Projektmodell (nach Denert) Requirements analysis System design Coding System-Spezifikation Modul- spezifikation Modul-- konstruktion test System-Konstruktion Modul-Programmierung System-Integration
Software-Projektmodell (nach Denert) Requirements analysis System design Coding System-Spezifikation Subsystem- definition test System- System-Konstruktion Modul-Programmierung System-Integration
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
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
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
Petri-Netze: Idee Nebenläufigkeit Analyse des Prozeßzustands 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!) PÈT ¹ Æ PÇT = Æ I: P´T ® N: Eingabefunktion (Kantengewichte) O: P´T ® N: Ausgabefunktion (Kantengewichte) m: P ® N: Markierungsvektor (#Marken pro Stelle)
Petri-Netze: Formale Definition Transition tÎT aktiviert Û "pÎP: m(p) ³ I(p,t) t aktiviert mit Markierung m Þ Feuern Þ neue Markierung m‘ mit: "pÎP: m‘(p) = m(p)+O(p,t)-I(p,t) 2 1 P2 I(P1,T) I(P2,T) O(P3,T) P1 P3 T Aktiv
Petri-Netze: Formale Definition Transition tÎT aktiviert Û "pÎP: m(p) ³ I(p,t) t aktiviert mit Markierung m Þ Feuern Þ neue Markierung m‘ mit: "pÎP: m‘(p) = m(p)+O(p,t)-I(p,t) P2 I(P1,T) I(P2,T) O(P3,T) P1 P3 T 1 2 1 1 2
Petri-Netze: Formale Definition Transition tÎT aktiviert Û "pÎP: m(p) ³ I(p,t) t aktiviert mit Markierung m Þ Feuern Þ neue Markierung m‘ mit: "pÎP: m‘(p) = m(p)+O(p,t)-I(p,t) P2 I(P1,T) I(P2,T) O(P3,T) P1 P3 T 1 2 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 Transitionsklassen Þ Restriktionen und Verifikationsmöglichkeiten (z.B. „Transporttransition“ erlaubt keine Änderung der Markenzahl, „Pufferstelle“ kann bis zu N Marken enthalten)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K „Auf“ Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: Aufzugsteuerung Erdge- schoß (E) „Ab“ K®E E®K EÚK „Auf“ Start Keller (K)
Petri-Netze: zu primitiv! Bei komplexen Spezifikationen/Modellierungen: große Graphen Þ Netze 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 "vÎVarBool: (v = true Û $pÎP: (wP(p) = v Ù m(p) > 0))
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 2 1
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 1 2 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 1 2 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 1 2 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ärbtes Petri-Netz: ? ?
Petri-Netze: gefärbte Netze (CPN) „Normales“ Petri-Netz: Gefärbtes Petri-Netz 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 On Mute SoundOn mute/{} sound/{} Image Sound txt/{} Normal Videotext off/{} on/{} StandBy
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 On 1/{} Kanal 1 on/{} H 2/{} 1/{} Kanal 2 2/{} off/{} on/{} standby/{} Off StandBy 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