Rigorous Analysis and Design with the Unified Modeling Language (UML)

R. France, J.-M. Bruel

April 1st (full day)

The Unified Modeling Language (UML) is an Object Management Group (OMG) standard object modeling language. The standard was developed in response to a proliferation of object modeling notations that, for the most part, differed primarily in syntax and process. The UML has evolved into a rich set of modeling notations that can be used to model systems from a variety of views at different levels of abstraction. It is important to note that the UML is a set of notations: it is not a method, nor does it prescribe a process for applying the models. The rich variety of models in the UML can make understanding and applying the UML a daunting task. A generic process, called the Unified Process, was recently published, but tailoring the process requires a good understanding of how UML notations can be used to model requirements, architectures, and designs. In this tutorial materials will be presented that will help participants develop an understanding of UML models that can lead to effective use of the notations in a development process. We present, as examples, mappings of models to development phases and discuss the relationships among models at the same level of abstraction as well as refinement and abstraction relationships across models at different levels of abstractions. The relationships are based on precise semantics for a core set of UML constructs that will be presented in the tutorial.

Tutorial Objectives

At the end of the tutorial participants will:

Target Audience and Prerequisites

The tutorial is targeted at researchers and software developers that are familiar with object-oriented modeling concepts and are interested in learning about the UML notations and their application to software modeling. We assume that participants are familiar with basic object-oriented modeling concepts (e.g., classes, associations, generalization/specialization, composition, object interactions, methods). No prior knowledge of UML is assumed.

Tutorial Topics

The tutorial will be structured as follows: