Fakultät für Informatik der Technischen Universität München. Kapitel 2. Modellierung von Echtzeitsystemen und Werkzeuge

Ähnliche Dokumente
HW/SW CODESIGN. Echtzeitverhalten. Mehmet Ozgan November 2015

Model Driven Development im Überblick

Model Driven Architecture

Ziele und Entwicklungskonzept des Projekts Virtueller Satellit. Dr. Olaf Maibaum

Modellbasierte Entwicklung fehlertoleranter Echtzeitsysteme Fokus: Qualifizierung des Codegenerators

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Notationen zur Prozessmodellierung

Zusicherungen und Laufzeit Überwachungen in der modellbasierten Software Entwicklung

Model Driven Architecture Praxisbeispiel

Unified Modeling Language (UML )

MDA auf der Grundlage der OMG Konzepte

Model Driven Architecture (MDA)

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Oracle JDeveloper 10 g

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

Software Engineering in der Praxis

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Graphische Modellanalyse am Beispiel von Geschäftsprozessmodellen unter Verwendung der Graph Markup Language (GraphML)

Model Driven Software Development

Vortrag zum Hauptseminar Hardware/Software Co-Design

Software Engineering in der Praxis

Systemdenken und Gestaltungsmethodik System-Modellierung

Complex Event Processing

Inhalt. Motivation Techniken des MDE. Fallbeispiele

CyPhyControl. Virtualisierte Ausführungsplattform für die zuverlässige Steuerung cyber-physikalischer Systeme

Safer Software Formale Methoden für ISO26262

GridMate The Grid Matlab Extension

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Formale Methoden: Ein Überblick

Verteilte Algorithmen TI5005

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme

Comparing Software Factories and Software Product Lines

Proling von Software-Energieverbrauch

Modellierung mit UML. Thomas Kistel. 24. November Thema - Untertitel Datum/Semester Ihr Name Seite 1

"FlexRIO hat sich als ideale Basis für den Test schneller Kommunikationsschnittstellen erwiesen." - Michael Rost, IRS Systementwicklung GmbH

Model Driven Architecture

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

Vortrag von: Ilias Agorakis & Robert Roginer

Der Design-Workflow im Software-Entwicklungs-Prozess

Software Factories SS Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Objektorientierte Prozeßsimulation in C++

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Modellbasierte Softwareentwicklung eines Kamera basierten Scheinwerfer-Adaptions-Algorithmus. Gerd Mauthe

Echtzeitverhalten. Einleitung. Was bedeutet Echtzeit? Beispiele. Andere Faktoren. Echtzeitsystem und Echtzeitkomponenten

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

!" Aktive Beherrschung von Modellierungsmethoden! !" Aktive Beherrschung einiger theoretischer Grundlagen!

Entwicklungssysteme für Lernumgebungen am Beispiel des Essener-Lern-Modells

Einsatz von Simulationen in der Softwareentwicklung

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014

Fakultät für Informatik der Technischen Universität München. Eh Echtzeitsysteme. Lehrstuhl Informatik VI Robotics and Embedded Systems

MDRE die nächste Generation des Requirements Engineerings

Synchronous vs. Timed Model anhand von Esterel und Giotto

Architecture Blueprints

Modellbasierte Softwareentwicklung

Einsatz von neuen Kommunikationstechnologien für die Netze der Zukunft

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Reaktive Systeme und synchrones Paradigma

Objektorientierte Analyse (OOA) Inhaltsübersicht

Skript zum Labor Maschinenkonstruktion. Konzipieren mechatronischer Produkte: Modellbasierte Programmierung eines Mikroroboters

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung

Verknüpfung von virtueller und realer Welt durch Open Core Engineering

Inhaltsverzeichnis Übersicht Prozesse

Sebastian Witte

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

! Aktive Beherrschung von Modellierungsmethoden. ! Aktive Beherrschung einiger theoretischer Grundlagen

Software Engineering

Von UML 1.x nach UML 2.0

Proseminar: Moderne Technologien für die Entwicklung von verteilten, dynamischen Anwendungen

Modellgetriebene Softwareentwicklung

Virtuelles Rollenspiel mit Social Software. David Weiß, Sarah Voß DeLFI 2010 Duisburg

State Event Technik CT2, Donnerstag / TE402 M. Thaler, TG208, tham@zhaw.ch


Einführung in Generatives Programmieren. Bastian Molkenthin

Rapide An Event-Based Architecture Definition Language

2. Automatische Codegenerierung mittels dynamischer Spezialisierung

Einführung in die objektorientierte Programmierung. mit Squeak

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Rüdiger Brause. Betriebssysteme. Grundlagen und Konzepte. Dritte, überarbeitete Auflage Mit 170 Abbildungen. Springer

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK

Das Softwaresystem BASEMENT

Agilität trifft Funktionale Sicherheit

J.6 Programmierung eingebetteter Systeme

Modellierung von deterministischer Software in Simulink

Diplomarbeit Antrittsvortrag

IT- und Medientechnik

Entwicklungsbegleitende Verifikation von AUTOSAR Steuergerätefunktionen auf Basis einer Test-RTE und SiL-Simulation

DIPLOMARBEIT. Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem. Uwe Pfeiffer

Michael Piechotta - CASE Tools. openarchitecture Ware

Softwareentwicklung mit UML

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Software- und Systementwicklung

Automatisch fehlerfrei eine Vision?

transportation SYMTES Testen mit System

Transkript:

Kapitel 2 Modellierung von n und Werkzeuge 39

Inhalt Motivation Grundsätzlicher Aufbau, Models of Computation Werkzeug Ptolemy Synchrone Sprachen (Esterel, Lustre) Reaktive Systeme: Werkzeuge Esterel Studio, SCADE Synchroner Datenfluss: EasyLab Zeitgesteuerte Systeme Werkzeug Giotto Domänenspezifische Codegeneratoren Werkzeug FTOS Verifikation durch den Einsatz formaler Methoden 40

Fokus dieses Kapitels Konzepte und Werkzeuge zur Modellierung und Generierung von Code für / eingebettete Systeme Voraussetzungen an Werkzeuge für ganzheitlichen Ansatz: Explizite Modellierung des zeitlichen Verhaltens (z.b. Fristen) Modellierung von Hardware und Software Eindeutige Semantik der Modelle Berücksichtigung von nicht-funktionalen Aspekten (z.b. Zeit*, Zuverlässigkeit, Sicherheit) Ansatz zur Realisierung: Schaffung von domänenspezifischen Werkzeugen (Matlab/Simulink, Labview, SCADE werden überwiegend von spezifischen Entwicklergruppen benutzt) Einfache Erweiterbarkeit der Codegeneratoren oder Verwendung von virtuellen Maschinen / Middleware-Ansätzen * Zeit wird zumeist als nicht-funktionale Eigenschaft betrachet, in n ist Zeit jedoch als funktionale Eigenschaft anzusehen (siehe z.b. Edward Lee: Time is a Resource, and Other Stories, May 2008) 41

Literatur Sastry et al:scanning the issue - special issue on modeling and design of embedded software, Proceedings of the IEEE, vol.91, no.1, pp. 3-10, Jan 2003 Thomas Stahl, Markus Völter: Model-Driven Software Development, Wiley, 2006 Ptolemy: Software und Dokumentation http://ptolemy.eecs.berkeley.edu/ptolemyii/index.htm Benveniste et al.: The Synchronous Languages 12 Years Later, Proceedings of the IEEE, vol.91, no.1, pp. 64-83, Jan 2003 Diverse Texte zu Esterel, Lustre, Safe State Machines: http://www.esterel-technologies.com/technology/scientific-papers/ David Harrel, Statecharts: A Visual Formalism For Complex Systems, 1987 Henzinger et al.: Giotto: A time-triggered language für embedded programming, Proceedings of the IEEE, vol.91, no.1, pp. 84-99, Jan 2003 Hinweis: Veröffentlichungen von IEEE, Springer, ACM können Sie kostenfrei herunterladen, wenn Sie den Proxy der TUM Informatik benutzen (proxy.in.tum.de) 42

Begriff: Modell Brockhaus: Ein Abbild der Natur unter der Hervorhebung für wesentlich erachteter Eigenschaften und Außerachtlassen als nebensächlich angesehener Aspekte. Ein M. in diesem Sinne ist ein Mittel zur Beschreibung der erfahrenen Realität, zur Bildung von Begriffen der Wirklichkeit und Grundlage von Voraussagen über künftiges Verhalten des erfassten Erfahrungsbereichs. Es ist um so realistischer oder wirklichkeitsnäher, je konsistenter es den von ihm umfassten Erfahrungsbereich zu deuten gestattet und je genauer seine Vorhersagen zutreffen; es ist um so mächtiger, je größer der von ihm beschriebene Erfahrungsbereich ist. 43

Modellbasierte Entwicklung Für die modellbasierte Entwicklung sprechen diverse Gründe: Modelle sind häufig einfacher zu verstehen als der Programmcode (graphische Darstellung, Erhöhung des Abstraktionslevels) Vorwissen ist zum Verständnis der Modelle häufig nicht notwendig: Experten unterschiedlicher Disziplinen können sich verständigen Systeme können vorab simuliert werden. Hierdurch können Designentscheidungen vorab evaluiert werden und späte Systemänderungen minimiert werden. Es existieren Werkzeuge um Code automatisch aus Modellen zu generieren: Programmierung wird stark erleichtert Ziel: umfassende Codegenerierung (Entwicklung konzentriert sich ausschließlich auf Modelle) Mittels formaler Methoden kann die Umsetzung der Modell in Code getestet werden das Modell auf gewisse Eigenschaften hin überprüft werden 44

OMG: Model-Driven Architecture (MDA) Die Entwicklung des Systems erfolgt in diversen Schritten: textuelle Spezifikation PIM: platform independent model PSM: platform specific model Code: Maschinencode bzw. Quellcode Aus der Spezifikation erstellt der Entwickler das plattformunabhängige Modell Hoffung: weitgehende Automatisierung der Transformationen PIM PSM Code (Entwickler muss nur noch notwendige Informationen in Bezug auf die Plattform geben) Verifikation Simulation, Partitionierung Übersetzung typischerweise textuell z.b. Esterel Beschreibung von Hardware, Betriebssystem, verwendete Softwarkomponenten z.b. C, C++ oder Maschinencode 45

MDA im Kontext von n In n / eingebetteten Systemen ist bei einem umfassenden Ansatz ein Hardwaremodell (z.b. Rechner im verteilten Systen, Topologie) schon in frühen Phasen (PIM) notwendig Das plattformspezifische Modell (PSM) erweitert das Hardware- & Softwaremodell um Implementierungskonzepte, z.b. Implementierung als Funktion/Thread/Prozess Prozesssynchronisation 46

Anwendungsbeispiele Zur Illustration diverser Konzepte werden wir in der Vorlesung / Übung mehrere Beispiele verwenden. Beispiel 1: Aufzugssteuerung Verteiltes System: Steuerungsrechner (einfach oder redundant ausgelegt) Microcontroller zur Steuerung der Sensorik / Aktorik CAN-Bus zur Kommunikation Beispiel 2: Ampel 47

Modellierung von n Aktoren, Ausführungsmodelle Werkzeuge: Ptolemy 48

Ptolemy Das Ptolemy-Projekt an der UC Berkeley untersucht verschiedene Modellierungsmethodiken für eingebettete Systeme mit einem Fokus auf verschiedene Ausführungsmodelle (Models of Computation) Ptolemy unterstützt Modellierung Simulation Codegenerierung Formale Verifikation (teilweise) Weitere Informationen unter: http://ptolemy.eecs.berkeley.edu/ 49

Aktororientiertes Design Ptolemy-Modelle basieren auf Aktoren anstelle von Objekten Object class name Objekte: data Fokus liegt auf Kontrollfluss Objekte werden manipuliert methods Aktoren call return Fokus liegt auf Datenfluss Aktoren manipulieren das System Vorteil beider Ansätze: erhöhte Wiederverwendbarkeit Vorteil von Aktoren: leichtere Darstellung von Parallelität input data class name data parameters ports output data Actor 50

Models of Computation Ausführungsmodelle (models of computation) bestimmen die Interaktion von Komponenten/Aktoren. Die Eignung eines Ausführungsmodells hängt von der Anwendungsdomäne, aber auch der verwendeten Hardware, ab. In Ptolemy wird durch die Einführung von Direktoren (director) die funktionale Ausführung (Verschaltung der Aktoren) von der zeitlichen Ausführung (Abbildung im Direktor) getrennt. Durch Domänenpolymorphismus (domain polymorphism) können Aktoren unter verschiedenen Ausführungsmodellen verwendet werden. Verschiedene Ausführungsmodelle können hierarchisch geschachtelt werden (modal models). Typisches Beispiel: Synchroner Datenfluss und Zustandsautomaten 51

Probleme mit Zeit und Daten Zeit: Programmiersprachen unterstützen häufig keine Zeit Daten: sind digital Zeit: typischerweise zyklische Abarbeitung Daten: sind digital Zeit: physikalische Zeit Daten: sind digital Zeit: physikalische Zeit Daten: analog/kontinuierlich 52

Prinzip: Annahme: unendlich schnelle Maschine Daten werden zyklisch verarbeitet Pro Runde wird genau einmal der Datenfluss ausgeführt Vorteile: Statische Speicherallokation Statischer Schedule berechenbar Verklemmungen detektierbar Laufzeit kann bestimmt werden Werkzeuge: Matlab Labview MoC: Synchronuous Dataflow 53

Prinzip: Annahme: unendlich schnelle Maschine Ereignisse werden zyklisch verarbeitet (Ereignisse müssen nicht jede Runde eintreffen) Pro Runde wird genau eine Reaktion berechnet Häufig verwendet in Zusammenhang mit Finite State Machines Vorteile: einfache formale Verifikation Werkzeuge: Esterel Studio Scade MoC: Synchronous Reactive 54

Prinzip: Kommunikation über Ereignisse Jedes Ereignis trägt einen Wert und einen Zeitstempel Anwendungsgebiet: Digitale Hardware Telekommunikation Werkzeuge: VHDL Verilog Varianten: Distributed Discrete Events MoC: Discrete Event 55

MoC: Continuous Time Prinzip: Verwendung kontinuierlicher Signale (zumeist Differentialgleichungen) Anwendungsgebiet: Simulation Werkzeuge: Simulink Labview 56

Component Interaction: Weitere MoCs Mischung von daten- und anfragegetriebener Ausführung Beispiel: Web Server Discrete Time: Erweiterung des synchronen Datenflussmodels um Zeit zwischen Ausführungen zur Unterstützung von Multiratensystemen Time-Triggered Execution Die Ausführung wird zeitlich geplant Anwendungsgebiet: kritische Regelungssysteme Werkzeug: Giotto, FTOS Process Networks Prozess senden zur Kommunikation Nachrichten über Kanäle Kanäle können Nachrichten speichern asynchrone Nachrichten Anwendungsgebiet: verteilte Systeme Rendezvous synchrone Kommunikation verteilter Prozesse (Prozesse warten am Kommunikationspunkt bis Sender und Empfänger bereit sind) Beispiele: CSP, CCS, Ada 57