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.

36 Kapitel 2 – Entwurf und Einsatz <strong>von</strong> DSLs in der Softwareentwicklung<br />

aus Modellen. C# als eine verbreitete GPL bietet mit ihren partial classes die unabhängige<br />

Erzeugung zusammengehöriger Elemente im Zielsystem.<br />

Die Nachteile einer eigenständigen DSL-Definition gegenüber eingebetteten DSLs liegen<br />

im erhöhten Aufwand der Realisierung, da eine DSL nicht die Infrastruktur zum Beispiel<br />

bezüglich eines Typsystems übernehmen kann. Wie in [Tra08] beschrieben ist dies nicht nur<br />

ein Problem des erhöhten Aufwands, sondern auch ein Problem der Qualität der entstehenden<br />

Elemente. Diese Nachteile werden im Folgenden versucht dadurch zu kompensieren,<br />

dass die Sprache modular entwickelt werden kann und somit auf Sprachdefinitionsebene eine<br />

Wiederverwendung stattfindet. Diese Wiederverwendung <strong>von</strong> bereits erstellten Elementen<br />

ist beim Entwurf einer DSL aus wenigstens zwei Gründen sinnvoll: Erstens verkürzt<br />

sich hierdurch die <strong>Entwicklung</strong>szeit, da wiederkehrende Sprachelemente nicht stets neu entwickelt<br />

werden müssen. Dabei kann die Sprachdefinition genauso wie darauf aufbauende<br />

Algorithmen wie eine Typanalyse wieder verwendet werden. Zweitens kann der Entwickler<br />

sicher sein, dass die wieder verwendeten Elemente bereits qualitätsgesichert sind, so dass<br />

sie ohne eine erneute Prüfung genutzt werden können.<br />

Bei der <strong>Entwicklung</strong> <strong>von</strong> Modellierungssprachen ist auffällig, dass häufig Sprachfragmente<br />

wie Ausdrücke, Statements und Methoden zugrunde liegender Programmiersprachen<br />

benötigt werden, um die modellspezifischen Elemente zu ergänzen. Eingebettete DSLs können<br />

diese direkt aus der Basissprache übernehmen, was jedoch eine Übernahme der Hostsprache<br />

bedeutet. Für Modellierungssprachen ist hier jedoch teilweise die Verwendung <strong>von</strong><br />

<strong>Sprachen</strong> wie die OCL [OMG06b] wünschenswert, die dann ihrerseits auf die GPL abgebildet<br />

werden müssen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!