Bericht zur GPCE '07. Dipl.-Inf. Uwe Ryssel. 20. Dezember 2007



Ähnliche Dokumente
Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Generatives Programmieren

Product Line Engineering (PLE)

Einführung in Generatives Programmieren. Bastian Molkenthin

Comparing Software Factories and Software Product Lines

Übungen zur Softwaretechnik

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Studienrichtung Eingebettete Systeme

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Policy-Framework (PFW) - Eine Methode zur Umsetzung von Sicherheits-Policies im Cloud-Computing

Java Einführung Packages

Einführung in PHP. (mit Aufgaben)

BIF/SWE - Übungsbeispiel

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Modellbasierte Softwareentwicklung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Generative Prozessmodelle Patrick Otto MDD Konferenz

Erfolg ist programmierbar.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Einführung in die Java- Programmierung

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

TYPO3 Slide Lightwerk GmbH

ObjectBridge Java Edition

Nuetzlicher Kleinkram

Kurzfassung der Studienarbeit

Anbindung Borland CaliberRM

SDD System Design Document

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

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

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Informatik-Sommercamp Mastermind mit dem Android SDK

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

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

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

Test-Driven Design: Ein einfaches Beispiel

App Entwicklung mit dem Android SDK

5. Programmierschnittstellen für XML

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

Option 1: Hinzufügen eines Schritts zur Bearbeitungsliste... 2

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

... MathML XHTML RDF

32 Bachelorstudiengang Allgemeine Informatik

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

GRS SIGNUM Product-Lifecycle-Management

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

FAQs zum Bachelorstudiengang Software Engineering PO-Version Allgemeine Informationen zum Bachelorstudiengang Software Engineering

Formale Sprachen und Grammatiken

5. Programmierschnittstellen für XML

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Theoretische Informatik I

Consulting & Software Repolusk

C++ im Web mit Tntnet

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Testen mit JUnit. Motivation

Kompilieren und Linken

kleines keyword brevier Keywords sind das Salz in der Suppe des Online Marketing Gordian Hense

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

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

A Domain Specific Language for Project Execution Models

Ressourceneinsatzplanung in der Fertigung

Institut für Computational Engineering ICE. N ä h e r d ra n a m S ys t e m d e r Te c h n i k d e r Z u ku n f t. w w w. n t b.

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Präsentation Von Laura Baake und Janina Schwemer

Online-Publishing mit HTML und CSS für Einsteigerinnen

FAQs zum Bachelorstudiengang Informatik PO-Version Allgemeine Informationen zum Bachelorstudiengang Informatik

61 WHG und 91/271/EWG-Berichterstattung Prozesse und Prüfungen für den P23R aufbereiten

Whitebox-Tests: Allgemeines

SEMINAR Modifikation für die Nutzung des Community Builders

User Interface Design und Icon Library

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Informatik Programmiersprachen eine kurze Übersicht

Agenda. Lösungsentwicklungsprozess Rahmenbedingungen für arvato SPL Entwicklungsarchitektur

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

VBA-Programmierung: Zusammenfassung

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Use Cases. Use Cases

DB2 Kurzeinführung (Windows)

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Einführung in Eclipse und Java

Einführung in. Logische Schaltungen

Übungsklausur vom 7. Dez. 2007

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Java Enterprise Architekturen Willkommen in der Realität

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Grundlagen der Künstlichen Intelligenz

Architekturplanung und IS-Portfolio-

Transkript:

Fakultät Informatik Institut für Angewandte Informatik, Lehrstuhl Technische Informationssysteme Bericht zur GPCE '07 Dipl.-Inf. Uwe Ryssel 20. Dezember 2007

Inhalt Konferenz und Konferenzaustragungsort Grundlagen Auswahl an vorgestellten Problemen Eigener Beitrag Zusammenfassung 20.12.2007 Bericht zur GPCE '07 Folie 2 von 30

Inhalt Konferenz und Konferenzaustragungsort Grundlagen Auswahl an vorgestellten Problemen Eigener Beitrag Zusammenfassung 20.12.2007 Bericht zur GPCE '07 Folie 3 von 30

Konferenz GPCE Generative Programming and Component Engineering Findet jährlich abwechselnd in Nordamerika und Europa statt 2002 Pittsburgh (Pennsylvania, USA) 2003 Erfurt (Deutschland) 2004 Vancouver (Kanada) 2005 Tallinn (Estland) 2006 Portland (Oregon, USA) 1.-4. Oktober 2007 in Salzburg (Österreich) Zusammen mit der Embedded Systems Week 2008 in Nashville (Tennessee, USA) 20.12.2007 Bericht zur GPCE '07 Folie 4 von 30

Themen und Workshops Generative Programming (Programme, die andere Programme synthetisieren) Component Engineering (Komponentenorientierte Softwareentwicklung) Domain-Specific Languages (Notierung von Programmspezifikationen in einer speziellen domänenspezifischen Sprache) Workshops: AOPLE '07 (Aspect-Oriented Product Line Engineering) APGES '07 (Automatic Program Generation for Embedded Systems) 21 Vorträge GPCE + 7 Vorträge APGES 20.12.2007 Bericht zur GPCE '07 Folie 5 von 30

Austragungsort Salzburg Hauptstadt des Bundeslandes Salzburg/Österreich 150.000 EW (viertgrößte Stadt Österreichs) Geburtsstadt von Wolfgang Amadeus Mozart Altstadt seit 1997 UNESCO-Weltkulturerbe 15 v. Chr römische Stadt Iuvavum 739 Bischofssitz (bis 1803) 775 Name Salzburg nachweisbar Quelle: Wikipedia 20.12.2007 Bericht zur GPCE '07 Folie 6 von 30

Festung Hohensalzburg Wahrzeichen von Salzburg 1077 mit Bau begonnen Größte Erweiterung während des Dreißigjährigen Kriegs um 1450 Quelle: Wikipedia und hohensalzburg.com heute 20.12.2007 Bericht zur GPCE '07 Folie 7 von 30

Inhalt Konferenz und Konferenzaustragungsort Grundlagen Auswahl an vorgestellten Problemen Eigener Beitrag Zusammenfassung 20.12.2007 Bericht zur GPCE '07 Folie 8 von 30

Domain-Specific Languages (DSL) Formale Sprache, die für ein bestimmtes Problemfeld (Domäne) entworfen wurde Beispiele (textuell/grafisch) TeX (Dokumentenbeschreibung) Makefiles (Kompilierabläufe mit Abhängigkeiten) SQL (Datenbankabfragen) HTML (Websites) SysML (Modellierung von Systemen) Kann auch in andere Sprachen eingebettet werden Präprozessor/Makros (z.b. in C/C++) Erweiterung des Compilers/Interpreters 20.12.2007 Bericht zur GPCE '07 Folie 9 von 30

Component Engineering Komponentenbasierte (Software-)Entwicklung Unterteilung von Anwendungen in wiederverwendbaren Komponenten Idealfall: Neue Anwendungen werden aus vorhandenen Komponenten zusammengebaut Realität: Neu Komponenten müssen implementiert werden Vorhandene Komponenten müssen angepasst werden Idealfall nur innerhalb einer abgegrenzten Domäne (Software-Produktlinie) möglich 20.12.2007 Bericht zur GPCE '07 Folie 10 von 30

Generative Programmierung Komponentenbibliothek DSL Problembeschreibung/ Anforderungen optimierte lauffähige Programme Generator Automatische Wiederverwendung von Code Automatische Generierung von optimierten Programmen 20.12.2007 Bericht zur GPCE '07 Folie 11 von 30

Inhalt Konferenz und Konferenzaustragungsort Grundlagen Auswahl an vorgestellten Problemen Eigener Beitrag Zusammenfassung 20.12.2007 Bericht zur GPCE '07 Folie 12 von 30

Ausgewählte Probleme Welche Probleme werden mit der Generativen Programmierung gelöst? Höheren Abstraktionsstufe Lösungsbeschreibung zu komplex und fehleranfällig, Abstrahierung auf Problembeschreibung (DSL Generator Programm) Automatische Wiederverwendung Komponentenorientierte Sicht Beispielprobleme und dessen Lösungen Vermeiden von Programmierfehlern Beschreibung eines Problems zur besseren Optimierung Systemmodellierung mit mehreren Komponentenmodellen Variantenmanagement 20.12.2007 Bericht zur GPCE '07 Folie 13 von 30

Einbettung von SQL, XPath in Java, PHP Problem: String query = "SELECT id FROM users WHERE name='" + username + "' AND pw='" + password + "'"; -> SELECT id FROM users WHERE name='uwe' AND pw='abc' -> SELECT id FROM users WHERE name='uwe' AND pw='' OR 'x'='x' Lösung: Sprache (Java, PHP) erweitern String username =, pw = ; SQL q = < SELECT id FROM users WHERE username = ${username} AND pw = ${pw} >; wird von Compiler in Methodenaufrufe umgewandelt Nicht literale pw erzeugen Exceptions 20.12.2007 Bericht zur GPCE '07 Folie 14 von 30

Context-Aware Scanning for Parsing Extensible Languages Problem: Code enthält durch Erweiterungen viele verschiedene Sprachen: Java, SQL, XML, XPath usw. Jede Sprache hat eigene Schlüsselwörter, Variablennamen class Demo { int method { int SELECT, limit = 18; ResultSet rs = using c query { SELECT id FROM users WHERE users.age >= limit }; } } Lösung: Entwicklung von neuen Parser- und Scanneralgorithmen 20.12.2007 Bericht zur GPCE '07 Folie 15 von 30

Schnelle Bibliotheken mit SPIRAL Gesucht: schnelle Mathe-Bibliotheken (FFT, Matrixmultiplikation usw.) Problem: Unterschiedliche Hardware (Dual Core, Quad Core, Vektorrechner, GPU, FPGA) Zugehöriger Code (C, Assembler) muss immer an Hardware angepasst werden Optimierung durch Compiler nur in engen Grenzen möglich (schlechter C-Code kann schlecht optimiert werden) Lösung: formale Definition des math. Problems und automatische Generierung von optimierbaren C-Code 20.12.2007 Bericht zur GPCE '07 Folie 16 von 30

Schnelle Bibliotheken mit SPIRAL, Beispiel DFT mit Blocklänge N=100 Zerlegung in "Teil"-DFTs verringert Rechenaufwand Wie soll zerlegt werden? Ausprobieren!!! Verschiedene Varianten (100-1000) werden generiert und ausgetestet Beste wird genommen und in Bibliothek abgelegt siehe www.spiral.net Quelle: spiral.net 20.12.2007 Bericht zur GPCE '07 Folie 17 von 30

CALM A type-centric framework Problem: Einsatz verschiedener Komponentenmodelle Typechecking von Komponentenbeschreibungssprachen zu schwach oder zu kompliziert bzw. skaliert schlecht (z.b. OCL) 20.12.2007 Bericht zur GPCE '07 Folie 18 von 30

CALM Typisierungsebenen Lösung: Einführen einer Metaebene mit Typisierung: Styles legt Grundtypen (kinds) fest: Interface (API, NV), Module (Komponente, Funktionsblock), Connector (Methodenaufruf, NV-Binding) Modules legt Typen (types) fest: Konkrete Interfacetypen, Komponenten Scenario konkretes System (instance) Durch Styles können verschiedene Komponentenmodelle beschrieben und verknüpft werden CALM-Typsystem ist Basis von CADENA (http://cadena.projects.cis.ksu.edu) 20.12.2007 Bericht zur GPCE '07 Folie 19 von 30

Inhalt Konferenz und Konferenzaustragungsort Grundlagen Auswahl an vorgestellten Problemen Eigener Beitrag Zusammenfassung 20.12.2007 Bericht zur GPCE '07 Folie 20 von 30

Eigener Vortrag Generative Design of Hardware-in-the-Loop Models Problem: Beim Test von Steuerungen im Automobil werden Umgebungsmodelle benötigt (z.b. in MATLAB Simulink) (Modellierung des Bremssystems, der Autos, der Straße) Modelle treten in sehr vielen ähnlichen Variationen auf Kompatibilität zwischen Komponenten ist zu bewerten 20.12.2007 Bericht zur GPCE '07 Folie 21 von 30

Beispielmodelle 20.12.2007 Bericht zur GPCE '07 Folie 22 von 30

Beispielmodelle 20.12.2007 Bericht zur GPCE '07 Folie 23 von 30

Generierung der Simulink-Modelle Anforderungen Generierte Simulink-Modelle Aktive Bibliothek Generator 20.12.2007 Bericht zur GPCE '07 Folie 24 von 30

Model migration X Y? Aktive Bibliothek Generator Aktive Bibliothek von Grund auf erzeugen ist nicht praktikabel, da meist schon Komponenten vorhanden sind und diese wiederverwendet werden können Bibliotheksmigration soll automatisiert werden 20.12.2007 Bericht zur GPCE '07 Folie 25 von 30

Model analyzer Additional semantic information Model analyzer Active Library Extrahiert Aktive Elemente von existierenden Modellen Zusammenfassen der Varianten durch Vergleich der formal beschriebenen Aktiven Elemente 20.12.2007 Bericht zur GPCE '07 Folie 26 von 30

Geschlossener Entwicklungskreis Aktive Bibliothek Generator Hinzufügen einer neuen Variante zu einem existierenden AE 'Tube' Erzeugen einer neuen Variante Model analyzer 20.12.2007 Bericht zur GPCE '07 Folie 27 von 30

Zusammenfassung Konferenz GPCE Generative Programming, DSL, Komponenten Auswahl an vorgestellten Problemen und deren Lösungen Eigener Beitrag 20.12.2007 Bericht zur GPCE '07 Folie 28 von 30

Ausblick Ungelöste Probleme: Korrektheit des Generierungsprozesses Syntaxkorrektheit und Vollständigkeit Ist generierter Code immer syntaktisch richtig? Ist Code lauffähig oder fehlen Teile? Anforderungserfüllung Entspricht die generierte Lösung dem Problem, welches man z.b. per DSL formuliert hat? Beschreibungen von Abhängigkeiten OCL usw. zu komplex 20.12.2007 Bericht zur GPCE '07 Folie 29 von 30

Fragen und Diskussion 20.12.2007 Bericht zur GPCE '07 Folie 30 von 30