Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Advertisements

Von David Keß, Heinrich Wölk, Daniel Hauck
Das „Vorgehensmodell“
SCHOLA-21 Die virtuelle Lernumgebung Im Projekt lernen Sonja Cradock
SCHOLA-21 Die virtuelle Lernumgebung Im Projekt lernen Melanie Siegl
Think.com Online-Lerngemeinschaft der ORACLE ® Education Foundation Von Matthias Mörtl
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Präsentation Expression Web 2
Java: Grundlagen der Sprache
Introducing the .NET Framework
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Einführung in Visual C++
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Software Engineering WS 2009
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Thomas Schmitt | Sozialkompetenz |
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Simple Programmierung
Gliederung Einleitung eID-Infrastruktur und Komponenten
Framework for Integrated Test (FIT)
Xenario IES Information Enterprise Server. Xenario Information Enterprise Server (IES) Die neue Architektur des Sitepark Information Enterprise Servers.
Interpreter Seminar Entwurfsmuster Tobias Webelsiep
Entwicklung der Programmiersprachen
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Programmierung 1. Einführung Seite 1
Interpreter & Compiler
Quellen: Internet INTRANET Ausarbeitung von Sven Strasser und Sascha Aufderheide im Modul Netzwerktechnik, Klasse INBS Mai 2003.
Software Design Patterns
Datenbanken im Web 1.
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Software Product Line Adoption
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
Parallele Lösung von Differential-Algebraischen Gleichungssystemen und Sensitivitätssystemen Seminarvortrag Daniel Abele
Theorie des erfinderischen Problemlösens. Über TRIZ Was ist TRIZ? TRIZ und die anderen – Was sind die Unterschiede? Wann verwende ich TRIZ? TRIZ – eine.
Domänenmodellierung Georg Marth. Definition Domänenmodell ● Eine Zusammenfassung von Funktionen, Objekten, Daten und Relationen in einer Domäne. -Kang.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Für die Festsetzung der Registrierung-Fehler von Windows 8.2 müssen Sie entweder den Einsatz des manuellen Verfahrens zu machen, oder Sie können sogar.
Tobias Sammet 8DY1 Programmieren Tobias Sammet 8DY2 Programmierung ● = das Schreiben eines Computerprogramms ● Dient zur Lösung eines.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Depressive Jugendliche. Muss man zu dem Psychologen gehen?
Android Apps selbst gemacht
Anleitung zur Nutzung des Technologiesteckbriefs
Vernetzte Forschungsumgebung in den eHumanities
Das Entwurfsmuster Model-View-Controller
PowerPoint / Open Office Impress
Eine Präsentation von Sandro Schluep und Leon Wink.
Entwicklungsumgebung Lazarus
Web-Interface for Multi-FPGA Board Pamette
UB - Wiki Nutzung von Wiki-Systemen in der Universitätsbibliothek Rostock März 2006 UB / Abt. IuK /
Informationswirtschaft Wirtschaftsinformatik (Bachelor, 6. Semester)
Testresultatsvergleich mit UML-Analysemodellen und OCL-Ausdrücken
Gewachsene Architektur Das kann nicht funktionieren!
1.
Unterschiedliche Kontrollstrukturen
Von Wietlisbach, Lenzin und Winter
DiaPlan Stefan Wilcke 8. Juli 2004.
Mögliche Stoffverteilung im Grundkurs
Objects first mit BlueJ und Greenfoot
Devops David Jaroš
Continuous Integration (Kontinuierliche Integration)
Von Wietlisbach, Lenzin und Winter
Dokumentation Vanessa Henn.
Pro und Contra – Open Source bei Bibliothekskatalogen
 Präsentation transkript:

Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von

Sascha Draffehn2 Inhalt ● 1 Begriffserläuterung ● 2 Motivation ● 3 Vor- und Nachteile ● 4 Arten von DSL ● 5 Beispiele für DSL ● 6 Einsatzszenarien ● 7 Fazit ● 8 Quellen

Sascha Draffehn3 Domänenspezifische Sprache ● (englisch domain-specific language, DSL) ● Ist eine formale Sprache, die speziell für ein bestimmtes Problemfeld (Domäne) entworfen wird ● Beim Entwurf soll ein hohes Maß an Problemspezifität erreicht werden d.h. die Sprache soll nur das enthalten was unbedingt notwendig ist um die Probleme der Domäne darzustellen ● Gegenteil von universell einsetzbaren Programmiersprachen wie Java, C ● Entwickelter Quelltext kann vollautomatisch in Quellcode einer universellen Programmiersprache umgewandelt werden

Sascha Draffehn4 Motivation ● Implementation von Software durch universelle Sprachen(C, Java...) ● sehr komplex, Ausführung durch ausgebildete Programmierer ● Folgen: hoher Aufwand für Spezifikation und Test, häufig fehleranfällig und nicht der Spezifikation entsprechend Steigerung der Zeit und Kosten ● Idee der DSL Sprache die auf Problem der Domäne zugeschnitten ist ● Sprachumfang nicht so umfangreich, weniger Zeit und Quellcode erforderlich ● Domänenexperte kann mit wenig Hilfe den Quellcode selber schreiben geringere Kosten ●

Sascha Draffehn5 Vorteile ● Transport des Wissens aus der Anwendungsdomäne heraus ● Domänenexperte kann mit wenig Hilfe Programm verändern ● DSL Programme meist übersichtlich, verständlich, selbst dokumentierend Produktivität und Wartbarkeit erhöht

Sascha Draffehn6 Nachteile ● DSL durch hohe Spezifikation nur bedingt wieder verwendbar ● Erstellung neuer DSLs mit Zeit und Kosten verbunden ● Fachleute nötig für Entwicklung, Pflege und kontinuierliche Anpassung(bei Domänenexperten Aufbau von Wissen erforderlich) ● Geschicktes Management des Sprachumfangs notwendig ● durch immer neue Funktionen gehen ursprüngliche Vorteile verloren ● Viel automatisch erzeugter Quellcode weniger effizienter Quellcode

Sascha Draffehn7 Arten von DSL 1.Statisch separate domänenspezifische Sprachen ● eigener Compiler, Interpreter dadurch eigene Syntax, Semantik ● Flexibel, konfigurierbar, sehr gut spezifizierbar ● Bekannteste wenn auch teuerste Art der DSL ● hohe Kosten beim Compilerbau ● Beispiele : TeX, SQL

Sascha Draffehn8 Arten von DSL 2.Eingebettete domänenspezifische Sprachen ● Gewöhnlich in herkömmlichen universellen Programmiersprachen integriert ● Nutzung von Klassen und Prozeduren ● Nachteil : keine Nutzung von domänenspezifischen Syntax und Optimierungen ● Lösung Metaprogrammierung : Einführung von Merkmalen in Klassen und Prozeduren ● Beispiel: C++ template metaprogramming

Sascha Draffehn9 Arten von DSL 3.Modular zusammensetzbare domänenspezifische Sprachen ● Jede domänenspezifische Sprache ist eine Komponente ● Gekapselte - und die aspektuelle domänenspezischen Sprachen ● Keine Beeinflussung von gekapselte DSLs auf andere DSLs aber bei aspektuellen DSLs aspektuelle DSLs schwerer zu handhaben ● Gemeinsame Implementierungsplattform notwendig ● Gute Wiederverwendbarkeit und Erweiterbarkeit

Sascha Draffehn10 Beispiele für DSLs und Werkzeuge

Sascha Draffehn11 Beispiel Handysoftware ● Handysoftware „Series60“

Sascha Draffehn12 Beispiel Handysoftware

Sascha Draffehn13 Einsatzszenarien ● Nicht für komplette Anwendungen sinnvoll ● Kleine Anwendungsteile mit bestimmten Eigenschaften ● Besonderes sinnvoll bei vielen wenn viele Änderungen vorliegen ● Keinen Einsatz bei hohen Performanceanforderungen

Sascha Draffehn14 Fazit ● Durch steigende Komplexität von Software DSLs sehr attraktiv ● Viele gute Werkzeuge erhältlich ● Führt zu Kosteneinsparungen bei richtiger Anwendung ● DSLs gut als SPL einsetzbar, jedoch Spezifikation für jedes Projekt notwendig ● Erweiterung von Domänenexperten steigert Effektivität

Sascha Draffehn15 Quellen ● Czarnecki & Eisenecker: Generative Programming ● ● ● ● ● ● Wikipedia.org

Sascha Draffehn16 Fragen, Bemerkungen? Vielen Dank für ihre Aufmerksamkeit