There exist a number of large legacy software systems
consisting of millions of lines of code that drive everyday
business ranging from banking to transportation. Because of
continuous changes in business, these systems need to evolve
and undergo numerous changes such as: feature modifications, feature additions and bug fixing. Unfortunately such
large systems come with their own share of maintenance
problems.