|Previous||UML Classes||Table of Contents||UML Packages||Next|
UML is a language with a very broad scope that covers a large and diverse set of application domains. Not all of its modeling
capabilities are necessarily useful in all domains or applications. This suggests that the language should be structured modularly,
with the ability to select only those parts of the language that are of direct interest. On the other hand, an excess of this
type of flexibility increases the likelihood that two different UML tools will be supporting different subsets of the language,
leading to interchange problems between them. Consequently, the definition of compliance for UML requires a balance to be
drawn between modularity and ease of interchange.
Experience with previous versions of UML has indicated that the ability to exchange models between tools is of paramount interest
to a large community of users. For that reason, this specification defines a small number of compliance levels thereby increasing
the likelihood that two or more compliant tools will support the same or compatible language subsets. However, in recognition
of the need for flexibility in learning and using the language, UML also provides the concept of language units.