Proposes several new object-oriented (OO) software-specific techniques that are useful in the maintenance of OO software, especially C++ programs. The proposed techniques include: (1) new OO-specific dependence relations (such as class, message and declaration dependence); (2) algorithms to construct a hierarchical C++ dependence graph (C++DG) to capture these dependences from the source code; (3) several new slicing techniques (such as class, message, constrained and recursive slicing), besides the existing slicing techniques (such as program, variable and condition slicing) for OO programs. Next, the paper discusses the application of the dependence and slicing concepts to other maintenance activities such as ripple effect analysis (REA) and regression testing. Finally, the paper presents the design of an integrated environment, Omega, that implements many of these techniques for C++ program maintenance. Omega has been demonstrated in various industrial sites in the USA and Japan since May 1995.