Tutorial proposal for UML2000.
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:
- 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.
- 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.
- 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:
- What are the technical capabilities of today's UML tools?
- What may the technical capabilities of tomorrow's UML tools
be?
- In the longer term, what capabilities are desirable in tools?
What are the barriers to their realisation, and
what directions for investigation are appropriate?
- What are the implications for the definition of UML?
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:
- understand the range of capabilities present in today's UML tools;
- have a broad overview of the capabilities and limitations of
today's technology in verification and related areas, and its
relevance to UML;
- have gained (including by discussion among the participants)
increased understanding of what the future of support for UML could
and should be.
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.
- 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...
- Tools now
- 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.
- 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?
- 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)
- Tools in the future
Where is further work needed? Some areas of special interest to me
which I will discuss are:
- 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;
- 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?
- 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).