The PowerDesigner public metamodel uses standard UML concepts:
Public Names - Each object in the metamodel has a name and a code corresponding to the public name of the object. The public name is the unique identifier of the object in a model library or package (for example, PdCommon) visible in the Modules diagram in the metamodel. Public names are used in the PowerDesigner XML model files (see Model Files and the PowerDesigner Metamodel) and in the GTL (see the Customizing Generation with GTL).The public name does not always match the object's name in the PowerDesigner interface.
Classes - are used to represent metadata in the following ways:
Abstract classes - are used only to share attributes and behaviors, and are not visible in the PowerDesigner interface. Instantiable classes inherit from abstract classes via generalization links. For example, NamedObject is an abstract class, which stores standard attributes like name, code, comment, annotation, and description, which are inherited by most PowerDesigner design objects.
Instantiable/Concrete classes - correspond to objects displayed in the interface. They have their own attributes, such as type or persistence, and they inherit attributes and behaviors from abstract classes through generalization links.
Class attributes - are class properties that can be derived or not. Classes linked to other classes with generalization links usually contain derived attributes that are calculated from the attributes or collections of the parent class. Neither derived attributes, nor attributes migrated from navigable associations, are stored in the model file. Non-derived attributes are proper to the class, and are stored in the model and saved in the model file.
Associations - are used to express the semantic connections between classes called collections. In the association property sheet, the roles carry information about the end object of the association. In the PowerDesigner metamodel, this role has the same name as a collection for the current object. PowerDesigner objects are linked to other objects using collections.
Associations usually have only one role, which is at the far end of the association from the class for which it represents a collection. In the following example, Identifier has a collection called Attributes:
When associations have two roles, both collections cannot be saved in the XML file, and only the collection with the navigable role will be saved (see Model Files and the PowerDesigner Metamodel).
Composition – expresses an association where the children live and die with the parent and, when the parent is copied, the child is also copied. For example, in package PdCommon, diagram Option Lists, class NamingConvention is associated with class BaseModelOptions with 3 composition associations: NameNamingConventions, CodeNamingConventions, and NamingConventionsTemplate. These composition associations express the fact that class NamingConvention would not exist without class BaseModelOptions.
Generalizations - show the inheritance links existing between a more general, usually abstract, class and a more specific, usually instantiable, class. The more specific class inherits from the attributes of the more generic class, these attributes are called derived attributes.
Comments and notes - explains the role of the object in the metamodel. Some internal implementation details are also available in the
page of the classes property sheets.