Understanding the Unified Modeling Language (UML) - Part 3

Sinan Si Alhir, http://sites.google.com/site/salhir/

The Unified Modeling Language

To successfully apply the UML, we must understand how the UML is holistically and cohesively organized to facilitate problem solving.

A language consists of a collection of concepts (semantics) with a notation (syntax) and rules (guidelines) governing the concepts and notation. Underlying a language and the methods that utilize a language is a foundation consisting of fundamental principles (axioms). These fundamental principles involve essential and "universally" accepted elements or constituents that define the constructs upon which a language is established (means) and facilitate some goals and scope to which the language applies (ends). The ends of the UML encompass models, architectural views, and diagrams to address why the UML exists. The means of the UML encompass the object-oriented paradigm and component-based development to address how the UML facilitates satisfying its ends.

The Architecture of the UML

To understand the architecture of the UML, consider how computer programs and programming languages are related. There are many different programming languages (C, C++, Java, Smalltalk, etc.), and each particular program is developed using a specific programming language. All of these languages support various declarative constructs for declaring data, and procedural constructs for defining the logic that manipulates data. Because a model is an abstraction, each of these concepts may be captured in set of related models. Programming language concepts are defined in a model called a metamodel. Each particular programming language is defined in a model that utilizes and specializes the concepts within the metamodel. Each program implemented in a programming language may be defined in a model called a user model that utilizes and instanteates the concepts within the model of the appropriate language. This scheme of a metamodel representing computer programming constructs, models representing computer programming languages, and user models representing computer programs exemplifies the architecture of the UML.

The UML is defined within a conceptual framework for modeling that consists of the following four distinct layers or levels of abstraction:

Within the fundamental UML notation, concepts are depicted as symbols and relationships among concepts are depicted as paths (lines) connecting symbols.

Models

Models capture the structural, or static, features of systems and the behavioral, or dynamic, features of systems. Models may be viewed via a small set of holistic but nearly independent and non-overlapping dimensions (aspects) that emphasize particular qualities of a model. The structural model dimension emphasizes the static features of the modeled system, and the behavioral model dimension emphasizes the dynamic features of the modeled system. Fundamentally, models capture knowledge (semantics).

Architectural Views

Architectural views organize models and knowledge around specific sets of concerns (architectural focus). The UML provides the following architectural views regarding models of problems and solutions:

Fundamentally, architectural views organize knowledge in accordance with guidelines expressing idioms of usage.

Go to part 2    Go to part 4    Back to the archive list