Modifying and then validating a program with many interacting modules, such as procedures, is an expensive and complex task. Thus, a maintenance environment containing an efficient program representation and tools that access that representation to assist the user in understanding, modifying, analyzing, testing and debugging a program is needed. This paper presents our unified interprocedural graph, UIG, that combines the features of existing program representations to permit access to information for maintenance tasks. The main benefit of this approach is the reduction in storage space for the individual representations since redundant information is eliminated. Another important benefit is the savings in access time to the various graphs since all algorithms access the UIG. A single program representation also assists in program understanding since relationships among program elements are incorporated into one graph.