Tutorials

**Managing Object Technology Projects**Richard Dué (Thomsen Dué and Associates Ltd, Canada)

**UML: What does it all mean?**Stuart Kent (University of Brighton, UK)

**Interprocedural Analysis based on Pushdown Automata**Helmut Seidl (Univ Trier, D) and Christian Fecht (Univ Saarlandes, D)

**Categorial Techniques for Combining Logics**Cristina Sernadas (Technical University of Lisbon, P)

**Foundations of Object-Oriented Programming**Giuseppe Castagna (ENS-Paris, F)

**Semantics and Logic for Provable Fault-Tolerance**Tomasz Janowski (United Nations University, Macau)

**Introduction to Graph Transformation**Hartmut Ehrig (TU Berlin, D), Andrea Corradini (U Pisa, I) and Reiko Heckel (TU Berlin and U Pisa)

**Java Semantics**Sophia Drossopoulou and Susan Eisenbach (Imperial College, UK)

**Tutorial on CASL (Common Algebraic Specification Language)**Peter Mosses (Aarhus University, DK)

The key to the successful implementation of Object Technology systems development is the effective application of project management strategies and techniques. While the leading Object-Oriented analysis and design methodologies describe required outputs, tasks, techniques, and notations, they offer little guidance on estimating, scheduling, monitoring, risk analysis, contingency planning, and change management. Traditional project management approaches, however, offer little guidance for the unique requirements of the Object paradigm. This tutorial presents a overview of proven, practical approaches to the full-time job of managing Object Technology systems development projects.

This tutorial will especially benefit participants with formal Object-Oriented
analysis and design methodology experience who are interested in effective
approaches to project management. Participants will receive an understanding
of practical project management approaches and proven implementation guidelines.

**Richard T. Dué** has over 30 years of Information Technology
experience as a programmer, analyst, manager, consultant, teacher and author.
This seminar is based on material found in his article, "The Changing
Paradigm for Object Project Management", Object Magazine, July-August
1995.

[Sunday, March 29, Full day]

This tutorial introduces UML and explores what it means. What it means
literally: its semantics. What it means for researchers in Software Engineering:
highlighting ongoing research and outstanding research problems in the
development of more precise and expressive notation, of semantics and of
advanced CASE tools. What it means now for practising software engineers,
and what it could mean if some of the highlighted research tasks are completed.
The introduction to UML will give the participants an opportunity to gain
some hands-on experience in using it to specify a small system. Discussion
and participation (including suggestions for solutions) will be encouraged
during the presentation of ongoing research and associated problems.

**Stuart Kent** is a Senior Lecturer at the University of Brighton,
UK. He teaches, researches and consults to industry in the areas of precise
visual modelling, OO analysis and design, component-based development,
semantics and CASE tool development.

[Sunday, March 29, Full day]

We propose a unifying framework for interprocedural program analysis both of imperative and logic languages. Our approach is based on a small-step operational semantics formalized through pushdown automata. In a first step - while maintaining the control structure - we only abstract data and operations on data: thus, the resulting abstract operational semantics has the same ÒstructureÓ as the concrete one. In the second step, a constraint system is selected which (more or less precisely) characterizes the property to be analyzed. In the last step, a constraint solver is added to compute a (least) solution of the constraint system.

In the tutorial, we concentrate on the first two steps. We explore the
design space of different design choices together with their impacts on
precision and efficiency. For further material see URL.

**Christian Fecht** obtained his Ph.D. at Saarbrücken and is
now software developper for SAP, Germany. **Helmut Seidl** is full professor
in Trier. He has taught several courses on ``Abstract Interpretation''.
The results presented in this tutorial grew out of their joint theoretical
considerations, practical experiences and experiments with analyzer generator
GENA for Prolog which has been designed and implemented by Christian Fecht
.

[Saturday, April 4, Half day]

The field of combination of logics has recently attracted much attention
triggered by software engineering and artificial intelligence applications.
In this course, several mechanisms for combining logics are analysed from
the point of view of category theory. The categorial techniques are shown
to help in clarifying the complex problem of gluing together logics. The
relevant categories (such as interpretation systems, satisfaction systems,
Hilbert calculi and consequence systems) are presented and related via
adjunctions. Both (co)limits and (co)cartesian liftings are used for the
categorial characterization of combination mechanisms like synchronization
and fibring. Illustrations are provided within temporal logic. Some preservation
results are established. Some open research problems are identified.

**Cristina Sernadas** is full professor for Computer Science at the
Department of Mathematics of Instituto Superior Técnico in Lisbon.
She published more than fifty papers on applications of logic and category
theory. She is a key researcher in the project ``Algebraic Combination
of Logics" and has participated in the ESPRIT actions IS-CORE, COMPASS,
ASPIRE and FIREworks.

[Sunday, March 29, Half day]

Nowadays extensive research is in progress on theoretical and foundational aspects of object-oriented programming. Unfortunately all this knowledge is scattered in many research papers that are often very technical and cover only certain aspects of object-orientation. Furthermore many of these papers assume knowledge of some theoretical notions and/or of previous work on the subject. Therefore, they may be hard to understand because they fail to explain some basic notions or the initial motivations of some constructions.

The goal of this tutorial is twofold: Firstly, it provides the theoretical
background needed to study foundations of object-oriented programming.
Secondly, it gives a unified presentation of several theoretical models
of class-based typed object-oriented languages. This tutorial accounts
for a range of concepts such as covariance and contravariance, self, subtyping,
inheritance, parametric types, type system and typing algorithm. It covers
both single and multiple dispatching languages and presents some recent
applications of the theoretical investigation to the design of object-oriented
languages and to the solution of some well-known problems. Further information
is available on the web.

**Giuseppe Castagna** is a CNRS Researcher at the Laboratoire d'Informatique
de l'École Normale Supérieure in Paris. He has been working
on foundational aspects of object-oriented programming since 1989. He is
the author of several articles on the subject and of the book "Object-Oriented
Programming: A Unified Foundation" (Birkhäuser, 1997).

[Saturday, April 4, Full day]

This tutorial is about design and proof of design of reliable systems
from unreliable components. It teaches the concepts and methods of fault-tolerance
as an engineering discipline, while building a theory for specifying, proving,
as well as deducing (compositionally) and strengthening (incrementally)
claims about this property. The theory extends CCS, its bisimulation equivalence
and modal logic. The driving principle is that fault-tolerance should be
invariant under the removal of an arbitrary set of faults from the assumptions.
We show that the normal criteria of Òcorrectness under all anticipated
faultsÓ is insufficient for claiming fault-tolerance because it
does not deal adequately with unpredictability of faults. The theory is
illustrated by several examples and eventually extended to consider fault-tolerant
real-time systems, scheduled on limited resources.

**Tomasz Janowski** received a PhD degree in Computer Science (fault-tolerance)
from the University of Warwick, England, in 1995 and an MSc degree in Mathematics
(automated reasoning) from the University of Gdansk, Poland, in 1989. Since
1995 he has worked for UNU/IIST (The United Nations University International
Institute for Software Technology) in Macau. His research interests include
reasoning about fault-tolerance, real-time scheduling and formal methods
for design with reuse.

[Sunday, March 29, Half day]

The tutorial aims at providing the participants with a general overview of the theory of Graph Transformation Systems, concerning different approches and application areas, and to make them "literate" in the algebraic approach to graph transformations. This means that, after the tutorial, the participants will find it easier to follow basic literature and to consider applications of graph transformations, especially of the algebraic approach, in their areas of interest.

The first and the last part of the tutorial (of about 15 min. each)
provide a survey of the history of different graph transformation approaches
and different application areas respectively. The two main parts (of about
75 min. each) are in-depth presentations of the basic concepts of the algebraic
approach to graph transformations with applications to system modeling
on the one hand, and on the other hand of the concurrency aspects of Algebraic
Graph Transformations and their relationship with Petri nets.

**Hartmut Ehrig** is one of the international key persons in the
area of graph transformations and mainly responsible for the development
of the algebraic approach which was initiated already in the 70'ies. He
was coordinator of the ESPRIT Working Groups COMPUGRAPH I and II, and is
coorganizer of the series of "International Workshops on Graph Grammars
and Applications in Computer Science".

**Andrea Corradini** is assistant professor at the Department of
Computer Science of the University of Pisa. His main research interests
are in the Algebraic and Categorical Semantics of Programming Languages,
Concurrency, Graph Grammars, Term Graph Rewriting, Term Rewriting, Petri
Nets, and Coalgebraic Specification. He is Coordinator of the TMR-Network
GETGRATS (General Theory of Graph Transformation Systems).

[Sunday, March 29, Half day]

Flaws in the security of the Java system - most of which arise by breaking the type system - can corrupt running Java programs. A proof of the soundness of the Java type system is a first, necessary step towards demonstrating which Java programs won't compromise computer security. We consider a large subset of Java and argue that the type system is sound, by proving that program execution preserves the types, up to subclasses/subinterfaces.

This tutorial is for people with an interest in semantics and object-oriented
programming languages. It will include an introduction to concrete syntax
of Java, our formal results, automatic support and insights we have gained.

**Sophia Drossopoulou** and **Susan Eisenbach** are academics
from the Department of Computing at Imperial College. They have worked
on formalisations of a wide variety of programming languages. They have
been working on the semantics of Java for two years.

**Don Syme** is a researcher at the University of Cambridge. His
expertise is in theorem proving and model checking, as applied to proving
properties about type systems and hardware. He has applied his theorem
prover, Declare, to check the Java results.

[Saturday, April 4, Half day]

CASL is an expressive language for the specification of functional requirements and modular design of software. It has been designed by CoFI, the international Common Framework Initiative for algebraic specification and development. It is based on a critical selection of features that have already been explored in various contexts, including subsorts, partial functions, first-order logic, and structured and architectural specifications. CASL should facilitate interoperability of many existing algebraic prototyping and verification tools.

This tutorial will be the first public presentation of the final design of CASL. All the main constructs will be explained and illustrated. Some familiarity with the fundamental concepts of algebraic specification would be advantageous.

CoFI is an open collaborative effort to develop a common algebraic framework,
started in 1995. The speaker [**Peter D. Mosses**] is the overall coordinator
of CoFI, and a participant of several CoFI task groups. He has been involved
with algebraic specifications since the late 1970's, and was recently appointed
chairman of IFIP WG 1.3 (on Foundations of System Specification).

[Sunday, March 29, Half day]