The exercise concerns Refactoring and Unit Testing.
It is based on the "Video Store Example" described in Chapter 1 of the book: M. Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 1999.
A more recent edition of the book has been published; nevertheless, the example documented in the first edition of the book is more suitable to the APC school environment.
The original example in the first edition of the book is in Java; it has been ported to C++ for this exercise and complemented by unit tests using the GoogleTest framework and by UML diagrams using Sparx Enterprise Architect.
The exercise is articulated over 15 steps, which incrementally improve the design of the software by applying refactoring techniques, while verifying at each step that the functionality of the code remains unchanged.
Associated lectures and documentation are distributed through the APC School web site.