Constructing Tool-Support for Sophisticated Analysis of UML Models:
A Hands-On Introduction

(Half-day tutorial)

Jan Jurjens
Software and Systems Engineering
TU Munich
Boltzmannstr. 3
85748 Munchen/Garching
Phone: +49 (89) 289-17338
Mobile: +49 179 8804051
Fax: +49 (89) 289-17307

Expected number of participants: 30


UML is now widely used as a notation to support informal discussions between customers and developers, and among developers, and for basic tasks such as generating class definitions. There is, however, a potential for a more far-reaching use of UML within model-based development that could increase efficiency and quality. This potential can be realized by making a tool-supported use of the UML models for

The tutorial aims to give a hands-on introduction to developing advanced tool-support for model-based development with UML. Participants will learn to create their own small analysis application during the tutorial.


The relevance of the proposed tutorial to the UML community is very high: To find more widespread adoption, it must be possible to use the UML for more than informal discussions or rudimentary code generation, to receive a larger pay-off from making use of modeling in the first place. There are many subtle requirements (such as non-functional requirements) which could be checked at the level of UML models (thereby giving such a pay-off) if the appropriate tool-support would exist.

Expected background / Intended audience

The tutorial addresses practitioners (i.e. system and software developers, architects, and technical managers) and researchers interested in tool-supported model-based development with UML. Basic knowledge of UML would be beneficial.


The tutorial is a continuation of a series of about 30 tutorials at international conferences.

It also builds on the following material by the presenter

It also includes experiences from the development of the AutoFocus tool-set , which is a CASE-tool with a UML-like notation providing the features mentioned in the abstract which is currently used in industrial projects, and from the development of similar tool-support for UML in student projects involving about 30 students.

Goals and Objectives

By the end of the tutorial, the participants will have knowledge on issues and problems in tool-supported model-based development with UML. They will be able to make use of this knowledge when developing or analyzing software-based systems. Participants will learn to create their own small analysis application during the tutorial. They will have an idea what changes are to be expected from UML 2.0 in this respect.


The tutorial presents the current academic research and industrial best practice by addressing the following seven main subtopics (of each about 20–30 min. duration):

Pt. I: Background

  1. Introduction

    State of the Art. Why would one want to use UML for more than informal discussions? Is it realistic to try to provide industrial-strength tool-support?

  2. Previous Experiences from AutoFocus

    AutoFocus is a CASE-tool with UML-like notation developed at TU Munich over the last 7 years by a group of usually around 5-10 PhD students and Post-Docs. It won the first Prize of the tool competition at the Formal Methods Symposium 1999 and offers the following features:

    We present experiences from the construction and further development of this tool-set, and from its use in industrial projects.

Pt. II: Using UML

We describe how one can make use of experiences from the development of the AutoFocus tool-set for the construction of advanced tool-support for UML offering the features of the AutoFocus tool.

  1. Introduction to tool-support for UML

  2. Realising advanced tool-support for UML

    How to connect a UML CASE-tool to other tools for mechanical analysis, code-generation, test-sequence generation etc.

  3. Tool demos

    We present prototypical tools currently under development that exemplarily realize the above features for UML using a UML CASE-tool.

  4. Participants create their own small analysis application during the tutorial.

  5. Discussion on the role of advanced tool-support for model-based development with UML

  6. Outlook


Interactive lecture with hands-on exercises. Generous time for question and answers will be provided. Participants create their own small analysis application during the tutorial (in group work). Discussion on requirements on advanced tool-support for UML.


Beamer (for laptop), overhead projector, flipchart or white-board.

Tutorial notes, printout of slides and CDs with a code framework for advanced tool-support for UML will be distributed.


Jan Jurjens leads the Competence Center for IT-security within the Software & Systems Engineering chair at TU Munich (Germany). He is the author of a book on Secure Systems Development with UML (Springer-Verlag, 2004) and about 30 papers in international refereed books, journals, and conferences, mostly on computer security and safety and software engineering, and has given several invited talks at international conferences. He has created and lectured a course on secure systems development at the University of Oxford, several invited summer school courses and about 30 tutorials at international conferences. He is the initiator and current chair of the working group on Formal Methods and Software Engineering for Safety and Security (FoMSESS) within the German Society for Informatics (GI). He is a member of the executive board of the Division of Safety and Security (Fachbereich Sicherheit) within the GI, the executive boad of the committee on Modeling (QFA Modellierung) of the GI, the advisory board of the Bavarian Competence Center for Safety and Security (KoSiB), the working group on e-Security of the Bavarian regional government, and the IFIP Working Group 1.7 "Theoretical Foundations of Security Analysis and Design". He has been leading various security-related projects with industry and has acted as a reviewer for EU research projects.

Received awards include a scholarship from the German National Merit Foundation (Studienstiftung des deutschen Volkes) and a best student paper award. He has studied Mathematics and Computer Science at the Univ. of Bremen (Germany) and the Univ. of Cambridge (GB) and received a M.Sc. degree from the Univ. of Bremen. He has done research towards a PhD at the Univ. of Edinburgh (GB), Bell Laboratories (Palo Alto, USA), and the Univ. of Oxford (GB) and received a DPhil (Doctor of Philosophy) in Computing from the Univ. of Oxford.