Conformance


Editorial Comment:

The FTF needs to review and complete this section -- this version was derived from the “Introduction” section of the Preface in the Draft Adopted Specification.


The basic units of compliance for UML are the packages which define the UML metamodel. Unless otherwise qualified, complying with a package requires complying with its abstract syntax, well-formedness rules, semantics and notation.

In the case of the UML Infrastructure, its InfrastructureLibrary is intended to be flexibly reused by UML2, MOF2, CWM2 and future metmodels. In order to maximize its flexibility for reuse, each subpackage in the InfrastructureLibrary constitutes a separate compliance point.

All metamodels that reuse the InfrastructureLibrary should clearly specify which packages they reuse, and further clarify which packages are imported without change, and which packages are imported and extended via specialization. For example, the UML::AuxiliaryConstructs::Profiles package imports the InfrastructureLibrary::Profiles package without change, whereas the UML::Classes::Kernel package imports all the Infrastructure::Core subpackages and extends some of their classes via specialization. In the latter case, specific specializations needs to be clearly defined.

no compliance Implementation does not comply with the abstract syntax, well-formedness rules, semantics and notation of the package.
partial compliance Implementation partially complies with the abstract syntax, well-formedness rules, semantics and notation of the package.
compliant compliance Implementation fully complies with the abstract syntax, well-formedness rules, semantics and notation of the package.
interchange compliance Implementation fully complies with the abstract syntax, well-formedness rules, semantics, notation and XMI schema of the package.


Table 1 - Summary of Compliance Points
Compliance Point Valid Options
Core::Abstractions::BehavioralFeatures no, partial, complete, interchange
Core::Abstractions::Changeabilities no, partial, complete, interchange
Core::Abstractions::Classifiers no, partial, complete, interchange
Core::Abstractions::Comments no, partial, complete, interchange
Core::Abstractions::Constraints no, partial, complete, interchange
Core::Abstractions::Elements no, partial, complete, interchange
Core::Abstractions::Expressions no, partial, complete, interchange
Core::Abstractions::Generalizations no, partial, complete, interchange
Core::Abstractions::Instances no, partial, complete, interchange
Core::Abstractions::Literals no, partial, complete, interchange
Core::Abstractions::Multiplicities no, partial, complete, interchange
Core::Abstractions::MultiplicityExpressions no, partial, complete, interchange
Core::Abstractions::Namespaces no, partial, complete, interchange
Core::Abstractions::Ownerships no, partial, complete, interchange
Core::Abstractions::Redefinitions no, partial, complete, interchange
Core::Abstractions::Relationships no, partial, complete, interchange
Core::Abstractions::StructuralFeatures no, partial, complete, interchange
Core::Abstractions::Super no, partial, complete, interchange
Core::Abstractions::Visibilities no, partial, complete, interchange
Core::Abstractions::Basic no, partial, complete, interchange
Core::Abstractions::Constructs no, partial, complete, interchange
Core::Abstractions::PrimitiveTypes no, partial, complete, interchange
Core::Abstractions::Profiles no, partial, complete, interchange