A large-scale software system is often a collection of many different kinds of software components, such as modules, command procedures and data files. These systems are very difficult to modify and maintain because of the complex and often inaccurate way of recording the interconnection information and overall system structure. To establish an integrated approach to large-scale software maintenance, a Graph Description Language (GDL) is developed to extend the Hierarchical Graph Model (HGM) to represent large-scale software systems. The GDL, which is a kind of component interconnection language, uses the concept of the graph grammar, provides a description of software components contained in a large-scale software system and specifies their allowable interfaces at different levels. In addition, the graph and relation representations of large-scale software systems can be derived from the GDL grammar.