TOOLS
Europe'2000
June,
5-8, 2000
Mont St Michel & St Malo, France,
5-8 juin 2000
WARNING :The tutorial of A. ARSANJANI initially planned on Thursday morning is cancelled and the tutorials of J BOSCH (T2-T5) initially planned on Tuesday are shifted on Thursday morning (J2). The current program takes into account these modifications.
ATTENTION : Le tutoriel de A. ARSANJANI initialement prévu le jeudi matin est annulé et les tutoriels de J. BOSCH (T2-T5) initialement prévus le mardi sont décalés au jeudi matin (J2). Le programme actuel tient compte de ces modifications.
|
|
|
Monday, June 5, 2000 |
9:15 - 12:30
|
Lundi
5 juin 2000
|
An Introduction
to the Object Constraint Language (OCL)
|
Anneke
Kleppe - Jos Warmer
( Klasse Objecten, The Netherlands) |
Visual modeling
languages are appealing because "a picture tells more than a thousand
words". The UML is such a visual language and is well known for its
graphical notation and diagramming techniques. However, pictures often
only tell half of the story and additional information needs to be
captured in a different way. For this reason the UML includes the
Object Constraint Language (OCL), a textual language which allows
a UML modeler to specify these additional constraints. |
|
|
|
Introduction
to Concurrent Object-Oriented Programming in Java
|
David
Holmes
(DSTC Pty. Ltd., The University of Queensland, Australia) Doug Lea (Macquarie University, State University of New York at Oswego Oswego, USA) |
Concurrent programming
has mostly been the domain of systems programmers rather than application
developers, but Java's support of concurrency has enticed many to
try their hand at concurrent applications. However concurrent programming
poses many traps for the unwary. |
|
|
|
Object-oriented
modelling with events
|
Snoeck
Monique - Dedene Guido
(Katholieke Universiteit Leuven, Belgium) |
OO models and patterns Events are a fundamental part of the structure of experience [3]. Events are atomic units of action: they represent things that happen in the world. Without events nothing would happen: they are the way information and objects come into existence (creating events), the way information and objects are modified (modifying events) and disappear from our universe of discourse (ending events). As a result, also in object-oriented modelling, events have an essential role to play. Some object-oriented development methods already have identified events as a fundamental component of an object-oriented real-world model. This is, for example, the case for Syntropy [3], OO-SSADM [7] and MERODE [9, 10]. Although in the object-oriented paradigm objects play the central role, putting events forward is not in contradiction with current object-oriented practice. Indeed, most object-oriented methods use a state and transition-based formalism to specify behaviour such as finite state machines or statecharts [1, 2, 4, 5, 6, 8]. In such formalisms the different states of an object are taken as starting point and the transitions describe how objects can go from one state to another. The triggers of these transitions are events. In this tutorial, we will focus on event modelling as an essential element in object-oriented analysis and design. First we will elaborate on business events, what they are, how business event modelling can effectively be integrated with existing object-oriented modelling techniques and how business events can allow for a first level of integrity checking on an object-oriented conceptual model. We will then move on to information system events. By means of a number of examples, we will show how they are linked to business events and how they can play a role in information system design. Finally, we will move on to implementation questions and discuss possible implementation patterns, generic architectures for dealing with events and possible event handling patterns. The tutorial will be conducted around a few case-studies, one of which is an existing application. We will alternate between presentation of theoretical concepts, modelling exercises in small groups and discussion of the alternative solutions. References: 1. Booch G., Object
Oriented Analysis and Design with Applications, Second Edition, Benjamin/Cummings,
Redwood City, CA, 1994. |
|
|
|
Monday, June 5, 2000 |
14:00 - 17:30
|
Lundi
5 juin 2000
|
Programming
with agents: combining O-O and functional techniques
|
Bertrand
Meyer
(Interactive Software Engineering, USA) |
The introduction into an object-oriented framework such as Eiffel of "agents", a higher-level functional abstraction, brings a whole new set of expressive possibilities. This tutorial will explain how to use agents in the best possible way and detail their application to a wide range of areas including: graphical programming; error handling; writing extensive contract specifications; numerical programming; iterators. Bio: Bertrand Meyer has been involved with object-oriented development for a long time. |
|
|
|
Designing
Concurrent Object-Oriented Programs in Java
|
David
Holmes |
Concurrent programming
has mostly been the domain of systems programmers rather than application
developers, but Java's support of concurrency has enticed many to
try their hand at concurrent applications. Effectively creating and
managing concurrency within an application poses many design choices
and trade-offs. |
|
|
|
GOF Pursuit
--- Learning Patterns by Playing
|
James Noble (Victoria University of Wellington, New Zealand)
Charles Weir (CWC Limited, England) |
Design patterns
allow us to learn software design from the experience of others. Unfortunately
patterns are difficult to learn using conventional techniques, so
many designers have only a partial or incorrect understanding of the
patterns available. |
|
|
|
Tuesday, June 6, 2000 |
9:15 - 12:30
|
Mardi
6 juin 2000
|
Adding
value to the Unified Process
|
Richard
Mitchell
(InferData Corporation, USA) |
Both the Unified Modeling Language and the Unified Process are quite loosely defined. Guidelines that constrain the language and the process in very practical ways can make the process much more effective. This tutorial proposes a coherent body of such guidelines. Audience The tutorial is intended for developers and managers who are considering adopting Rational's Unified Process for use with the Unified Modeling Language. The tutorial will assume an elementary knowledge of object-oriented concepts and their use in OO modeling. Issues the tutorial will concentrate on
This list does not define a new process. Rather, it reduces the number of interpretations of the Unified Process. The list is not comprehensive. For example, we could add support for project-management through time-boxing of development activities, or support for high levels of precision through the use of OCL. Or we could focus more on modelling support, through such topics as design patterns. Our particular selection focuses on process issues, and reflects what we have found in practice adds considerable value to many kinds of projects with only a small investment in learning. By design, the elements in the selection work together to form a coherent whole. For example, it is easier to avoid premature design of behaviour when you have an architectural model that shows where such design choices belong. |
|
|
|
Design
and Implementation of Business Rules in Object-oriented Applications
|
Ali
Arsanjani
(IBM) |
This tutorial is cancelled - Ce tutoriel est annulé |
|
|
|
Java
Design Traps and Pitfalls
|
Todd
Lauinger
|
Most software developers think a thorough knowledge of the Java programming language and its numerous APIs is the key to developing good Java software. This is often done at the expense of understanding and applying solid object technique. Participants in this tutorial will discuss the most common object design mistakes I have seen in working with over 200 designers in the past seven years. We will analyze the source of the mistakes, understand object principles so you do not make these mistakes, and apply the newly understood principles to an example problem. |
|
|
|
Tuesday, June 6, 2000 |
14:00 - 17:15
|
Mardi
6 juin 2000
|
Beyond
RUP
|
Brian
Henderson-Sellers
(University of Technology, Sydney, Australia) |
The increased
complexity associated with large-scale software development requires
an increase in the sophistication of the methodology utilized. The
third generation method/process RUP is evaluated and recast to remove
its deficiences. The result is the Object-oriented Process, Environment
and Notation or OPEN method/process, a public domain, third-generation
approach, which is then outlined. |
|
|
|
Aspect-Oriented
Programming
|
Cristina Videira Lopes - Gregor Kiczales
(Xerox PARC, Pola Alto, USA) |
All software developers
have been faced with situations where one aspect of their design spread
itself across the code, rather than being localized in a dedicated
object. As a result, they end up with an OO version of spaghetti code.
|
|
|
|
Wednesday, June 7, 2000 |
9:15 - 12:30
|
Mercredi
7 juin 2000
|
Framework
development and adaptation with UML
|
Marcus
Fontoura (Princeton University, USA) - Wolfgang Pree
(University of Constance, Germany) - Bernhard Rumpe (Munich
University of Technology, Germany)
|
Object-oriented
frameworks and product line architectures have become popular in the
software industry during the 1990s. A vast number of frameworks has
been developed in the industry for various domains, including graphical
user interfaces (e.g. Java's Swing, Microsoft's MFC), graph-based
editors (HotDraw, Stingray's Objective Views), business applications
(IBM's San Francisco), electronic commerce (Sun/IBM), network servers
(Java's Jeeves), just to mention few. When combined with components,
frameworks provide the most promising current technology supporting
large-scale reuse. The recent standardization
efforts of the Unified Modeling Language (UML) provide a unique chance
to harness UML as notational basis for framework development projects.
However, UML does not provide adequate constructs to model frameworks.
There is no indication in UML design diagrams what are the variation
points and how they need to be instantiated. |
|
|
|
Component-Based
Design: A Complete Worked Example
|
John
Daniels
(Consultant, Syntropy Limited, UK) |
Much has been written about component-based design but most books and articles deal in generalisations and possibilities, rather than providing explicit and clear guidance. This tutorial will follow a small case study through from requirements capture to code-ready specifications, and will set out the full client and server architectures needed to make it work. The modeling and specificiation techniques used will follow the UML, with the target technologies being EJB or COM+. |
|
|
|
Smaller
Software: Patterns for Objects in Limited Memory
|
James Noble (Victoria University of Wellington, New Zealand)
Charles Weir (CWC Limited, Cumbria, England) |
Typical object-oriented
development techniques assume target systems have relatively large
amounts of RAM available to the user. Developers working with tight
memory requirements also need the flexibility and encapsulation which
OO can provide, but cannot afford to produce systems with large memory
requirements. This tutorial will describe how you can use OO techniques
in a memory-constrained environment. Using an approach based on design
patterns and practical examples, this tutorial will explore some of
the most important techniques that successful designers use in object
oriented systems for small memory machines. |
|
|
|
Wednesday, June 7, 2000 |
14:00 - 17:15
|
Mercredi
7 juin 2000
|
Coherent
Enterprise Modeling
|
Alan Cameron Wills
(TriReme International Ltd, UK) |
Requirements capture is about getting as accurate a picture as possible of what the users want, before investing overmuch effort in design. Despite RAD techniques, there can still be a substantial delay between requirement and first delivery; and despite joint application development, it's still possible for substantial questions about exactly what the software should do to turn up unpleasantly late in the development process. This tutorial will explore techniques for exposing gaps and inconsistencies in requirements models, using high-precision UML to throw up important questions about requirements, that might otherwise have been glossed over or understood differently by all concerned. Many texts on UML say little about how the different diagrams should cohere with each other. In this tutorial, we will exercise a requirements analysis cycle in which cross-checks between the different parts of a model tell you when your requirements are consistent and inclusive. This process, developed as part of the Catalysis method, has proved very effective in a variety of fields. |
|
|
|
Enterprise
JavaBeans (EJB): New Opportunities for Component-Based
Development of Web-Based Enterprise Solutions |
Gilda Pour
(San Jose State University, USA) |
Component-based
software development (CBSD) delivers the promise of large-scale software
reuse. CBSD has the potential to reduce significantly the cost and
time-to-market of enterprise systems, and enhance the reliability,
maintainability, and quality of enterprise systems.
|
|
|
|
Thursday, June 8, 2000 |
9:15 - 12:30
|
Jeudi
8 juin 2000
|
Advanced
Visual Modelling: Beyond UML
|
Joseph Gil (SSDL,
Technion - Israel Institute of Technology, Haifa, Israël)
John Howse (University of Brighton, UK) Stuart Kent (The University of Kent, Canterbury, UK) |
With the adoption
of UML by the OMG and industry as the linguae-francae of visual systems
modelling, one begins to ponder what will come next in this field?
This tutorial brings a vision for visual modelling beyond UML. We
present and consolidate radical new notations, proposed in a series
of research papers and with quickly increasing adoption by industry,
for the specification of complex systems in an intuitive visual, yet
precise manner. The recurring theme of these notations is the upgrading
of familiar, grammar school diagrams into a powerful visual language.
``Spider diagrams'' considerably extend Venn-diagrams to the specification
of OO-systems. Most familiar OO-concepts are being translated to set
theoretical terms: class into set of objects, inheritance corresponding
to subset, and even Harel's statecharts interpreted as the set of
objects in that state. "Constraint diagrams" enhance the arrow notation
to describe static system invariants, such as "the enemy of my enemy
is my friend", which cannot be described by UML class-object diagram.
Finally, "3D-diagrams" show how the third dimension and VRML modelling
can be used for a conceptual modelling of dynamic system behaviour.
Much of the tutorial will be based on a case study developed in industry,
illustrating how the new notations are combined with those of UML,
including OCL. |
|
|
|
Software
Architecture
|
Jan
Bosch
(University of Karlskrona/Ronneby, Sweden) |
This tutorial presents a method for architectural design explicitly focussing on assessment of and transformation for quality attributes. It is based on a forthcoming book (tentative publication date: early June 2000) authored by the presenter and published by Addison-Wesley. (The tutorial on Software Product Lines is companion to this.) |
|
|
|
The What,
Why and How of the UML Collaboration
|
Trygve Reenskaug
(Numerica Taskon, Oslo, Norway) |
The UML Collaboration
is a powerful tool for modeling system behavior. We use it for many
purposes ranging from enterprise modeling and designing distributed
systems architectures right down to shaping the details of object
oriented programs. We will focus on the practical application of the
Collaboration and illustrate how it helps us create simple solutions
to complex problems through separation of concern. |
|
|
|