A class is an abstraction from a set of conceptual entities in a domain so that all the conceptual entities in the set have the same characteristics, and they are all subject to and behave according to the same rules and policies. – Executable UML, Mellor/Balcer

xUML uses the definition in Executable UML: A Foundation for Model Driven Architecture, Addison-Wesley 2002 above.

A Class is represented symbolically on a UML class diagram as a rectangle with separate rectangular compartments for a name, attributes and other model properties. But, ceci n’est pas une class. This symbol is only a visual representation of a Class, and is not the Class itself. Clearly, a Class may be represented many other ways, such as textually.




This is the name that appears inside the top compartment of a class rectangle on a class diagram. Naturally, the name may appear many other places. It should be descriptive relative to the domain subject matter.

Type: Name


Subsystem Element.Domain — This Class is a Subsystem Element in this Domain.


Subsystem Element.Number — The Subsystem Element number of this Class.


  1. Domain + Name
    Each Class has a unique name within a Domain.
  2. Domain + Element
    Elements are all numbered uniquely within a Domain.



Class is a Specialized or a Non-Specialized Class

If a Class participates in at least one Generalization, it is a Specialized Class. Otherwise, it is a Non-Specialized Class. A Specialized Class may play the role of Superclass or Subclass in each Generalization in which it participates. A Non-Specialized Class may not be a Superclass or Subclass in any Generalization.

The distinction is relevant in the interpretation of a Class instance. While an instance of a Non-Specialized Class is always a complete Object, an instance of a Specialized Class represents only some Facet of an Object.