The Metamodelling Language Calculus: Foundation Semantics for UML Tony Clark 1 , Andy Evans 2 , and Stuart Kent 3 1 King’s College London anclark@dcs.kcl.ac.uk 2 University of York andye@cs.york.ac.uk 3 University of Kent at Canterbury s.j.h.k@ukc.ac.uk Abstract. The Metamodelling Language (MML) is a sub-set of the Uni- fied Modeling Language (UML) that is proposed as the core language used to bootstrap the UML 2.0 definition initiative. Since it is meta- circular, MML requires an external formal semantics in order to ground it. This paper defines the MML Calculus which is used to formally define MML and therefore provides a semantic basis for UML 2.0. 1 Introduction The Unified Modeling Language [19] is a standardized graphical notation for expressing the structure and behaviour of object-oriented software systems. It is essentially a family of extensible modelling notations. The current UML def- inition lacks a number of desirable features that are currently being addressed through a co-ordinated effort to define a new version (UML 2.0). These features include enhancing the modularity and extensibility of UML and addressing the notion of UML semantics. This paper describes the semantics of the MML Calculus which used as the basis for developing the MML metamodelling language. MML is the basis of a modular semantics-rich method called MMF [7] [5] which is being proposed by the pUML group as a framework for the definition of UML 2.0. MML is a lan- guage mainly aimed at meta-modellers who are familiar with UML. This paper deals with foundational semantic issues that enable MML to be a generic meta- modelling language suitable for defining UML 2.0. Features which are outside the scope of this paper include: patterns for metamodelling; details of inheritance mechanisms; details of class instantiation; details of package extension; details of invariant checking. These issues are dealt with in [5]. The rest of this paper is structured as follows Section 2 defines the MML Calculus syntax and semantics. Section 3 defines the MML language in terms of the MML Calculus. The MML language is textual, each new construct is intro- duced and translated to the MML Calculus. Section 4 concludes by reviewing MML and describing the future directions of this work. H. Hussmann (Ed.): FASE 2001, LNCS 2029, pp. 17–31, 2001. c Springer-Verlag Berlin Heidelberg 2001