zur Anforderungsanalysezum Abnahmetest

Das Projekt ecwin7

Implementierung

Das Produkt wurde auf der Basis der Tango-Spezifikation implementiert. Außer für Anregungen zur Lösung von Detailproblemen wurde dabei auf die Implementierung des Originalbeispiels kein Bezug mehr genommen.

Die Schnittstelle zwischen den Klassen unterscheidet sich deutlich vom Original, da jetzt diese Schnittstelle auf der Basis eines objektorientierten Designs definiert wurde. Dies war kein expliziter Entwicklungsschritt, und er wird deshalb auch nicht separat besprochen. Grundlage war wie üblich die Erstellung minimaler Schnittstellen und korrekter Zuordnung von Verantwortlichkeiten. Dies hat Auswirkungen auf die Sichtbarkeit (public) von Elementen.

Die technische Seite der Implementierung wird an dieser Stelle nicht besprochen, für technische Details und Werkzeuge sei auf das Originalbeispiel verwiesen. Alle wesentlichen Informationen zur praktischen Implementierung finden sich dort.

Direkte Implementierung aus der Tango-Spezifikation

Die Vorgehensweise bei der Implementierung aus einer Tango-Spezifikation ist einfach: Wenn ein Feature erfolgreich implementiert ist, wird der zugehörige Aspekt als erledigt markiert. Eine Tango-Spezifikation ist so aufgebaut, dass die zu implementierenden Eigenschaften explizit aufgeführt sind, damit ist diese Vorgehensweise praktikabel, wenn die Spezifikation hinreichend detailliert ausgeführt ist. Die vorliegende Spezifikation ist dafür geeignet.

Wenn ein gedrucktes Exemplar der Spezifikation verwendet wird, hat sich eine Strichmarkierung am Seitenrand bewährt. Wenn der Strich durchgehend ist, dann ist die Implementierung abgeschlossen. Die Tango-Spezifikation in elektronischer Form kann nicht einfach strichmarkiert werden (schlecht für den Bildschirm), stattdessen wird die Spezifikation z.B. in rote Schrift gesetzt, die implementierten Teile erhalten schwarze Schrift. Im vorliegenden Fall wurde so gearbeitet.

Zum Ablauf der Implementierung ist nichts weiter zu erwähnen. An einigen Stellen konnte die geradlinige logische Lösung nicht durchgeführt werden, da die Swing-Komponenten (JInternalFrame) etwas dagegen hatten. Der Workaround veränderte nicht die implementierungsunabhängig formulierte Tango-Spezifikation. Die so geschriebene Spezifikation veraltet nicht, nur weil technische Probleme nicht vorausgesehen wurden, dies ist in größeren Projekten ein kostenrelevanter Vorteil.

Wenn in größeren Projekten eine Designphase zwischen Anforderungsanalyse und Implementierung geschaltet ist, dann wird möglicherweise in der Tango-Spezifikation nicht die erfolgreiche Implementierung, sondern die erfolgreiche Umsetzung in das technische Design markiert. Alternativ können aber auch Tango-Spezifikation und Design-Dokument nebeneinander zur Implementierung verwendet werden. In diesem Fall wird wieder die erfolgreiche Implementierung markiert, das Design-Dokument dient dann als Wegweiser, wie die Implementierung durchzuführen ist. Diese Vorgehensweise empfieht sich, wenn Designwerkzeuge kein effizientes "Markieren" ermöglichen.

Auf einen detaillierten Komponententest der implementierten Funktionen wurde verzichtet, weil klar war, dass ein Abnahmetest folgen würde (das ist der Grund, warum das Produkt aussieht, als hätte jemand einfach den Stift fallen lassen).

Ergebnis der Implementierung: Jar-File mit Sourcen und Programm.