A Metamodel for Package Extension with Renaming Abstract. Package extension and template mechanisms were originally pro- posed as part of the Catalysis method. It has since been suggested that they can be used to capture patterns and for aspect-oriented modelling and meta- modelling. This paper provides a rigorous metamodel definition of the pack- age extension mechanism. It turns out that the definition is more subtle than one might at first think, and some of the subtleties are exposed in the paper. The paper concludes with an overview of how the core definition may be ex- panded to include templates and to deal with a richer base language. Tool im- plementation is also discussed. 1 Introduction Package extension and package template mechanisms have been identified as potential- ly useful mechanisms in both modelling and metamodelling. They were introduced as part of the Catalysis method in [6], as a means of separating out different subject areas of an application model into packages, which can then be merged using package exten- sion. Package templates are then used to capture common patterns of modelling that can be reused from across applications and across domains. This work has since be recog- nised as one approach to aspect-oriented software design [10], and is similar to the mod- el merge operation described in [4][5]. In metamodelling, the mechanisms are being used to assist with the definition of families of languages, in two ways. Package extension allows definitions of fragments of language to be developed separately and then merged to form complete languages; package templates allow patterns of language definition to be distilled and then applied consistently across the definition of languages and their components. This results in a consistently architected, more complete and readable definition. For more details on the application of these mechanisms to metamodelling see [1][2][3][8]. The 2U submission [1], in particular, has a definition of the central core of UML rendered in this way. This paper is the first in a series that aims to provide a rigorous metamodel defini- tion of the package extension and template mechanisms. The focus of this paper is the package extension mechanism defined on top of a base language for structural model- ling, including packages (of course), classes, attributes, associations and constraints. Further papers will extend this definition in two ways: by layering a definition of tem- plates on top; and by broadening the base language to include constructs for modelling dynamic behaviour. A metamodelling approach has been taken for three reasons: it makes the definition accessible to the wider modelling community; it provides direct in- Tony Clark 1 , Andy Evans 2 , Stuart Kent 3 1. King’s College London, UK. anclark@dcs.kcl.ac.uk 2. University Of York, UK. andye@cs.york.ac.uk 3. University of Kent, UK. sjhk@ukc.ac.uk