UML is a commonly-used graphical language for the modelling ofsoftware. Works regarding UML’s effectiveness have studied projects thatdevelop software systems from scratch. Yet the maintenance of softwareconsumes a large share of the overall time and effort required to develop softwaresystems. This study, therefore, focuses on the use of UML in softwaremaintenance. We wish to elicit the practices of the software modelling usedduring maintenance in industry and understand what are perceived as hurdles andbenefits when using modelling. In order to achieve a high level of realism, weperformed a case study in a multinational company’s ICT department. Theanalysis is based on 31 interviews with employees who work on softwaremaintenance projects. The interviewees played different roles and providedcomplementary views about the use, hurdles and benefits of software modellingand the use of UML. Our study uncovered a broad range of modelling-relatedpractices, which are presented in a theoretical framework that illustrates howthese practices are linked to the specific goals and context of softwareengineering projects. We present a list of recommended practices that contributeto the increased effectiveness of software modelling. The use of softwaremodelling notations (like UML) is considered beneficial for softwaremaintenance but needs to be tailored to its context. Various practices thatcontribute to the effective use of modelling are commonly overlooked,suggesting that a more conscious holistic approach with which to integratemodelling practices into the overall software engineering approach is required.