Previous UML Classes Table of Contents UML Packages Next


6.3.2 The Semantics Architecture


   Figure 6.1 identifies the key semantic areas covered by the current standard and how they relate to each other. The items in the upper layers depend on the items in the lower layers but not the other way around. (Note that the structure of metamodel package dependencies is somewhat similar to the dependency structure indicated here. However, they are not the same and

   should be distinguished. This is because package dependencies specify repository dependencies not necessarily run-time dependencies.)

   Activities State Machines Interactions


   Structural Foundations

   Figure 6.1 - A schematic of the UML semantic areas and their dependencies

   At the highest level of abstraction, it is possible to distinguish three distinct composite layers of semantic definitions. The foundational layer is structural. This reflects the premise that there is no disembodied behavior in UML – all behavior is the consequence of the actions of structural entities. The next layer is behavioral and provides the foundation for the semantic description of all the higher-level behavioral formalisms (the term behavioral formalism refers to a formalized framework for describing behavior, such as state machines, Petri nets, data flow graphs, etc.). This layer, represented by the shaded box in Figure 6.1, is the behavioral semantic base and consists of three separate sub areas arranged into two sub layers. The bottom sub layer consists of the inter-object behavior base, which deals with how structural entities communicate with each other, and the intra-object behavior base, which addresses the behavior occurring within structural entities. The actions sub layer is placed on top of these two. It defines the semantics of individual actions. Actions are the fundamental units of behavior in UML and are used to define fine-grained behaviors. Their resolution and expressive power are comparable to the executable instructions in traditional programming languages. Actions in this sub layer are available to any of the higher-level formalisms to be used for describing detailed behaviors. The topmost layer in the semantics hierarchy defines the semantics of the higher-level behavioral formalisms of UML: activities, state machines, and interactions. Other behavioral formalisms may be added to this layer in the future.