30.06.2014 Aufrufe

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

1.3 Erfolgsfaktoren und Risiken <strong>von</strong> DSLs 11<br />

leichtert die Wartung <strong>von</strong> Software, weil bei geänderten Anforderungen häufig nur eines<br />

<strong>von</strong> beiden angepasst werden muss und sich so die Auswirkungen besser lokal begrenzen<br />

lassen. Somit begünstigt der Einsatz <strong>von</strong> DSLs die Wiederverwendung <strong>von</strong> Software oder<br />

Modellen in anderen Anwendungsbereichen [MHS03].<br />

Die modellgetriebene <strong>Entwicklung</strong> verwendet DSL-Modelle als zentrale Artefakte bei<br />

der Softwareentwicklung. Die kompakten Modelle sind durch die Nähe zur Domäne nahezu<br />

selbst-dokumentierend. Dadurch können anders als bei der Programmierung, in der das<br />

Programm durch einen Compiler in eine ausführbare Form übersetzt wird, leichter auch<br />

weiterführende Ziele verfolgt werden: automatisierte Testcodeerzeugung, Dokumentation<br />

und statische sowie dynamische Analysen. Zusätzlich besteht für DSLs im Gegensatz zu<br />

GPLs nicht der Zwang, dass sie ausführbar sein müssen [MHS03], was ein anderes Herangehen<br />

an Problemstellungen erlaubt und auch den Einsatz <strong>von</strong> DSLs in frühen Phasen der<br />

Softwareentwicklung ermöglicht.<br />

Die Risiken bei der Verwendung <strong>von</strong> DSLs liegen vor allem in den Kosten für den<br />

Entwurf, die Implementierung, Weiterentwicklung und Wartung einer DSL und den Kosten<br />

für die Schulung der Entwickler [DKV00]. Dieses Risiko ergibt sich für fast jede neue<br />

Technologie, weil Compiler für eine Vielzahl an Plattformen in hoher Qualität kostengünstig<br />

verfügbar sind. DSLs hingegen müssen relativ oft spezifisch für ein Projekt entwickelt<br />

oder zumindestens angepasst werden [DK98]. Dieser Punkt wird in dieser Arbeit<br />

insofern adressiert, als mit dem Grammatikformat eine möglichst einfache und kompakte<br />

Sprachdefinition erreicht werden kann. Ergänzend dazu kapselt das DSLTool-Framework<br />

viel Wissen, das nötig ist, um modellbasierte Codegeneratoren zu entwickeln, und verringert<br />

somit den <strong>Entwicklung</strong>saufwand. Die Schulung der DSL-Nutzer ist notwenig, kann<br />

aber dadurch vereinfacht werden, dass die DSLs aus Elementen aufgebaut werden, die zum<br />

Standardrepertoire in der Informatik gehören, was den Lernaufwand reduziert.<br />

Es ist außerdem schwierig, den richtigen Aufgabenbereich für die DSL zu definieren,<br />

um dabei einen Mehrwert für die Entwickler zu erreichen, ohne eine neue allgemeingültige<br />

Programmiersprache zu entwickeln [DKV00]. Der Entwurf einer DSL unterscheidet sich<br />

hier kaum vom Entwurf einer Programmiersprache. Geeignete Abstraktionen zu finden ist<br />

ein iterativer Prozess, in dem die Sprache immer wieder den Erfordernissen der Entwickler<br />

angepasst werden muss. GPLs haben hier den Vorteil, dass oftmals die Nutzeranzahl<br />

deutlich höher ist und sich somit der hohe Aufwand leichter amortisieren kann. Bei DSLs<br />

hingegen ist es hilfreich, wenn die DSL-Entwickler zunächst mit einer kleinen Anzahl <strong>von</strong><br />

Produktentwicklern zusammenarbeiten und so schnelle Rückmeldungen zur Verbesserung<br />

der Sprache nutzen können.<br />

Ein oft genanntes Gegenargument für den Einsatz <strong>von</strong> DSLs ist, dass der aus einer DSL<br />

erzeugte Code nicht so effizient wie eine handcodierte Anwendung ist [DKV00]. Dieses<br />

Argument gilt insbesondere, wenn die Abstraktion der DSL ungünstig gewählt ist, und<br />

erinnert an Argumente, die bei der Einführung <strong>von</strong> Hochsprachen und Compilern gültig<br />

waren. Eine Kompensation dieses Effektes ist durch Optimierungen bei der Codeerzeugung<br />

möglich.<br />

Paul Hudak fasst die Abwägung der Vor- und Nachteile <strong>von</strong> DSLs in der Abbildung 1.2<br />

zusammen, wobei ausschließlich die Kosten miteinander verglichen werden. Die beschriebenen<br />

Vorteile <strong>von</strong> DSLs in Bezug auf die allgemeinen Verbesserungen des Prozesses, die<br />

verbesserte Wartbarkeit und die Möglichkeiten der modellbasierten <strong>Entwicklung</strong> sind ebenfalls<br />

zu beachten. Paul Hudak gibt keine Maßzahl für den Schnittpunkt der beiden Kurven<br />

und die Höhe der notwendigen Anfangsinvestition an [Hud98]. Das publizierte Zahlenmaterial<br />

hierzu ist wenig aussagekräftig, weil es für DSLs im Wesentlichen die bereits zitierten<br />

Vergleiche der generierten Quellcodemenge mit der ursprünglichen Menge an DSL-Code

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!