The Unified Modelling Language (UML) is a diagrammatic notation widely used in the computing industry and often taught in universities as a way to represent software requirements specifications and design descriptions. In this paper we identify a number of problems associated with teaching UML and how we have minimised their impact by making use of the Executable/Translatable UML (X T UML). We describe two case studies that demonstrate the benefits we have gained by using X T UML in our undergraduate and graduate teaching programs.