This section describes some typical tasks that occur for products in maintenance mode and how the tools in the development environment can help with each task.
Whether you wrote it or not, there's always a certain amount of time spent coming back up to speed on any piece of code. A good description of the key classes and methods or functions, or even a UML diagram, can go a long way here. Comments on how each class or header file is expected to be used, together with comments for each method or function and descriptions of their expected arguments, will also speed up your understanding.
There are some tools that can help with understanding legacy code. After grep, the simplest of these are etags and cscope, both of which generate information about source files that editors such as Emacs and vi can use to locate definitions and uses of keywords. Some editors, code browsers, and class navigators will analyze the structure of the product's source code and allow you to jump from one area to other connected areas. This is something that you should expect from any decent IDE.
Some of the more interesting tools are those that can help with refactoring a product. Refactoring is reorganizing source code so that it is easier to understand but behaves exactly as it did before being refactored. These tools often have a deeper understanding of programming languages than ordinary text editors, so they can do things such as rename a variable throughout ...