1 Meta-level Independent Modelling Colin Atkinson and Thomas Kühne University of Kaiserslautern 67653 Kaiserslautern, Germany {atkinson, kuehne}@informatik.uni-kl.de ABSTRACT The popularity of the UML and the recent focus on its extension mechanisms has raised the general awareness of the value and importance of metamodelling. However, the effectiveness of metamodelling with the UML is being hindered by the lack of suitable notational support. In particular the stereotype mechanism is not consistently applied to the UML’s four-layer meta-architecture. The result is that different notations are used for the same concept at different meta-levels. In this paper we explain the motivation for a uniform, level-independent notation that supports the same concept in the same way regardless of its location in the meta-architecture, and then go on to suggest some of the principles upon which such a notation could be based. 1 INTRODUCTION The widespread interest in the UML has increased awareness in the user community of the value and importance of metamodelling. Whereas previously metamodelling was viewed as the exclusive concern of tool builders and language designers, with the advent of the UML it has now entered the realm of every day modelling activities. In particular, tailoring (i.e., extending) the UML to one’s special needs is expected to become a frequent activity. Even today, without support from a specialised profile mechanism, users can extend the predefined UML metamodel either indirectly by using stereotypes or directly by adding metaclasses. Unfortunately, however, much of the potential power of metamodelling is currently lost because of the lack of a proper notation for working within a multi-level environment. Although the semantics of the UML assumes that users will generally need to influence at least three meta-levels (M0, M1 and M2), the UML notation assumes that they will only work at two (M0, M1). As a consequence, not only is the UML's notational support for metamodelling non-uniform and overly complex, but the semantics of the language is distorted and overloaded with superfluous concepts. The reason for this imbalance is that until recently object-modelling notations were entirely focused on modelling at two levels. The third level only became relevant to users once they were given the opportunity to extend the modelling notation. Instead of further over-complicated extension mechanisms, what is required at this stage in the UML's evolution is the consolidation of the already available modelling mechanisms and the provision of a uniform, level-independent notation for their application. In this paper we address the issues involved in meeting this challenge. The next section briefly describes the primary semantic and notational distortions that currently limit the effectiveness of the UML for metamodelling. The following section then goes on to suggest some notational conventions by which these problems could be rectified. 2 STEREOTYPING VERSUS INSTANTIATION One of the most fundamental principles in object modelling is the instantiation 1 of a class to create an object. The UML notation for describing this situation is illustrated in Figure 1 below. anAttributeInstance = Value anObject : aClass aMethodInstance() anAttributeType aClass aMethodType() Object Class Figure 1: UML Instantiation Notation 1 For the purposes of this paper we include the assignment of attribute values to attribute instances within the general term instantiation.