Referenz

ZEISS VisuScreen

Umgesetzt für ZEISS Vision Care

7. März 2022
Augenärztin beim Vermessen der Sehkraft.

Strukturierte Softwareevolution einer Bestandssoftware

Ziel des Projekts war es, eine Bestandssoftware im Rahmen strukturierter Softwareevolution weiterzuentwickeln und im Zuge dessen, die Wartbarkeit und Erweiterbarkeit des Systems zu erhöhen. Darauf aufbauend sollte die Funktionalität wichtiger Kernkomponenten erweitert werden.

Darstellung Softwareevolutionsprozess

Abbildung: Vorgehen bei strukturierter Softwareevolution nach dem Hufeisen-Modell (Quelle: Tom Mens & Serge Demeyer, Software Evolution. Berlin Heidelberg: Springer Science & Business Media, 2008)

Vorgehensweise

Zu Beginn erfolgte eine Bewertung der Architektur, im Rahmen einer mehrtägigen Strukturanalyse. Darauf aufbauend konnten kritische Systembestandteile identifiziert werden, für welche eine Restrukturierung und Optimierung unter Berücksichtigung der Zielstellung als rentabel einzuschätzen waren. Um die Stabilität der Software nicht zu gefährden, wurde vor der eigentlichen Restrukturierung die Codeabdeckung durch automatisierte Tests erhöht. Anschließend wurden einzelne Systembestandteile in zwei Teilprojekten überarbeitet. Im Zuge des ersten Teilprojekts war es erforderlich, den Funktionsumfang verschiedener Produktversionen zusammenzuführen, um eine konfigurierbare Produktplattform zu entwickeln. Dies machte die Umgestaltung wichtiger Kernkomponenten notwendig. Im zweiten Teilprojekt wurde ein Modul auf eine neue technologische Basis migriert, damit zukünftige Erweiterungen des Moduls möglich sind und effizienter gestaltet werden können.

Besondere Herausforderungen

Die technische Herausforderung des Projekts bestand darin, dass die Qualitätsmerkmale der Software verbessert werden sollten, ohne die Funktionalität negativ zu beeinflussen. Insbesondere galt es, den Charakter der Software zu erhalten, damit die Nutzer ihre Arbeitsabläufe und Gewohnheiten nicht an das veränderte System anpassen mussten. Obwohl ein solches Migrationsszenario immer mit Risiken verbunden ist, sollten das geplante Budget und der veranschlagte Zeitrahmen nicht überschritten werden. Im Hinblick auf das Projektmanagement galt es deshalb, die Vorteile agiler Entwicklung mit einem traditionell geprägten und stark regulierten Marktumfeld zu kombinieren. Dazu gehörten u. a. eine dynamische Anpassung des Scopes und die Möglichkeit kurzer Feedbackzyklen.

Technisches Umfeld

.NET, ASP.MVC, C#, F#, JavaScript, IIS, Knockout.JS


Share this article