18.01.2014 Aufrufe

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

Metamodellbasierte und hierarchieorientierte ... - RosDok

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.

10 Gr<strong>und</strong>lagen: Modellierung in ausgewählten Gebieten<br />

werden oder lediglich als grobe Skizze dienen. Jedoch ist anzumerken, dass die UML zu den semiformalen<br />

Spezifikationssprachen zählt, die eine Verifikation der zu erstellenden Software nicht ermöglicht.<br />

Sehr formale Ansätze nutzen textuelle, an mathematischen Modellen angelehnte Spezifikationen, die durch<br />

die strengen Vorschriften <strong>und</strong> mathematischen Symbole für Laien schwer zu verstehen sind. Hier sind<br />

u.a. die algebraischen Spezifikation abstrakter Datentypen [BM04] oder das Hoare-Kalkül [Hoa69] zu<br />

nennen. Diese Ansätze haben den Anspruch bewiesene, korrekte Software zu erstellen, die jedoch äußerst<br />

schwierig zu bekommen ist. Die Gefahr ist groß, dass Fehler in den komplizierten Beweisen vorkommen.<br />

Anforderungen an die Software lassen sich außerdem anhand der komplizierten Spezifikationen nicht mit<br />

Stakeholdern diskutieren. Somit kann es passieren, dass von falschen Voraussetzungen ausgegangen wird<br />

<strong>und</strong> obwohl der Beweis korrekt geführt wurde kann eine Software entstehen, die nicht dem gewünschten<br />

Ergebnis entspricht.<br />

Diese Ansätze sind des Weiteren äußerst teuer, da sehr lange Analysephasen vor der Implementierung<br />

durchgeführt werden müssen. Außerdem kann schwer während des Entwicklungsprozesses auf wechselnde<br />

Anforderungen der Endanwender an die Software reagiert werden, da sehr viele Analysedokumente <strong>und</strong><br />

Beweise bei veränderten Anforderungen vorgenommen werden müssen. Zudem sind die Spezifikationen<br />

nicht als Dokumentation der Software geeignet, da sie i.d.R. schwerer zu lesen sind als der Programmcode<br />

selber, auf den sie sich beziehen. Eine ausführliche Diskussion der Vor- <strong>und</strong> Nachteile von formalen<br />

Methoden in der Softwareentwicklung, die u.a. einige der oben aufgeführten Probleme beinhaltet, ist<br />

in [Gog04] zu finden.<br />

Die vielen Nachteile machen die streng formalen Methoden für weite Teile der Softwareentwicklung nicht<br />

effizient nutzbar. Für einzelne wenige Bereichen, wie z.B. Luft- <strong>und</strong> Raumfahrt, bei denen die korrekte<br />

Funktionsweise äußerst wichtig ist <strong>und</strong> wenige Anforderungen sich während des Entwicklungsprozesses<br />

ändern, finden die Methoden Anwendung. Dagegen ist gerade der Bereich der Wirtschaftsinformatik, bei<br />

denen Computer Nutzer bei der Arbeit unterstützen bzw. Arbeitsabläufe automatisieren sollen, für solche<br />

streng formalen Methoden nicht geeignet. In diesem Bereich hat man es mit permanenten Änderungen bei<br />

Geschäftsabläufen <strong>und</strong> Umstrukturierungen zu tun, so dass Software bzw. deren Entwicklungsprozess sehr<br />

flexibel sein muss.<br />

In nicht formalen, agilen Entwicklungsmethoden für Software wird die Analysephase sehr kurz gehalten.<br />

Es werden höchstens sehr informelle, visuelle Modelle (z.B. UML) als Kommunikationsmittel in der<br />

Entwicklergruppe genutzt <strong>und</strong> es wird frühzeitig zur Implementierung übergegangen. Somit sind diese<br />

Methoden eher als codezentriert zu bezeichnen. Generell ist die Kommunikation in der Entwicklergruppe<br />

bei diesen Methoden sehr wichtig. Bei den Entwicklungsansätzen sind z.B. Extreme Programming [Bec00]<br />

<strong>und</strong> SCRUM [Pic07] zu nennen. Der Vorteil hier liegt darin, dass schnell Software produziert wird <strong>und</strong> der<br />

Endnutzer in die Entwicklung der Software intensiver mit eingeb<strong>und</strong>en werden kann. Es kann rascher auf<br />

sich wechselnde Anforderungen reagiert werden. Diese Entwicklungsmethoden bergen aber auch große<br />

Gefahren. Da unmittelbar in die Implementierungsphase übergegangen wird, fehlt i.d.R. ein verlässliches<br />

Design. Ein sorgfältiger Einsatz von Desgin Patterns [GHJV02], der einen guten Softwareentwurf <strong>und</strong> damit<br />

wartbare <strong>und</strong> wiederverwendbare Software verspricht, ist damit nicht möglich.<br />

Ein Kompromiss zwischen formalen <strong>und</strong> nicht formalen Ansätzen liegen in der semiformalen bzw. leichtgewichtigen<br />

formalen Softwarespezifikation. Hier werden die erstellten Modelle auf Eigenschaften geprüft,<br />

die sie erfüllen müssen. Damit wird sichergestellt, dass ein guter (objektorientierter) Entwurf vorliegt bevor<br />

in die Implementierungsphase weitergegangen wird. Diesen Ansätzen werden u.a. ermöglicht durch die<br />

UML-Werkzeuge USE [GBR07] <strong>und</strong> Alloy [Jac03]. Das Modell wird als UML-Klassendiagramm angegeben<br />

<strong>und</strong> Objektdiagramme repräsentieren Systemzustände zur Runtime. Diese können semiautomatisch<br />

von den Tools generiert werden <strong>und</strong> sind Testfälle für das Designmodell. Hierbei können zwei Arten von

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!