AutoFocus2 Einführung



Ähnliche Dokumente
Seamless Model-based Engineering of a Reactive System

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

Rhapsody in J Modellierung von Echtzeitsystemen

Einführung in die Programmierung

Produktinformation DaVinci Developer

A Domain Specific Language for Project Execution Models

VBA-Programmierung: Zusammenfassung

SOMA Reverse Engineering

Klausur in Programmieren

Modellbasierte Softwareentwicklung

SDD System Design Document

Kapitel MK:IV. IV. Modellieren mit Constraints

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

CGI Programmierung mit Ha. Markus Schwarz

Vorkurs C++ Programmierung

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

Funktionale Programmierung

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen

Übungen zur Softwaretechnik

Softwaretechnik (Allgemeine Informatik) Überblick

Abacus Formula Compiler (AFC)

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind

BPMN verdrängt die EPK? Warum BPMN alleine nicht reicht

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

DSL Entwicklung und Modellierung

Generatives Programmieren

Funktionale GUI-Programmierung in Haskell mit Grapefruit

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

SAP NetWeaver Gateway. 2013

Design Patterns 2. Model-View-Controller in der Praxis

Tutorium Rechnerorganisation

Java Kurs für Anfänger Einheit 5 Methoden

Übungen Programmieren 1 Felix Rohrer. Übungen

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Echtzeit- und Regelungstechnische Aspekte bei der automatischen Transformation von Matlab/Simulink in SPS-basierten Steuerungscode

Java Einführung Operatoren Kapitel 2 und 3

SEA. Modellgetriebene Softwareentwicklung in der BA

Grundlagen der Programmierung (Vorlesung 14)

Forschungsprojekt SS 2009

Übersicht Programmablaufsteuerung

Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006

Grundbegriffe der Informatik

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

WhiteStarUML Tutorial

Einführung in die C++ Programmierung für Ingenieure

Funktionale Programmierung mit Haskell

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

RUP Analyse und Design: Überblick

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Entwurf partieller SOA auf der Grundlage von Geschäftsprozessmodellen

Sehr geehrte Faktor-IPS Anwender,

Programmieren in Haskell Einführung

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Swetlana Stickhof. Universität Heidelberg

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS,

Programmieren Tutorium

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Objektorientierte Programmierung

Erwin Grüner

Algorithmen mit Python

Client-Server-Beziehungen

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

Modellierung und Programmierung 1

Modul 122 VBA Scribt.docx

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Sicherheit in Workflow-Management-Systemen

WPF Steuerelemente Listbox, ComboBox, ListView,

Constraintbasierte Testdatenanalyse für eingebettete Steuerungssoftware

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Vom Konzept direkt ins Cockpit: Optimierte HMI-Entwicklung mittels automatischer Codegenerierung

Session 8: Projektvorstellung Transferprojekt itsowl-tt-savez 18. August 2015, Gütersloh.

Comparing Software Factories and Software Product Lines

VHDL Verhaltensmodellierung

Mächtigkeit von WHILE-Programmen

Requirements Engineering für IT Systeme

Oracle 9i Real Application Clusters

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

Business-Rule-Management als Instrument des Software-Reengineering

FB Informatik. Fehler. Testplan

Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Programmierung in C. Grundlagen. Stefan Kallerhoff

Model Driven Architecture Praxisbeispiel

Objektbasierte Entwicklung

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Transkript:

AutoFocus2 Einführung Modellbasierte Entwicklung verteilter, eingebetteter Systeme

Agenda AF2 Überblick, Historie und Ziele AutoFOCUS Modellierung Modellierungssichten Konsistenzprüfung Semantik Codegenerierung AutoMoDe Modellierung Zusätzliche Modellierungssichten Konsistenzprüfung Semantik Deployment Zusammenfassung und Fragen

AutoFocus2 integrierter, erweiterbarer CASE Prototyp Kontinuierliche Entwicklung seit 1995 Modellierung Qualitätssicherung Simulation Requirements ModelChecking Processsupport Control Systems Constraints CodeGen TestGen

Historie AutoFOCUS (STP 1996) Dokumentenorientiert Client/Server Design Quest (BSI Projekt 1999) Werkzeuganbindungen: VSE II, SMV, SATO, SPIN AutoFLEX (STP 2003) Redesign und Reimplementierung Modellbasiert / MVC-Architektur AutoRAID (STP 2004) AutoMoDe (Industrieprojekt 2005) AF2 vereinigt Quest, AutoFLEX, AutoRAID und AutoMoDe

Aktuelle Projektreferenzen Verisoft Automotive AutoFocus Task Model Beweis von LTL Eigenschaften durch ModelChecking AutoMoDe Definition eines spezifischen Entwicklungsprozesses für die Entwicklung von Automotive Software Integriertes Modell mit verschiedenen Abstraktionsstufen Komplexe Fallstudie: 30000 AutoFocus Objekte MEwaDis (2004 2005) Modellierung von Mensch-Maschine-Schnittstellen mit AF2 Nutzung des Codegenerators zur OSGi-Bundle-Erzeugung Erweiterungsplugin: OSGi-Bundleeditor

Ziele von AutoFOCUS 2 für den Lehrstuhl Innovatives Werkzeug in Projekten Projektspezifische Anpassung und Erweiterung Konservierung des in Projekten generierten Wissens Fortentwicklung der Vision modellbasierter Entwicklung eingebetteter Systeme Darstellung der lehrstuhleigenen SE-Kompetenz Experimentierplattform für Bachelor-, Masterarbeiten, Promotionen Studentische SE Projekte und Praktika

Agenda AF2 Überblick, Historie und Ziele AutoFOCUS Modellierung Modellierungssichten Konsistenzprüfung Semantik Codegenerierung AutoMoDe Modellierung Zusätzliche Modellierungssichten Konsistenzprüfung Semantik Deployment Zusammenfassung und Fragen

Motivation AutoFOCUS Modellierung reaktiver Systeme Komponentenbasierte Top-Down Entwicklung Wohlfundierte Semantik Formales Berechnungsmodell: FOCUS Theorie CASE Werkzeug zur Umsetzung von SE-Methoden

Modellierungssichten AutoFOCUS Systemstruktursicht System Structure Diagramm Verhaltenssicht State Transition Diagramm Datensicht Data Type Definitionen

Modellierung: System Structure Diagramme Kanalname : Typ Komponente Eingabeport Ausgabeport

Hierachische Dekomposition von SSD Dekompositionsmarkierer Dekomposition erlaubt Abstraktion Struktur ist verhaltensinvariant Atomare Komponenten sind entscheidend

Von Struktur zu Verhalten System Structure Diagramm (SSD) Komponenten, Ports, Kanäle Hierarchische Substrukturen Komponentenlokale Daten => Verhalten atomarer Komponenten = State Transition Diagramme

Modellierung: State Transition Diagramme Initialzustand Interfacepunkt Transitionseigenschaften

Hierarchie (Beispiel)

Modellierung: Data Type Definitionen Funktionale Sprache: Quest-F Typen Basistypen: Int, Float, String, Char, Set, Array Implementierungstypen: int4,, int32, uint4, Terme Transitionbedingungen, Ein- und Ausgaben Konstanten Funktionen Einfache Berechnungen Nutzerdefinierte Datentypen Nicht: Zustände & Systeme Ähnlich: ML, Haskell (Gofer)

DTD Beispiel Datentypdeklaration Funktionsdeklaration == und!= Operator überladen

Typklassen EQ ==,!= : EQ, EQ -> Bool ORD <, <=, >=, > : ORD, ORD -> Bool NUM +, -, *, / : NUM, NUM -> NUM Typklassenvererbung: NUM ORD EQ

Polymorphie und Typinferenz Modell mit Typvariablen Typcheck inferriert Typen Ziel Bibliothek polymorpher Standardkomponenten Wiederverwendung gleicher Komponenten

Konsistenzprüfung AutoFOCUS Typcheck Sind die Typen von Kanälen, Ports, lokalen Variablen und Transitionstermen konsistent? Spezifische Konsistenzbedingungen mit CCL Ähnlich OCL Direkte Spezifikation von prozess- und domänenabhängigen Konsistenzbedingungen im Werkzeug Siehe Prozessunterstützung (später!)

Semantik AutoFOCUS FOCUS Theorie: time-synchronous components Komponenten arbeiten parallel in synchronem Takt Auftreten und Ausbleiben von Nachrichten wird explizit unterschieden und im Verhalten genutzt Kanäle verzögern Nachrichten Ausgaben der Quellkomponente = Eingabe der Zielkomponente im nächsten Zeittick Ausgabeports haben Initialwerte für ersten Zeittick Berechnungsschritt von Automaten: Vorbedingung erfüllt & Eingabemuster passend => Ausgaben berechnen & Nachbedingung setzen

Codegenerierung AutoFOCUS In AF2 nur Java Ada und C Code Generator nicht portiert aus AF1 und Quest C Codegenerator für AF2 von Verisoft in Arbeit In MEwaDis lieferte Codegenerator Deployment-Code der mit etwas Gluecode zu OSGi-Bundles wurde

Agenda AF2 Überblick, Historie und Ziele AutoFOCUS Modellierung Modellierungssichten Konsistenzprüfung Semantik Codegenerierung AutoMoDe Modellierung Zusätzliche Modellierungssichten Konsistenzprüfung Semantik Deployment Zusammenfassung und Fragen

Motivation AutoMoDe Eingebettete Systeme in Steuer-/Regelungstechnik Ähnlich zu MATlab/Simulink Ascet-SD SCADE Synchrone Datenflusssprache wie Esterel/SCADE Entwicklungsmethodik mit Abstraktionsebenen Funktionsanalyse Funktionsdesign Logische Architektur Technische Architektur

Modellierung: Data Flow Diagramme Datenfluss Hierarchischer DFD Block Atomarer Block Mode Block Blockfunktion Verzögerungsblock

Modellierung: Mode Switching Diagramme MSD ControlUnit des Marslander

Konsistenzprüfung AutoMoDe Typcheck Für DFDs grundsätzlich wie bei AutoFOCUS Zusätzlich Komponentenfunktionen Mode Switch Bedingungen Clockcheck Sind die Nachrichtenfrequenzen konsistent? Kauslitätscheck in DFDs Sind alle Feedbackschleifen verzögert? ODL Checks und Transformationen für die jeweilige Abstraktionsebene und Modellsicht

AutoMoDe Semantik Funktionsblöcke sind durch Kanäle partiell geordnet Funktionsberechnung gemäß dieser Ordnung Verzögerungen / kausale Feedbackschleifen durch explizite Verzögerungsblöcke AutoMoDe Semantik ist Basis für Simulator Verzögerte AutoFOCUS Kanäle über delay-blocks simulieren

Deployment AutoMoDe Struktur und Verhalten in AutoFOCUS 2 Clustering und Codegenerierung über ASCET-SD Methodisch zwei Möglichkeiten: Deployment before CodeGen C-Code für ganze ECUs Keine RTE CodeGen before Deployment C-Code für Cluster AutoSAR RTE Konzeptuell widerspricht AF2 AutoSAR nicht

Agenda AF2 Überblick, Historie und Ziele AutoFOCUS Modellierung Modellierungssichten Konsistenzprüfung Semantik Codegenerierung AutoMoDe Modellierung Zusätzliche Modellierungssichten Konsistenzprüfung Semantik Deployment Zusammenfassung und Fragen

Zusammenfassung AF2 Modellierungssichten Struktur: SSD Verhalten: STD Daten: DTD Datenflussnetze: DFD Betriebsmodi: MSD Sichten in gemeinsames Datenmodell integriert Konsistenzüberprüfung Simulation auch kombinierter AutoFOCUS / AutoMoDe Modelle möglich, da gemeinsame Basis Codegenerierung und Deployment: AutoFOCUS => Java AutoMoDe => ASCET-SD

Fragen AF2 vs. Rhapsody? AF2 hat methodisch integrierte Sichten, dezidiertes Werkzeug Vorgegebene Verknüpfung von Modellen / Modellsichten Keine freien Modellelemente wie Kreise, Rechtecke, Textannotation AF2 Stereotypen? Parser für Stereos in Kommentaren vorhanden Kommentare an: Komponente, Port, Kanal, Zustand, Transition AF2 dienstbasiert? Kein eigener Dienstbegriff MEwaDis: Komponenten als Dienste AutoMoDe: Funktionsanalyse Architektur (High-Level SSD) AF2 in XMI? Möglich, aber nicht geplant.

Fragen AF2 Lizenzmodell? Freeware Closed-Source AF2 Referenzprojekte Beispielprojekte für verschiedene Features AutoFocus Bilderbuch AF2 Architektur Im Wesentlichen M-V-C auf Metamodell basierend GEF von Eclipse für Editoren

AutoFocus 2 Downloads http://www4.in.tum.de/~af2

Visualisierung AutoFOCUS / AutoMoDe AutoFOCUS Kreis Ports Channel.immediate = false AutoMoDe Diamant Ports Channel.immediate = true Gemeinsame Nutzung in Modellen möglich

Simulator GUI Simulator-Nutzerschnittstelle Simulationstrace Systemtick Systemumgebung / Nutzerschnittstelle Kanalbelegung

Simulator GUI Aktiver Zustand Variablenbelegungen

Simulationsimplementierung Kopieren der simulierten Komponente Transformation aller SSDs und MSDs in ein gesamtes DFD SSD Transformation Alle Kanäle werden unverzögert Ursprünglich verzögerte Kanäle mit FBY Block ergänzen MSD Transformation Einbettung von DFDs atomarer Modes in Schaltungslogik Vgl. nächste Folien Portsemantik für nicht belegte Ports eines Simulationsschrittes Flush Value (gibt NoVal aus) Keep Value (gibt letztes Signal erneut aus) Default Value (gibt Vorgabewert aus)

Simulator - Benutzermodell

Simulator - Berechnungsmodell c2in c2in1 when delta1=one DFD von atomarem Mode c2in1 when delta1=zero if pre_delta=zero then case c2in==true then One when clock(c2in) else Zero when clock(c2in) esac else case c2in==false then Zero when clock(c2in) else One when clock(c2in) esac fi merge delta1=one then c2out else c2out1 egrem Msg(Zero) fby delta1