Abstract. We present a brief description of the design of a diagrambased system that supports the development of thinking about mathematical generalisation. Within the software, the user constructs a dependency graph that explicitly shows the relationships between components of a task. Using this dependency graph, the user manipulates graphical visualisations of component attributes which helps them move from the specific case to the general rule. These visualisations provide the user with an intermediate representation of generality and facilitate movement between the specific details of the task, the appropriate generalisations, verbal descriptions of their understanding and various algebraic representations of the solutions.