Software Development

Mastering Legacy Code (Java)

Visualising, analysing and extending legacy code. Writing tests for legacy code. Recognising and resolving typical legacy code problems.


For many developers, working with complex, incomprehensible code is a day-to-day chore. If in addition no reliable automated tests are available for this code then it fulfills all criteria for legacy code – the age of the code doesn’t factor into it.

In practice code like this still has to be modified and expanded, often repeatedly. But changing such code is a risky business. Due to the presence of a large number of awkward dependencies, it is usually impossible to write tests without modifying the code.

But how do you implement these changes without introducing new bugs? And how do you write tests for incomprehensible code, for which you don’t even have proper specifications? How do you know what impact these changes might have? Where do you even start when it comes to writing tests and improving the code?

This course provides answers to these questions and, using hands-on exercises, provides you with the tools you need to work with legacy code methodically and successfully. All exercises are based on real world legacy code.


Course participants will master methods for analysing, testing, expanding and improving legacy code.

Target group

The course is aimed at all developers who regularly have to deal with complex, hard to analyse code.

Prerequisites: Please bring a notebook with Java JDK 7 or higher installed as well as an IDE with Code Coverage Visualisation (IntelliJ Ultimate or Eclipse with EclEmma Plugin) to the course. 

Scheduling Overview


Alles Wissenswerte auf einen Klick.

Other courses on the topic