
Branche
Wirtschaftsauskunftei
Zielsetzung
Ausgangspunkt war eine Datenhaltungs- und Pflege-Anwendung, die über mehrere Jahre entwickelt wurde. Es wurden fortwährend Erweiterungen am System umgesetzt sowie bereits implementierte Eigenschaften an neue Gegebenheiten angepasst. Durch die Vielzahl an Änderungen wurde die Systempflege immer aufwändiger, die Implementierung neuer Anforderungen immer komplexer. Ursache waren der hohe Wartungsaufwand sowie die Systemstabilität im Zusammenspiel der einzelnen Komponenten.
Durch die Migration auf eine neue Plattform sollte das Softwaresystem in den folgenden Zustand gebracht werden: die Komplexität des an mehreren Standorten betriebenen Systems sollte deutlich reduziert sowie die Wartbarkeit erhöht werden und neue Funktionen sollten mit geringem Aufwand in das System eingefügt werden können. Maßgeblich dabei war die Unveränderbarkeit der vorhandenen Kundenschnittstelle.
Kennzeichen der Projekts:
- Ablösung des vorhandenen CMS-Systems (Microsoft-Entwicklung und SQL/Server) ohne Software-Lizenzkosten
- Neusystem ausschließlich mit Open Source Komponenten
- Software-Entwicklungswerkzeuge und Deployment-Verfahren auf Open Source Basis
- Verwendung des vorhandenen IBM UDB Datenbanksystems auf Linux Basis
Lösung
Bei der Migration des Systems wurden die Zahl der Betriebsstandorte und die Varianz der verwendeten Technologien reduziert und auf eine moderne Basis gestellt. Das System setzt sich aus einem Batch-Subsystem für die Massendatenverarbeitung sowie einem Web-Subsystem zur Wartung der Anwendung zusammen. Der Online-Zugriff für die Kunden ist über Web Services realisiert.
Als Basis für die beschriebenen Anwendungen dient das Datenbanksystem DB2 UDB von IBM. Das Batch-Subsystem ist dabei als Satz selbstständiger Java-Programme konzipiert, die sich in die auf Kundenseite vorhandene Batch-Steuerung mit UC4 auf Linux (SLES 9) integrieren. Für den Zugriff auf die Daten wird die Java Persistence Architecture (JPA) in Verbindung mit Spring (Framework) eingesetzt. Aus Performancegründen wurde insbesondere auf ausgewogene Verteilung von I/O-Last und CPU-Last auf Datenbank- und Applikations-Server Wert gelegt. Einlieferung von Kundendaten und Auslieferung der Verarbeitungsergebnisse werden im XML-Format abgewickelt.
Das Web-Subsystem basiert auf Apache Tomcat. Die Persistenzebene ist auch hier mittels JPA mit Spring implementiert. Die Benutzeroberfläche wurde als Rich-Client-Anwendung mit Hilfe von Java Server Faces (JSF) und der JSF-Komponentenbibliothek IceFaces realisiert. Für die Authentifizierung und Autorisierung der Benutzer wurde das kundenseitig vorliegende LDAP-System auf Novell eDirectory verwendet.
Vorgehen
Zu Beginn der Arbeiten wurden das bestehende Softwaresystem und die damit realisierten Geschäftsprozesse einer gründlichen Analyse unterzogen. Darauf aufbauend wurden 16 Batch Use Cases, 12 Online Use Cases und 6 WebService Use Cases identifiziert. Die Use Cases wurden anhand ihrer technologischen Risiken und ihrem Wert für das Geschäft priorisiert und in Iterationen eingeteilt. In den frühen Iterationen wurden zuerst die Use Cases implementiert, die sowohl ein hohes technisches Risiko, aber auch einen hohen Geschäftswert darstellten. Jede Iteration wurde durch ein Timeboxing-Verfahren im Umfang begrenzt. In den einzelnen Iterationen wurde die Software mit den Grundsätzen der agilen Softwareentwicklung umgesetzt.
Jede Iteration enthält die Aufgaben:
- Planung der Iteration
Eingesetzte Tools:
- Mantis für die Aufgabenverfolgung
- Detaillierung der Anforderungen und Abstimmung mit dem Kunden
Eingesetzte Tools:
- Word-Dokumente mit strukturiertem Text
- UML-Diagramme
- Design der Implementierung mit OOA/OOD
Eingesetzte Tools:
- UML-Diagramme
- Implementierung der Anforderungen und Entwicklertest
Eingesetzte Tools:
- Eclipse als Entwicklungsumgebung
- Sonatype M2Eclipse Plugin für Maven2
- SoapUi zum Testen von WebServices
- Subversion als Versionsmanagementsystem
- JavaDoc für die Source Code Dokumentation
- JUnit für Entwicklertests
- Maven als Build- und Dependency-Management-System
- Hudson als Continuous Integration Tool
- Sonar zur Ermittlung von Codemetriken, wie zum Beispiel Testabdeckung, Codeduplizierung, Codekomplexität, Coding Style Konformität, etc.
- Test der Implementierung mit Testvorbereitung
Eingesetzte Tools:
- Word-Dokumente mit strukturiertem Text
- Excel für die Testplanung und Testdatenerfassung
- Mantis für das Issue-Tracking von Anforderungen, Fehlern, etc.
Die Entwicklung wurde durch Aufteilung in Komponenten erleichtert, wodurch gleichzeitig der Grad der Wiederverwendung erhöht wurde. Der Einsatz von Maven als Build-Werkzeug erzeugt durch sein Dependency Management jederzeit reproduzierbare Builds und wird sowohl auf den lokalen Entwicklungsrechnern als auch auf dem Continuous Integration Server eingesetzt. JUnit-Tests in Verbindung mit Continuous Integration (Hudson) und Code Metriken (Sonar) helfen, das geforderte Maß an technischer Qualität zu erreichen und zu gewährleisten. Die fachliche Qualität wird durch die Tests abgesichert. Für das Bugtracking, die Iterationsplanung und Aufgabennachverfolgung wird Mantis eingesetzt.
Leistung der cimt ag
Die cimt ag hat den Kunden während des gesamten Projekts hinsichtlich der Technologieauswahl und des Softwareentwicklungsprozesses beraten. Nahezu die komplette Umsetzung des neuen Systems wurde durch die Mitarbeiter der cimt ag durchgeführt, die für alle Leistungen vor Ort anwesend waren. Dadurch konnten die Mitarbeiter durch ihr Spezialwissen zu den verwendeten Technologien schnell auf Kundenwünsche reagieren. Mitarbeiter des Kunden wurden durch gezieltes Coaching in die Entwicklungsprozesse integriert. Die aus den Entwicklungsprozessen gewonnene Erfahrung konnte auf andere Projekte beim Kunden übertragen werden.
Nutzen für den Auftraggeber
Der Kunde hat sich aufgrund der Beratungsleistung von cimt für eine tragfähige und zukunftssichere technologische Plattform entschieden. Durch die Modularisierung ist die Wiederverwendung einzelner Komponenten in anderen Zusammenhängen der Unternehmens-IT gesichert. Der Einsatz etablierter Open-Source-Technologien trägt zu einer optimierten Kostenstruktur im Betrieb bei. Durch die Reduzierung von Technologie-Varianz und Standortanzahl ist die Wartbarkeit der neu entwickelten Anwendung gegenüber der Altanwendung deutlich gesteigert worden.
Ansprechpartner
Weiterführende Informationen zu diesem und ähnlichen Projekten erhalten Sie bei:
Christian Kreutzmann / Tel.: +49 (40) 53302-0
