Wiederverwendbarkeit von Komponenten ist ein Plus der objektorientierten Systementwicklung. Wie wird die Komponentenentwicklung jedoch gewinnbringend organisiert? Welche Faktoren sind für die pragmatische und effiziente Entwicklung komponentenbasierter Anwendungssysteme kritisch?

Die Entwicklung von wiederverwendbaren Komponenten ist komplex und erfordert eine vorausschauende Entwicklung, über das aktuelle Anwendungsprojekt hinaus.

Komponenten und Frameworks werden bedarfsgerecht aufgrund von konkreten Anforderungen aus Anwendungsprojekten, jedoch separat von den Anwendungssystemen entwickelt.

Die Strukturen der einzusetzenden Frameworks und Komponenten müssen zueinander passen und dem gleichen Strukturmodell (z.B. Enterprise JAVA Beans) folgen. Dieses Strukturmodell wird durch die System- und Software-Architektur vorgegeben.

Die Entwicklung fachlicher und technischer Komponenten erfordert speziell ausgebildete Architekten und Modellierer. Diese verfügen über ein tiefes Fachwissen und haben spezielle technische Kenntnisse über Plattformen und Implementationen.

Um möglichst einfach bei der Anwendungsentwicklung benutzbar zu sein, müssen Frameworks und Komponenten standardisiert und umfassend dokumentiert sein und durch ein intensives Beratungsprogramm transferiert werden.

Methodisch versierte Anwendungsmodellierer sind für die effiziente Erhebung der Anforderungen und die kritische Betrachtung der Spezifikationen zuständig.

Vor der "wilden" Entwicklung ist ein Kennenlernen von möglichen Bausteinen und Funktionalitäten der Entwicklungsumgebung sehr ratsam. Dadurch werden die reichhaltig vorhandenen Basisklassen und die gekauften Komponenten als kostengünstige und qualitativ hochwertige Infrastruktur erst sinnvoll genutzt.

Im konkreten Entwurf ist rechtzeitig der Satz von tatsächlich wiederverwendbaren Bausteinen zu identifizieren. Vorhandene Komponenten werden sofort integriert, während potentielle zukünftige Komponenten zunächst lediglich abgegrenzt werden. Wenn diese im laufenden Anwendungsprojekt benötigt werden, ist an dieser Stelle ein separates Komponentenprojekt zu starten.

Einmalige noch zu erstellende Systemfunktionen sind zu identifizieren und im Anwendungsprojekt zu realisieren. Fachexperten werden bei der Entwicklung der Anwendungsfunktionen eingebunden. Benutzer und Prozessexperten werden bei der Formulierung der Anforderungen an das System und zur Abstimmung der Prototypen des zukünftigen Anwendungssystems direkt beteiligt (Maßschneider-Modell).

Die Entwicklung des Anwendungssystems startet früh, sobald 80% der Anforderungen mit 20% Aufwand modelliert wurden. In 5-7 abschnittsweise geplanten Prototypen wird das Anwendugssystem über konkret geplante Meilenstein-Zyklen entwickelt, getestet und konsolidiert.

Der professionelle Anwendungsentwickler beherrscht ein weites Spektrum leistungsfähiger Werkzeuge. Er wechselt im Entwicklungsprozess differenziert zwischen der grafischen Modellbildung, der symbolischen (textuellen) und visuellen Programmierung, sowie zwischen der Testumgebung und der Umgebung zum Objekt-Konfigurationsmanagement.

Der einmalige Durchlauf über ein Ergebnis der Projektarbeit bringt keine ausreichende Qualität. Zwischenergebnisse müssen manchmal auch vollständig verworfen werden. Insbesondere ist das einmalige Machen von Fehlern ein wichtiger Lernprozess, der selbst für erfahrene Mitarbeiter eingeplant werden muss und als Ausgangspunkt für einen nützlichen kontinuierlichen Lern- und Veränderungsprozess betrachten werden sollte.

Objektmodelle sind für den gefertigten Prototyp lediglich ergänzende Strukturen. Um einen Austausch über abstimmungsrelevante Sachverhalte im Entwicklungsteam und die spätere Wartung wirkungsvoll zu ermöglichen, sind lediglich kritische Entwurfsentscheidungen mit Bezug auf die eingesetzten Entwurfsmuster als grafische Objektmodelle zu dokumentieren. Alle weiteren einfacheren Objektmodelle sind über Reengineeringfunktionen der Modellierungswerkzeuge aus dem vorliegenden Code auf Wunsch ableitbar und sollten nicht vollständig modelliert werden.

Nach der Fertigstellung der einzelnen Prototypen erfolgt - gemäß den Vorgaben eines Objekt-Konfigurationsmodells - deren Integration zum Gesamtsystem. Die Montage zum Gesamtsystem findet mit Hilfe der Funktionalität und der Strukturen eines Objekt-Repository Werkzeugs statt. Nach Fertigstellung der gesamten Anwendung wird die Anwendung paketiert, d.h. die nicht mehr benötigten Teile der Entwicklungs- und Testumgebung werden aus dem Gesamtpaket entfernt, so dass eine minimale auszuliefernde Konfigurationsversion entsteht. Für diese Konfiguration müssen passende Installationsdateien und Installationsprogramme bereitgestellt werden.

Die Optimierung der Performance sollte erst erfolgen, nachdem die Funktionalität erstellt wurde und nur in jenen Teilen des Codes, wo unbedingt notwendig. Jeder Prototyp wird entsprechend der Qualitätsplans getestet. Die Testfälle werden früh aus den Anforderungen abgeleitet und im Entwicklungsprozess verfeinert. Folgende Arten von objektorientierten Tests sichern die Qualität auf unterschiedlichen Stufen der Systementwicklung: Klassentest, Komponententest, Systemtest, Gesamttest.