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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Konstrukte zur Verfügung gestellt werden können, die die Formulierung <strong>von</strong> kompakten<br />

Testfällen ermöglichen.<br />

Ein Beispiel für eine solche DSL ist die Testing and Test Control Notation Version 3<br />

(TTCN-3) [GHR + 03]. TTCN-3 ist eine standardisierte Sprache zur Erstellung <strong>von</strong> Testfällen,<br />

wobei spezifische Programmkonstrukte wie parametrisierbare Vergleichsoperatoren,<br />

Timer und nebenläufige Ausführung nativ zur Verfügung gestellt werden. Als eine mögliche<br />

Alternative wird in [Rum04a] eine Form der Testfallmodellierung mit UML-Objekt- und<br />

Sequenzdiagrammen beschrieben.<br />

Eine weitere Möglichkeit zur Validierung der Software stellt die Spezifikation <strong>von</strong> Invarianten<br />

dar. Diese können mit Hilfe <strong>von</strong> DSLs wie Alloy [Jac02] oder OCL [OMG06b]<br />

spezifiziert werden. Model checking [CGP00] ist eine Technik, die bestimmte (temporallogische)<br />

Invarianten einer Spezifikation gegenüber einem Modell überprüft oder gezielt<br />

deren Invalidierung zeigen kann. Die verschiedenen Systeme verwenden jeweils eine bestimmte,<br />

meistens automatenbasierte DSL zur Beschreibung des Modells und eine weitere,<br />

oft logikbasierte DSL für die Spezifikation.<br />

2.2.5 DSLs zur Softwareauslieferung<br />

Die Auslieferung verteilter Anwendungen umfasst mehr als nur ein reines Installationsprogramm.<br />

Dabei sind häufig der Einsatz <strong>von</strong> Deploymentdeskriptoren und die Verwaltung<br />

der Serverzugänge notwendig.<br />

In der aktuellen <strong>Entwicklung</strong>sumgebung <strong>von</strong> Microsoft (Visual Studio 2008) ist eine an<br />

UML-Verteilungdiagramme angelehnte DSL integriert, die es erlaubt, Softwarekomponenten<br />

auf physikalische Ressourcen zu verteilen. Bei einer Modifikation der Software kann so<br />

der Auslieferungsprozess automatisiert ausgeführt werden.<br />

2.2.6 DSLs zur Softwarewartung<br />

Mit zunehmender Komplexität und wirtschaftlicher Bedeutung existierender Anwendungen<br />

werden komplette Neuentwicklungen <strong>von</strong> Software seltener und die Evolution bestehender<br />

Anwendungen auf Basis veränderter Anforderungen häufiger. Zusätzlich ist die reine Wartung,<br />

also die Konservierung der Funktionalität bei Austausch der verwendeten Technologie<br />

oftmals aufgrund veralteter Hardware oder verwendeter Software-Plattformen, eine<br />

wichtige Disziplin innerhalb der Softwaretechnik.<br />

In [KR05, KR06a] wird die Evolution <strong>von</strong> Software-Architekturen auf der Basis einer<br />

expliziten Software-Architekturbeschreibung in Form einer kompakten DSL formuliert.<br />

Der Einsatz <strong>von</strong> DSL-Technologien in der Implementierung vereinfacht oftmals auch die<br />

Evolution, weil somit Domänenwissen und technische Realisierung in DSL-Modellen und<br />

Generatoren getrennt <strong>von</strong>einander entwickelt werden. In diesem Fall kann das explizit verfügbare<br />

Domänenwissen in Form der DSL-Modelle wieder verwendet und der Generator<br />

an die neuen Gegebenheiten angepasst werden. Ein aufwändiges Reverse-Engineering der<br />

impliziten Geschäftslogik in Softwaresystemen kann dann entfallen.<br />

2.2.7 Übergreifender Einsatz<br />

Die einzelnen bisher dargestellten Aktivitäten treten bei jedem Softwareentwicklungsprozess<br />

auf. Das heißt jedoch nicht zwangsläufig, dass die Aktivitäten nicht eng miteinander<br />

verzahnt sein können oder sogar zu einem <strong>Entwicklung</strong>sschritt zusammengefasst werden.<br />

Die modellbasierte <strong>Entwicklung</strong> auf der Basis <strong>von</strong> DSLs ermöglicht dieses Vorgehen im Sinne<br />

einer ausführbaren Spezifikation. Dabei wird eine DSL verwendet, die aus der Domäne

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!