Domain Specification Language (DSL)
Vienna Development Method
Programmentwicklung mit VDM
Fangen wir mit den Vorteilen an:
- Die VDM-Basistypen decken in der Praxis fast alle Anforderungen ab;
obwohl ihre Anzahl relativ gering ist, können problemlos auch große Systeme
spezifiziert werden, z.B. die formale Definition von Programmiersprachen als
Grundlage für Compiler -- ein Auslöser für die Entwicklung von VDM.
- Die ADT sind sehr gut wiederverwendbar, weil sie einer spezifischen
Problemstellung durch Auswahl der geeigneten Implementation (mit weiteren
Möglichkeiten zur Adjustierung) angepaßt werden können.
- Der schnelle Austausch der spezifischen Implementation eines ADT ist
durch Änderung einer Zeile in der DSL-Spezifikation möglich.
- Die Implementationen in der Bibliothek sind intensiv getestet, ihre
Korrektheit kann daher angenommen werden. Die Operationen der ADT brauchen Sie
also nicht mehr zu testen.
- Da Sie die Speicherverwaltung der dynamischen
Datenstrukturen , die die ADT repräsentieren,
nicht selbst zu programmieren brauchen, sinken die Entwicklungszeit und die
Fehler bei der Arbeit mit Pointern drastisch.
- Neue, raffinierte Algorithmen und Datenstrukturen zur Implementation von
ADT oder auch neue universelle ADT können leicht in die Bibliothek aufgenommen
werden.
- Die Realisierung von komplexen Datenorganisationsformen, die auf
rekursiven Strukturen beruhen, wird wesentlich erleichtert, da die Anwenderin
mit den normalerweise dafür nötigen Pointern nichts zu tun hat. Der Test ist
einfacher und die Wiederverwendbarkeit aufgrund der abstrakten Realisierung
hoch -- und so allgemeine und effiziente Strukturen wie Binärbäume, B-Bäume
usw. werden sehr häufig benötigt.
- Die entstehenden Programme sind fast gezwungenermaßen gut modularisiert
und dadurch sehr übersichtlich. Spätere Änderungen sind leicht möglich.
- Die im Entwicklungsprozeß entstehende Dokumentation ist ausreichend
exakt zur Beschreibung des Systems; zusätzliche informale Dokumentation ist
zwar durchaus sinnvoll, aber nicht unbedingt nötig.
VDM hat auch einige Nachteile -- sie entstehen allerdings meist durch die
Einbindung in C:
- Die Modellierung von Performance-Anforderungen ist nicht möglich. Erst
nach Fertigstellung eines lauffähigen Programms können Sie ermitteln, ob das
geforderte Laufzeit-Verhalten erreicht wird. Durch die Auswahl einer anderen,
zeitlich günstigeren Implementation für einen ADT kann das Problem aber meist
gelöst werden.
- Die Realisierung der Operationen eines ADT durch Funktionen bringt wegen
der vielen Unterprogrammaufrufe einen recht hohen Verwaltungsaufwand mit sich.
- Die Erweiterung der Operationsnamen um den Namen des ADT führt in der
Regel zu sehr langen Funktionsnamen.
Domain Specification Language (DSL)
Vienna Development Method
Programmentwicklung mit VDM
VDM Class Library