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.

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

auch eine oder mehrere DSLs verwendet werden. Die <strong>Entwicklung</strong> einer DSL ist immer mit<br />

der Erstellung dazugehöriger Werkzeuge verbunden, die die Modelle zur Parametrisierung<br />

der in Abschnitt 1.5 beschriebenen Codegenerierungen verwenden. Wird im Folgenden der<br />

Begriff DSL-<strong>Entwicklung</strong> verwendet, ist damit nicht nur die Sprachdefinition, sondern immer<br />

auch die <strong>Entwicklung</strong> der Werkzeuge gemeint. Der Fokus einer DSL-unterstützten<br />

Softwareentwicklung liegt jedoch weniger auf der Etablierung einer Plattform wie bei den<br />

Software-Produktlinien, da die Produkte nicht zwangsläufig eine gemeinsame Referenzarchitektur<br />

verwenden müssen. Vielmehr können die Produkte auch nur insofern ähnlich<br />

sein, als die Struktur <strong>von</strong> Subsystemen oder die Realisierung bestimmter Querschnittsfunktionalitäten<br />

gleich sind. Dies ist insbesondere dann der Fall, wenn DSLs aus technischen<br />

Domänen bei der Realisierung des Produkts verwendet werden.<br />

Dieses Kapitel beschreibt zunächst in Abschnitt 2.1, welche Aktivitäten in den meisten<br />

Softwareentwicklungsprozessen auftauchen und daher im Folgenden betrachtet werden. In<br />

Abschnitt 2.2 wird dargestellt, für welche dieser Aktivitäten DSLs verwendet werden können<br />

und wie eine aktivitätenübergreifende Verwendung aussieht. In Abschnitt 2.3 wird dargestellt,<br />

was die typischen Arbeitspakete innerhalb der Aktivitäten einer DSL-<strong>Entwicklung</strong><br />

sind. Daraufhin wird in Abschnitt 2.4 erklärt, wie sich die DSL-<strong>Entwicklung</strong> und die Produkterstellung<br />

miteinander zu einem agilen Prozess eng koppeln lassen. In Abschnitt 2.5<br />

werden die verschiedenen Möglichkeiten, eine DSL zu realisieren, übersichtsartig dargestellt.<br />

In Abschnitt 2.6 wird der eigenständige DSL-Entwurf detaillierter erklärt.<br />

2.1 Aktivitäten in der Softwareentwicklung<br />

Damit DSLs erfolgreich in der Softwareentwicklung verwendet werden können, müssen<br />

sie in den Softwareentwicklungsprozess eingebunden werden. In der derzeitigen <strong>Entwicklung</strong><br />

<strong>von</strong> Softwaresystemen lassen sich grob die folgenden vier Aktivitäten identifizieren:<br />

Analyse, Entwurf, Implementierung, Verifikation/Validierung. Zusätzlich kann noch die<br />

Softwareauslieferung und -wartung betrachtet werden, die die Aktivitäten nach der Fertigstellung<br />

der Software bezeichnen. Die Analyse hat als Ziel, alle Anforderungen der vom zu<br />

erstellenden System mittelbar oder unmittelbar betroffenen Personen oder Institutionen zu<br />

erfassen. Der Entwurf nimmt diese Anforderungen als Grundlage und plant die Struktur der<br />

Software. Die Ergebnisse werden in der Implementierung verfeinert und in eine lauffähige<br />

Software umgesetzt. Die Verifikation/Validierung überprüft, ob die Ergebnisse der Analyse,<br />

des Entwurfs und der Implementierung mit den formulierten und den impliziten Anforderungen<br />

der vom zu erstellenden System mittelbar oder unmittelbar betroffenen Personen<br />

oder Institutionen übereinstimmen. Die Softwareauslieferung beschreibt den Prozess zur<br />

Installierung der Software auf den Zielsystemen. Die Softwarewartung fasst die Prozesse<br />

zusammen, die auftreten, wenn sich nach der Auslieferung der Software Änderungen an<br />

Anforderungen oder der technischen Infrastruktur ergeben.<br />

Die beschriebenen Aktivitäten finden sich in allen gängigen Softwareentwicklungsprozessen<br />

wieder, wobei jeweils eine etwas andere Terminologie verwendet wird und der genaue<br />

Inhalt der einzelnen Aktivitäten variieren kann. Zusätzlich unterscheiden sich die Prozesse<br />

auch durch die Priorisierung der Aktivitäten und die Reihenfolge ihrer empfohlenen Ausführung.<br />

Zum Beispiel wird die Softwarewartung im Wasserfallmodell [Roy70] als Betrieb<br />

bezeichnet. Iterative Prozesse wie das Spiralmodell [Boe88] verwenden grundsätzlich dieselben<br />

Aktivitäten, führen diese aber innerhalb der <strong>Entwicklung</strong> der Software wiederholt<br />

aus. Das V-Modell [VMo97] dagegen teilt die Verifikation/Validierung in mehrere Aktivitäten<br />

auf, wobei jeweils die Sicherung der Qualität auf einer bestimmten Granularität<br />

betrachtet wird. Die Weiterentwicklung des V-Modells [RB08] erweitert den Prozess um

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!