Metamodeling generalization and other directed relationships in UML Gonzalo Génova 1,2 , Juan Llorens 2 , Anabel Fraga 2 1 Facultad de Ingeniería, Universidad Andrés Bello Sazié 2325, Santiago, Chile gonzalo.genova@unab.cl 2 Departamento de Informática, Universidad Carlos III de Madrid Avda. Universidad 30, 28911 Leganés (Madrid), Spain {ggenova, llorens, afraga}@inf.uc3m.es Abstract. Context - Generalization is a fundamental relationship in object orientation and in the UML (Unified Modeling Language). The generalization relationship is represented in the UML metamodel as a “directed relationship”. Objective - Being a directed relationship corresponds to the nature of generalization in the semantic domain of object orientation: a relationship that is directed from the subclass to the superclass. However, we claim that the particular form this relationship adopts in the metamodel is erroneous, which entails a series of inconveniencies for model manipulation tools that try to adhere to the UML specification. Moreover, we think that this error could be due to a misinterpretation of the relationships between metamodeling levels in the UML: represented reality (M0), model (M1) and metamodel (M2). This problem also affects other directed relationships: Dependency and its various subtypes, Include and Extend between use cases, and others. Method - We analyze the features of the generalization relationship in various domains and how it has been metamodeled in UML. We examine the problems, both theoretical and technological, posed by the UML metamodel of generalization. We then compare it with the metamodel of other directed relationships. Results - We arrive at the conclusion that the metamodel of all directed relationships could be improved. Namely, we claim that, at level M2, the metamodel should not contain any one-way meta-associations: all meta-associations should be two-way, both for practical and theoretical reasons. Conclusions - The rationale for our main claim can be summarized as follows: connected graphical symbols do know each other, and the goal of a metamodel is to specify the syntactic properties of a language, ergo meta-associations must be two-way. This, of course, does not preclude at all the use of one-way associations at the user model level (M1). Keywords. Unified Modeling Language; Model Engineering; Metamodel; Generalization; Directed Relationship. 1 Introduction As it is well known, the generalization, or inheritance, relationship is one of the basic concepts of object oriented programming. Generalization (or better its counterpart, specialization) allows defining subclasses of a given class, so that: (1) the superclass is defined in a totally independent way of the extensions that may happen