Kurs OMSI im WiSe 2012/13 Objektorientierte Simulation mit ODEMx Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage fischer ahrens eveslage@informatik.hu-berlin.de 2.1
Letzte Vorlesung 1. Systemsimulation was ist das? 2. Ein Blick zurück in die Anfänge 3. Modelle und Originale 4. Modellierungssprachen, Simulationsumgebungen 5. Bespiele aus der aktuellen Forschung 6. Paradigma der objektorientierten Modellierung 7. Klassifikation dynamischer Systeme 8. M&S eines Niedertemperaturofens
Konzepte Systemauffassung Phänomen Original Modell formales Modell Untersuchungsziel Simulationsmodell Experimente Simulator Modellierungs- Sprachen - universelle Programmierspr. - spezielle Modellierungsspr. System, Modellgrößen (Zustandsgrößen, ) Dynamische Semantik. Analogie in Struktur und Verhalten Zeitbegriffe 2.3
Konzepte Walzwerk- Workflow real existierendes technisches System hypothetisches technisches System Vergüterei- Workflow hypothetisches Software System Erdbebenfrühwarnsystem Phänomen Original Modell formales Modell Untersuchungsziel Simulationsmodell Simulator Experimente 2.4
Modellbasierte Software-Entwicklung verteilter Systeme (vereinfacht) Anforderungen Anforderungsmodelle Analysemodelle Umgebungsmodelle Modell-Checker Simulator Test, Wartung Entwurfsmodelle Verteilungsmodelle Zielcode Implementierungsmodelle Plattformmodelle Binärcode- Komponenten Wasserfallmethode später verbessert: iterativ, inkrementell 2.5
Modellgetriebene Software-Entwicklung spiralförmig, inkrementell & iterativ PSM-1 CORBA unterschiedliche Betriebssysteme Anwendungsobjekte in unterschiedlichen Sprachen: C++, Java,? PSM-2 EJB austauschbare Basiskommunikationstechnologie (Draht, Luft) Implementation Integration PIM Deployment Anforderungsanalyse Test/Validierung Design 2.6
Model-Driven Architecture (Leitsätze) Formalisierung ist ein wichtiger Baustein für ein erfolgreiches Qualitätsmanagement in Softwareprojekten. Speziell in den Bereichen der Anforderungs- und Systemanalyse besteht häufig noch ein hohes Optimierungspotential. Ein möglicher Weg, um den Formalisierungsgrad von Projektinformationen zu erhöhen, ist die Verwendung von formal eindeutigen Modellen. Für den erfolgreichen Einsatz von Modellen ist es jedoch unabdingbar, die Syntax und die Semantik der Modelle (über Metamodelle) exakt festzulegen. Ist dies einmal geschehen, ergibt sich meist eine deutliche Steigerung der Qualität wie auch der Effizienz in der Projektarbeit. Über den gezielten Einsatz von Metamodellen in der Softwareentwicklung können große Teile der Prozessaktivitäten automatisiert werden. Dennoch muss berücksichtigt werden, dass die Formalisierung eines Softwareentwicklungsprozesses nicht in einem Schritt erfolgen kann. Sie sollte vielmehr als ein iterativer Prozess verstanden werden, in dem die entstehenden Metamodelle von Projekt zu Projekt immer weiter verfeinert werden müssen. 2.9
Fazit Modellierung in allen Wissenschaftsdisziplinen das zentrale Paradigma zum Verständnis komplexer realer oder hypothetischer Systeme (auch in bestimmten Bereichen der Informatik) In der SW-Entwicklung lange Zeit nicht hoffähig : Alternative: von der Idee direkt zum gut dokumentierten Quellcode aber: Komplexität der Systeme bereiten praktische Probleme Achtung: MDD verlangt nicht nur Konzepte, sondern integrierte Werkzeugunterstützung OMSI: Technologien zum Bau effizienter Simulatoren dynamischer Systeme 2.10
1. Einführung 1. Systemsimulation was ist das? 2. Ein Blick zurück in die Anfänge 3. Modelle und Originale 4. Modellierungssprachen, Simulationsumgebungen 5. Bespiele aus der aktuellen Forschung 6. Paradigma der objektorientierten Modellierung 7. Klassifikation dynamischer Systeme 8. Scheduler für zeitdiskrete und zeitkontinuierliche Systemmodelle 9. M&S eines Niedertemperaturofens
1. Projekt: Erdbebenfrühwarnsystem GFZ Potsdam HU Berlin Internet Ataköy Istanbul Kandilli Istanbul GIS reales bzw. gedachtes Phänomen Sonderfall: Modell und Original- Teile repräsentieren sich Als unter Experiment- Management- System Ausführungs- Modell im Speicher Simulator Ziel formales mathematisches Simulationsmodell informales /semiformales Systemmodell PIM: SDL,UML,ASN.1 unvollständige Darstellung: UML/SDL PSM (Zielcode): C++, OpenWRT, Boost 2.12
Traditionelle Software-Entwicklung Informal Concepts, Ideas C++ Binary Application Layer Early Warning Service Sensor Data Retrieval Service Management Administration Services Middleware Layer Network Status Service Software Deployment Service Notification Service Time Synchronisation Service Monitoring Service Test eines einzelnen Knotens reicht nicht Communication Layer Point-to-Point Communition Mulicast Communication External Communcation Test eines kompletten Systems ist problematisch SOSEWIN Node SOSEWIN Node SOSEWIN Node SOSEWIN Node External Node 2.13
Ein modellgetriebener Ansatz Simulation Net topology, EarthquakeEvent Informal Concepts, Ideas UML ASN.1 SDL C++ C++ Binary* Binary Simulation Lib Runtime Lib Application Layer Early Warning Service Sensor Data Retrieval Service Management Administration Services Middleware Layer Network Status Service Notification Service Internet Software Deployment Service Time Synchronisation Service Monitoring Service Communication Layer Point-to-Point Communition Mulicast Communication External Communcation SOSEWIN Node SOSEWIN Node SOSEWIN Node SOSEWIN Node External Node Simulation des kompletten Systems vereinfacht das Testen enorm 2.14
SOSEWIN-Überblick Self-organized Seismic Early Warning Information Network 3 SW- Entwicklungstechnologie (Modelleditor, Simulator, Code -Generator, ) 2 SOSEWIN-HW/SW Architektur Simulation UML ASN.1 SDL C++ binary synthetic sensor data Applikationsschicht C++ binary 4 GIS-basierte Netzmanagementund Experiment-Unterstützung Middleware Hardware Wireless Meshed Network Betriebssystem Internet 1 2.15
Netz-Prototyp Self-organized Seismic Early Warning Information Network HU Berlin GIS Ataköy Istanbul GIS 5 Internet GFZ Potsdam Kandilli Istanbul GIS Istanbul- Infrastruktur- 2.16 daten
Erstinstallation von SOSEWIN Istanbul, Mai 2008 mit Sensorik, aber zunächst noch ohne Alarmierungssoftware 2.17
Alle Seismometer arbeiten zusammen Internet Verzögerung 1..2 s 2.18
Alarm bei Eintreffen der P-Welle 2 1 2.19
Wellenarten P-Welle S-Welle Erschütterung ~ Bewegung im dreidimensionalen Raum 2.20
Ernste Bedrohung von Istanbul 1999 1967 1944 1942 1943 1939 1961 1992? Quelle: http://pubs.usgs.gov/circ/2000/c1193/c1193.pdf Izmet-Beben: M 7,4 ~ 125-fache Energie der Hiroshima-Bombe - 20.000 zerstörte Häuser - 40.000 Verletzte - 24.000 Tote 2.21
Jüngstes Beben Ursache des Bebens ist die Kollision der relativ kleinen Arabischen und der Eurasische Platte, die von Island bis Japan reicht. Beide bewegen sich mit etwa 2 bis 2,5 Zentimetern pro Jahr aufeinander zu. Dadurch sei auch der steil ansteigendende Kaukasus entstanden, (wächst immer noch ~ähnlich baut die indische Platte das Himalaya-Gebirge auf Magnitude 7.2 Date-Time Location Depth Region Distances Sunday, October 23, 2011 at 10:41:21 UTC Sunday, October 23, 2011 at 01:41:21 PM at epicenter 38.628 N, 43.486 E 20 km (12.4 miles) set by location program EASTERN TURKEY 16 km (9 miles) NNE of Van, Turkey 118 km (73 miles) N of Hakkari, Turkey 127 km (78 miles) SSE of Agri (Karakose), Turkey 929 km (577 miles) E of ANKARA, Turkey Location Uncertainty Parameters Source Event ID Error estimate not available Nph=0, Dmin=0 km, Rmss=0 sec, Gp= 0, M-type=centroid moment magnitude (Mw), Version=1 USGS NEIC (WDCS-D) usb0006bqc 2.22
Animierte Zeitreise: Wir drehen die Zeit zurück 2.23
Letzte Warnung 1999: Izmit-Beben 2,80 m 4 m 2.24
(3) SDL-RT Editor (4) Model Checker Models, Target Components, and Tools Node Position Node 1 Model Model Repository SDL-RT Model Sensing-Entity Idle Event Description Geological Site Description Earthquake Syntheziser Node 2 Node n (2) Earthquake Synthesizer Simulation Simulator 3 Simulator 2 Simulator Block 1 A Entity Node 1 Entity 2 Entity 1 Entity 2 Entity 4 1 Entity Entity 3 4 Entity 3... Node n Sensor Data Block B Block B Entity 5 Entity 6 Entity 5 Entity 6 Entity 8 Entity 7 Entity 8 Entity 7 + signal analysing entity Node Binary managing entity SOSEWIN Node sensing entity Application Layer Middleware Layer transport entity Communication Layer... (idle) leading entity Model Early Warning Service (9) Shake Map Generator SOSEWIN Node (7) SDL Simulation (*) In preparation: network simulator..(8) Discrete Jist/Swans, Event ns-3 Simulator... (Odem-X Library) Result Logging... Repository SDL UML C++ EventDetected (6) Deployment Tool EventDescribed EventFinished (5) Compiler SDL-RT Editor C++ + Target Node 1 Thread 2 Thread 1 Thread 4 Thread 3... (10) MSC Viewer Node n Thread 6 Thread 5 Thread s 8 Thread 7 2.25
Experiment Management System Executables Log File Earthquake Synthesizer GIS-based editor 2.26
2. Projekt: Workflow-Modell von Ring-Walzprozessen Walzwerk Stempelpresse Herddrehofen Radialwalze 2 Stauchpresse 2 Aufweitpresse 4 Glühhaubenanlage Vergüterei Nachwärmofen Regel Auftragsgenerator Auftragsmodifikator Walzwerk- Simulator Animator Vergüterei- Simulator Animator 2.27
3.Projekt: Gletschereis-Last-Simulator Hintergrund: FO-Arbeiten am Nordic Volcanological Centre (Reykjavik) Einfluss des Abschmelzens isländischer Gletscher auf die Deformation der Erdoberfläche Ziel: Aufbau einer komponentenorientierten Simulationsumgebung zur Modellvalidierung im Abgleich mit historischen Messungen 2.28
SimGlazier: eine spezifische Simulationsumgebung Modellkonfiguration in XML Animator Simulator Java historische Messdaten C++ Modellbibliothek (Green sche Funktionen) 2.29
Bedeutung von Animationen: Bebenhäufigkeit hunderte Nachbeben, über einen ganzen Monat verteilt 2.30
Bedeutung von Animationen: Visualisierung von Erdbewegungen 2.31
1. Einführung 1. Systemsimulation was ist das? 2. Ein Blick zurück in die Anfänge 3. Modelle und Originale 4. Modellierungssprachen, Simulationsumgebungen 5. Bespiele aus der aktuellen Forschung 6. Paradigma der objektorientierten Modellierung 7. Klassifikation dynamischer Systeme 8. Scheduler für zeitdiskrete und zeitkontinuierliche Systemmodelle 9. M&S eines Niedertemperaturofens
Modellierungsparadigmen Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) nach Grady Booch 2. Klassen (Definition von Objekten) 3. Unterscheidung zw. aktiven und passive Klassen / allg. Classifier 4. Identifikation verschiedenster Beziehungen zwischen Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer 6. Polymorphie von (getypten) Referenzen 2.34
Modellierungsparadigmen Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) nach Grady Booch 2. Klassifikation (Definition von Objekten) 3. Unterscheidung zw. aktiven und passive Klassen 4. Identifikation verschiedenster Beziehungen zw. Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer 6. Polymorphie von (getypten) Referenzen Definition benötigter Objektklassen statt Definition einzelner Objekte 2.35
Modellierungsparadigmen Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) 2. Klassifikation (Definition von Objekten) 3. Unterscheidung zw. aktiven und passive Klassen agieren eigenständig und in Kooperation miteinander bei Austausch von Informationen /Daten (synchron /asynchron) statische oder dynamische Existenz 4. Identifikation verschiedenster Beziehungen zw. Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer 6. Polymorphie von (getypten) Referenzen werden von Objekten aktiver Klassen benutzt Bsp: ein Thread führt Operationen über Objekte von Java-Klassen aus 2.36
Modellierungsparadigmen Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) nach Grady Booch 2. Klassifikation (Definition von Objekten) 3. Unterscheidung zw. aktiven und passive Klassen 4. Identifikation verschiedenster Beziehungen zw. Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit bedeutet Wiederverwendung der gemeinsamen Basiskonzepte - Attribute - Verhalten / Methoden 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer 6. Polymorphie von (getypten) Referenzen 2.38
Modellierungsparadigmen Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) 2. Klassifikation (Definition von Objekten) überall dort, wo die Verarbeitung von Objekten einer (Basis-) Klasse definiert ist, lässt sich auch eine Verarbeitung von Spezialisierungen organisieren 3. Unterscheidung zw. aktiven und passive Klassen 4. Identifikation verschiedenster Beziehungen zw. Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit A1 A3 A2 A B1 D2 C3 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer B C 6. Polymorphie von (getypten) Referenzen D 2.39
Objektorientiertes Abstraktionskonzepte 1. eigenverantwortlich handelnde, interagierende Dinge (Objekte) Zustand (Attribute) individuelles Verhalten (Methoden, Dienste) Identität (Referenz) zusätzlich 2. Klassifikation (Definition von Objekten) 3. Unterscheidung zw. aktiven und passive Klassen Modellierungsparadigmen 4. Identifikation verschiedenster Beziehungen zw. Instanzen (bzw. Instanzmengen) Navigierbarkeit Abhängigkeit Gruppierung von Modellelementen Komposition/ Dekomposition Nebenläufigkeit/ Parallelität/ Synchronisation 5. Beziehung zwischen Klassen Spezialisierung / Generalisierung abstrakte und konkrete Klassifizierer zeitdiskretes/ zeitkontinuierliches Verhalten 6. Polymorphie von (getypten) Referenzen 2.40