]> Ontology used to represent oo-code Jonas Tappolet licensed under a Creative Commons Attribution 2.5 Switzerland License, see http:www.ifi.uzh.ch/ddis/evo 4.1 Dynamic and Distributed Systems Group, University of Zurich, http:www.ifi.uzh.ch/ddis variable access relates a BehavouralEntity with its defined annonymous classes relation between a class and its attribute variables connection between a structural entity and its defining class A BehavouralEntity might declare a return value which is a Class Connection between a BehavouralEntity and its parameter(s) The connection between a BehaviouralEntity and its defined variables Connection between a Class and its defined BehaviouralEntities Subclass inheritance relation denotes that a Namespace (subject) is parent of another Namespace (object) Subtypes are interfaces implementations of a class The invokation of Methods or Functions (subject: caller, object: callee) inverse of accesses inverse of hasAnonymousClass inverse of hasAttribute inverse of hasDeclaredClass inverse of hasDeclaredReturnClass inverse of hasFormalParameter inverse of invokes inverse of hasLocalVariable inverse of hasMethod inverse of hasSubclass denotes that a Namespace (subject) is a child of another Namespace (object) inverse of hasSubtype Denotes which version of a path (in a version control system) this class is defined by. Links a Class with a Version of a path in a version control system. Is a string with a language dependent interpretation, that defines who is allowed to access it (for instance, 'public', 'private'…). Entities and associations may own a number of comments, where developers and tools store textual information about the object. denotes wheter a BehaviouralEntity is 'public' or 'private' Is a predicate telling whether the class is declared abstract. Abstract classes are important in OO modelling, but how they are recognised in source code is a language dependent issue. Is a predicate telling whether the method is a constructor. A constructor is a method that creates an (initialised) instance of the class it is defined on. Thus a method that creates an instance of another class is not considered a constructor. How constructor methods are recognised in source code is a language dependent issue. Denotes wheter the entity has set a 'final' flag. denotes wheter a BehaviouralEntity is a program starting point, e.g., main() method denotes wheter a class is a interface. denotes wheter an entity has set a 'static' flag the name of the entity The position of the parameter in the list of parameters. Identifies the location in the source where the information is extracted. The exact format of the qualifier is dependent on the source of the information. Usually, it will be an anchor in a source file, in which case the following format should be used file "<filespec>" start <start_index> end <end_index>. Where <filespec> is a string holding the name of the source-file in an operating system dependent format (preferably a filename relative to some project directory). Note that filenames may contain spaces and double quotation marks. A double quotation mark in a filename should be escaped with a \". <start_index> and <end_index> are indices starting at 1 and holding the beginning/ending character position in the source file. Extra position indices or whole source anchors may be added to handle anchors in files that may need to be displayed with external editors. For instance, the line and column of the character (startline, startcol, endline, endcol). Or the negative offset counting from the end of the file instead of from the beginning (negstart, negend). Is a string that is computed based on the name of the entity. Each class of entities must define its specific formula. The uniqueName serves as an external reference to that entity and must be unique for all entities in the model. Attributes are variables at Class level. A Behavioural Entity describes elements in source code that can take an active role in the code, i.e. can be executed. This is typically a method or a function. Class as a central encapsulating element combining a certain functionality in object oriented languages. A context is a container entity typically defining its own namespace and/or visibility context. Entity is the topmost container element for object oriented source code elements. a FormalParameter is an argument that is passed to a BehaviouralEntity, i.e. a method parameter. Executable (callable,invokable) element. A GlobalVariable represents the definition in source code of a variable with a lifetime equal to the lifetime of a running system, and which is globally accessible. What exactly constitutes such a definition is a language dependent issue. Implicit variables' values are given by their context. Examples are "this" and "super". A LocalVariable represents the definition in source code of a variable defined locally to a behavioural entity. What exactly constitutes such a definition is a language dependent issue. Executable (callable,invokable) element. a namespace is an abstract entity defining a certain taxonomy in programm code elements. Namespaces can occur in materialized form such as Java's packages (folders). Structural entities are data containers with a symbolic name and a (changing) value. I.e. variables