Reference

ZEISS VisuScreen

Implemented for ZEISS Vision Care

7 March 2022
Ophthalmologist measuring visual acuity.

Structured software evolution of legacy software

The aim of the project was to advance legacy software as part of structured software evolution while increasing system maintainability and expandability. This should be taken as the basis for expanding the functionality of important core components.

Visualization of software evolution process

Image: Approach to structured software evolution acc. to the horseshoe model (Source: Tom Mens & Serge Demeyer, Software Evolution. Berlin Heidelberg: Springer Science & Business Media, 2008)

Procedure

It all started with an architecture assessment performed as part of a structural analysis lasting several days. This was used to identify critical system components that proved profitable when restructured and optimized with due consideration for the objective. In the interests of preserving software reliability, automated tests were used to increase the code coverage prior to the actual restructuring. Next, individual system components were revised as part of two subprojects. During the first subproject, it was necessary to combine the functions of different product versions in order to develop a configurable product platform. This meant a number of core components had to be redesigned. During the second subproject, one module was migrated to a new technological basis to make future module expansions both possible and more efficient.

Special challenges

The project's technical challenges lay in improving the software's quality features, without compromising its functionality. In particular, the software's character had to be retained so that the users didn't need to adapt their working processes and habits in line with the changed system. Although a migration like this always comes with certain risks, the allocated budget and the allotted time frame should not be exceeded. As regards project management, the aim was to combine the benefits of agile development with a traditional and highly regulated market environment. This included a dynamic adaptation of the scope and the option of short feedback cycles.

Technical environment

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


Share this article