Modellbasierte Software- Entwicklung eingebetteter Systeme

Ähnliche Dokumente
Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Komplexität beherrschen mit Contract Based Design

Model Driven Testing. Prof. Dr. Holger Schlingloff. Fraunhofer FIRST. Humboldt-Universität zu Berlin. und.

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Modellbasierte Software- Entwicklung eingebetteter Systeme

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Modellbasierte Software- Entwicklung eingebetteter Systeme

HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1. Variables to store a true/false state: boolean movingright = true;

Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

Qualitätssicherung von Software

Wortdekodierung. Vorlesungsunterlagen Speech Communication 2, SS Franz Pernkopf/Erhard Rank

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

Round-Trip mit CASE-Werkzeugen: (Alp)traum oder Wirklichkeit?

Entwicklung von Medizinischen Algorithmen für die Kardiologie mit Hilfe Simulink und Modellbasiertes Design

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

Einführung in die Modelltransformation mit Xtend

KADS / COMMONKADS. Modelle in COMMONKADS zur Spezifikation von WBS

Timing-fokussiertes Design eingebetteter Systeme Matthias Dörfel, Tapio Kramer,

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

Oracle JDeveloper 10 g

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Poseidon for UML. Einführung. Andreas Blunk

Eclipse Modeling Framework

MDRE die nächste Generation des Requirements Engineerings

Use Cases vs. Funktionale Spezifikation

Algebraische Spezifikation von Software und Hardware II

Technische Universität Kaiserslautern Lehrstuhl für Virtuelle Produktentwicklung

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Seminar Programmierung Eingebetteter Systeme

Was Sie schon immer über MBSE wissen wollten

Entwurf und Validierung paralleler Systeme

Einführung in die Programmierung

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Modellbasierte Software- Entwicklung eingebetteter Systeme

Comparing Software Factories and Software Product Lines

Ausführbare UML Modelle multimodaler Interaktionsanwendungen Marcel Dausend 1, Mark Poguntke 2 1

Der Einsatz von Open Source Tools für Safety und Security

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Rhapsody in J Modellierung von Echtzeitsystemen


Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Software Engineering in der Praxis Praktische Übungen

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Modellbasierte Testautomatisierung mit Fitnesse

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Assembler - Einleitung

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Übung 3: VHDL Darstellungen (Blockdiagramme)

DOM Document Object Model

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Model-based Requirements Engineering

Deductive Software Verification The KeY Book Haupt- und Proseminar in SoSe 2017

RE bei MBSE mehr als nur textuelle Anforderungen

FUNKTIONSORIENTIERTE ANALYSE UND DESIGN VON SYSTEMEN. FG Requirements Engineering Franken, Erlangen , Referent: Ralf Bongard

Navi & seitenzahl. Ein Toolset für agile Entwicklungsprojekte

CTL Model Checking SE Systementwurf CTL Model Checking Alexander Grafe 1

Von IPSEN zu mechatronischen Entwurfsumgebungen

GL module Master Time Code, Timer and Time generator (LTC)

Modellbasiertes manuelles Testen: Techniken und Tücken

SysML Die Zukunft des Systems Engineering?

Praktikum Entwicklung von Mediensystemen mit ios

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler: Einführung

Werkzeuge zur Programmentwicklung

Qualitätssicherung von Software (SWQS)

Web Services Composition (BPWS4J )

Der Lehrstuhl Programmierparadigmen

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Super. Sub1. Sub2 State2. Sub3. Sub4. Super. State2. Sub4

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Systems Engineering mit SysML/UML

Visual Studio 2010 Neues für Architekten

Konzeption und Entwicklung eines sicheren Cloudbasierten Internetbanking-Systems mit

Grundlagen der Programmierung in C++ Kontrollstrukturen

Compilerbau + Virtuelle Maschinen

Von UML 1.x nach UML 2.0

Code-Reviews. Code-Generierung. Code-Generierung. Code-Reviews. als Bestandteile des Entwicklungsprozesses

Rot/Gelb. Grün. Rot. Gelb. G.1 Einleitung

Exercise 6. Compound Types and Control Flow. Informatik I für D-MAVT. M. Gross, ETH Zürich, 2017

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Modellbasierte Software- Entwicklung eingebetteter Systeme

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

Transkript:

Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für offene Kommunikationssysteme FOKUS

Folie 2 Noch Fragen? Schema für Controller in C? Was ist ein Codegenerator? Prinzip der Übersetzung Scicos C? Behandlung von Schleifen? Unterschied Gleitkomma-Festkomma? Codeoptimierungen welche? Absicherung der Codegenerierung? X-in-the-Loop: Was ist X?

Folie 3 Codegenerierung Codegenerierung aus SysML/UML Codegenerierung aus State Machines Codegenerator ist Compiler für Modelle Wiederverwendung schnelle Prototyp- und Produkterstellung erhöhte Zuverlässigkeit gegen Programmierfehler automatische Optimierung des generierten Codes Ziel: automatische Übersetzung von Modellen in ausführbaren (C-) Code

Folie 4 Codegenerierung aus SysML Requirement Diagramme (noch) nicht wirklich für Code verwendbar Blockdiagramme (BDD/IBD) VHDL-Code experimentelle Tools (RTaW, c-lab U Paderborn) SysML to SystemC Aktivitätsdiagramme zur Spezifikation des Kontrollflusses Zustandsdiagramme

Folie 5 Example Source: Mura, Panda, Prevostini: Executable models and Verifivation from MARTE and SysML

Folie 6

Folie 7

Folie 8 UML Codegenerierung (Fast) jedes UML Tool behauptet, Code generieren zu können Wiki listet ca. 100 Tools auf ( Comparison of code generation tools ) Unterschiedliche Fähigkeiten Meist: Erzeugung von Schablonen Hohe Schule: Round-trip Engineering Für Eclipse-UML: Acceleo, Modelio (Softeam)

Folie 9 Modelio Demo vertagt

Folie 10 UML Zustandsmaschinen neben Klassendiagrammen die am häufigsten zur Codegenerierung verwendete Diagrammart Übertragung der operationellen Semantik in die Zielsprache Beispiel: Hugo-RT, U Augsburg nimmt beliebiges (Papyrus-) Modell erzeugt Java und Promela (für Model-Checking)

Folie 11 Schema Paradigma für funktionale Systeme input-process-output Paradigma für eingebettete Systeme loop{sense-think-act} Hauptschleife, endlos wiederholt: - lies Sensorwerte - berechne Abweichung oder Aktion - schreibe Aktuatorwerte Innerhalb der Berechnung können verschiedenen Modi (Zustände) angenommen werden Codegeneratoren folgen diesem Paradigma

Folie 12 Beispiel Pacemaker

Folie 13 Example: VDI-Pacemaker Verhalten (vereinfacht) 1. wait for an atrial pulse to be sensed 2. wait for at most the AV delay 3. if within this time a ventricular pulse is detected, goto step 1. 4. otherwise, generate a ventricular pulse and goto step 1.

Allgemeines Übersetzungsschema dn tape off up up up dn dn memory dn play Variable s ist der aktuelle Zustand; Variable i ist der aktuelle Input s = off; while (true) { dequeue i from input stack; case s of off: case i of dn: s = tape; end; tape: case i of dn: s = memory; up: s = off; end; memory: case i of dn: s = play; up: s = off; end; play: case i of dn: s = tape; up: s = off; end; end; H. Schlingloff, SS2014 modellbasierte Software-Entwicklung eingebetteter Systeme } Folie 14

Folie 15 Sprungtabellentechnik dn tape off up up up dn dn memory dn play Variable s ist der aktuelle Zustand; Variable i ist der aktuelle Input table=[state]x[input] [state]: table=[[off,dn,tape],[tape,up,off], [tape,dn,memory],...] s=off; while (true){ } dequeue i from input stack; s=table[s,i];

Folie 16 Codegenerierung für Zustandsmaschinen Behandlung des Event-Pools Behandlung von Parallelität Hierarchisierung Completion Events History-States Übersetzungsschema s = s 0 ; while (true) { } dequeue (trigger); let Enabled = {t T t=(s,(e,c,a),s ), c = true, e=0 or trigger e} if (Enabled not empty) { choose some t=(s,(e,c,a),s ) from Enabled; } execute a; //potentially enqueing other triggers s = s ;

Folie 17 Beispiel: VisualState Codegenerierung

Folie 18 Menschen- vs. maschinenlesbarer Code

Folie 19 Verifikation und Reportgenerierung Schlüsselwort: Modellprüfung (model checking)