Tutorial proposal for UML2000.

Advanced tool support for UML: now and in the future

Contact details:

Perdita Stevens
Division of Informatics
University of Edinburgh
JCMB, King's Buildings
Mayfield Road
EDINBURGH EH9 3JZ
Tel: +44 131 650 5195
Fax: +44 131 667 7209
Email: Perdita.Stevens@dcs.ed.ac.uk
Web: http://www.dcs.ed.ac.uk/home/pxs

Requested audio visual equipment:

Participation in tutorial reader:

almost certainly, depending on what is involved!

Intended length of tutorial:

3 hours, in two 1.5 hour sections. (Flexible.)

Abstract

In this tutorial I intend to discuss the state of the art of tools supporting UML, the problems which future tools may address, what should be possible by adapting existing knowledge and techniques, and what further lines of investigation are promising. The tutorial will also include opportunity for participants to explore their own ideas on the subject.

I believe that this tutorial might be of interest to UML2000 because:

  1. Tool developers (industrial and academic) naturally tend to focus on our own tools. An opportunity to hear about and discuss the full range of tools and the potential for further development will show up unsuspected areas of synergy, competition and/or new opportunities.
  2. Among users (and potential users) of UML a frequently asked question is what tools are available. This tutorial should help equip participants for the formidable task of evaluating tools.
  3. Definers of UML have to consider tools. As I shall discuss, the kind of tool support desired has a profound effect on the direction the definition of UML2.0 should take.

Definition

The principal questions addressed by this tutorial are:

Context

UML provides a unique opportunity for the development of tools: by unifying the user community it increases the potential rewards from building powerful tools, and the fact that UML is a (comparatively) carefully defined language with a (comparatively) well-developed notion of model consistency makes more exciting capabilities possible. Tools for UML are in some ways developing fast, but there is enormous scope for improvement; indeed there is widespread dissatisfaction with the state of the art - the current market leaders have been described, only somewhat unfairly, as "glorified drawing tools".

In order to increase the capabilities of tools I think it will be important for the UML community to take full advantage of the understanding gained elsewhere concerning, for example, the automatic verification of infinite state systems. However, it should be clear that simply plugging a theorem-prover or model-checker into the back of a UML tool will not be the answer to any interesting question!

This is the right time to discuss seriously what advanced capabilities of UML tools should be, and to investigate to what extent the necessary supporting work already exists. Specifically, there is (as I shall argue) a pressing need for UML2.0 to be defined taking into account what tool capabilities are desired.

Teaching objectives

At the end of this tutorial, participants will: Teaching formal semantics is a non-objective of this tutorial. However, because semantic issues are inseparable from reliable tool support, participants will finish (if they didn't begin) with a broad understanding of what formal semantics are, what forms they can take, what tool capabilities they underlie and what needs to be proved in order to check that they are sensible bases for tools.

Key Concepts

Some of the key concepts to be discussed are (by keyword only):

similarities and differences between design and programming; simulation; executablility; code generation; round-trip engineering; semantics; design by contract; consistency of UML models; component-based development and independent design; temporal behaviour of systems; support for frameworks and product-line architectures; verification by games.

Brief overview of goals of the tutorial, the intended audience and what an attendee will gain

The intended audience includes UML tool developers, UML tool users and (especially) choosers, and anyone interested in the definition and support of UML. Participants will be assumed to be familiar with UML, although not necessarily intimate with the standards documents.

The goals and intended benefits for attendees have been described above.

Table of contents

(Flexible) assumption: tutorial is 3 hours long, in two 1.5 hour sections.
  1. Introduction What is good tool support? What kinds of help would we like UML tools to provide? The "Objects by Design" list (www.objectsbydesign.com) provides a start but is perhaps surprisingly conservative...
  2. Tools now
    1. Current commercial reality in UML tools. What capabilities are available in commercially supported tools available today? Brief overview of some of the market leaders' capabilities.
    2. Current state of the art in UML tools. What is already clearly possible in principle, beyond what current commercial tools incorporate? For example, what is available in research tools or in tool-motivated papers?
    3. State of the art beyond UML. What is there outside the UML community that is relevant? What can we learn from IDEs? compilers? static analysis tools? reengineering tools? verification tools? What difference does the form of the UML definition make?
    (BREAK)
  3. Tools in the future

    Where is further work needed? Some areas of special interest to me which I will discuss are:

    1. How could tools support the design process, rather than just helping to record and check completed designs? For example, I will show how I think games can help in exploring the consequences of design decisions;
    2. How can tools support design using complex components such as frameworks (including those which can be seen as generic implementations of patterns) and product-line architectures?
    3. How can tools support design by contract? Can we someday expect to read and write contracts as easily as in English, but with full tool support? Where does OCL come into this picture, and how might it develop? Participants will also be encouraged to explore and discuss their own ideas.

    Biography

    Perdita Stevens is a lecturer in software engineering in the Division of Informatics at the University of Edinburgh. Her background includes working as a professional software engineer, consultancy in UML and object orientation, and research in such diverse areas as knowledge transfer for legacy systems and verification tools for infinite state systems using games.

    From October 2000 until September 2005 she will hold an EPSRC Advanced Research Fellowship to investigate "Supporting Software Design", especially the ways in which formal techniques can underlie a future generation of powerful, usable and soundly-based UML tools.

    Her textbook "Using UML: software engineering with objects and components" (Dec 1998, Addison-Wesley Object Technology Series) has been reprinted 5 times and widely adopted; two translations are in progress.

    Similar tutorials

    This tutorial is related to my invited tutorial at ETAPS2000, the Joint European Conferences on Theory and Practice of Software. This full-day tutorial was called "The Unified Modelling Language" and had the twin aims of (1) introducing participants to UML and (2) exposing the research agenda surrounding UML, especially the issues with tools, which were of particular relevance to one of the ETAPS conferences, TACAS (Tools and Algorithms for Construction and Analysis of Systems). It attracted over 40 participants (many more than any other ETAPS tutorial).

    Naturally the present proposal is differently targetted; it omits (1) and substantially broadens and deepens (2).