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.
|