Currently, the Unified Modelling Language (UML) lacks explicit abstraction mechanisms for managing complexity. Such constructs are essential for modelling problems of real world size and complexity, and in applying UML in large-scale commercial applications. Large class diagrams present major problems in understanding, particularly in the analysis stage, where diagrams need to be understood by a wide variety of stakeholders, many with little or no technical expertise. This paper proposes a refinement to UML which allows class diagrams to be represented at multiple levels of abstraction. The method is based on a solution to managing complexity of ER models, which has been successfully used in practice over a number of years. The method is soundly based on principles for organising knowledge drawn from systems theory, psychology and information science. Rather than formulating the refinement as an extension to UML (which we argue would be undesirable), we implement the approach by adapting existing language constructs.