Methods & Tools Software Development Magazine

Software Development Magazine - Project Management, Programming, Software Testing

Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban

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:

  • The meta-metamodel layer consists of the most basic elements on which the UML is based -- the concept of a "Thing", representing anything that may be defined. This level of abstraction is used to formalize the notion of a concept and define a language for specifying metamodels.
  • The metamodel layer consists of those elements that constitute the UML, including concepts from the object-oriented and component-oriented paradigms. Each concept within this level is an instance (via stereotyping) of the meta-metamodel concept "Thing". This level of abstraction is used to formalize paradigm concepts and define a language for specifying models.
  • The model layer consists of UML models. This is the level at which modeling of problems, solutions, or systems occur. Each concept within this level is an instance (via stereotyping) of a concept within the metamodel layer. This level of abstraction is used to formalize concepts and define a language for communicating expressions regarding a give subject. Models in this layer are often called class or type models.
  • The user model layer consists of those elements that exemplify UML models. Each concept within this level is an instance (via classifying) of a concept within the model layer and an instance (via stereotyping) of a concept within the metamodel layer. This level of abstraction is used to formalize specific expressions regarding a give subject. Models in this layer are often called object or instance models.

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:

  • The user model view encompasses a problem and solution as understood by those individuals whose problem the solution addresses. This view is also known as the use case or scenario view.
  • The structural model view encompasses the structural dimension of a problem and solution. This view is also known as the static or logical view.
  • The behavioral model view encompasses the behavioral dimension of a problem and solution. This view is also known as the dynamic, process, concurrent, or collaborative view.
  • The implementation model view encompasses the structural and behavioral dimensions of the solution's realization. This view is also known as the component or development view.
  • The environment model view encompasses the structural and behavioral dimensions of the domain in which the solution is realized. This view is also known as the deployment or physical view.
  • Other model views may be defined and used as necessary. An architectural focus is defined by a set of concerns (particular to stakeholders). An architectural view is defined by the set of elements from a model that address an architectural focus. For example, security issues may define an architectural focus. A security architectural view includes the set of elements from a model that address security issues.

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

Methods & Tools
is supported by


Testmatick.com

Software Testing
Magazine


The Scrum Expert