Beginning with UML 2.0, the UML Specification was
split into two complementary specifications: Infrastructure
and Superstructure. The UML infrastructure specification defines
the foundational language constructs required for UML 2.1.2. It
is complemented by UMLSuperstructure, which
defines the user level constructs required for UML 2.1.2. The
two complementary specifications constitute a complete
specification for the UML 2 modeling language.