Unregulated evolution of software often leads to software ageing which not only makes the product difficult to maintain but also breaks the consistency between design and implementation. In such a case, it may become necessary to re-engineer the software so that it becomes maintainable again. In this paper, we present the case study of the reengineering of the People Tracking subsystem of a surveillance system written in C++. We discuss the problems, the challenges and the approaches taken, and we show how the re-engineered product is now better maintainable. We also discuss the generation of the relevant artefacts — from requirement document through to design document. Keywords. Software Maintenance, Reverse Engineering, Re-engineering, Case Study, OO Systems.
Manoranjan Satpathy, Nils T. Siebel, Daniel Rodr&i