[ TOOLS EUROPE 96 | Highlights | Tutorials | Conferences | Committee | Registration ]
Methods & Models - Languages & Engineering - Managing Object - Real-time & Distribution

TOOLS Europe '96
Tutorial Descriptions

Design Techniques

Application of Design Patterns in Commercial Domains
Wolfgang Pree
Level: intermediate

Design patterns support the development and reuse of extensible OO software components. They represent a complimentary enhancement of existing OO analysis and design (OOAD) methods. The tutorial gives an overview of state-of-the-art design patterns approaches, focusing on those that support the development of frameworks. The tutorial also introduces so called hot spot cards. These cards proved to be a useful communications vehicle between domain experts and software engineers in order to exploit the potential of design patterns. Hot spot cards help in the early development phases to capture those system aspects that have to be kept flexible. Case studies illustrate how to apply hot spot cards together with design patterns in various commercial application domains including bank-specific systems, reservation systems and point-of-sale systems in retail trade stores.

Wolfgang Pree is an Associate Professor at the University of Linz. He has consulted and taught object-oriented software design and development for numerous companies in Europe and the U.S. Dr Wolfgang Pree's work focuses on the development of domain-specific frameworks. He is the author of ``Design Patterns for Object-Oriented Software Development'' (Addison-Wesley, 1995).

Design by Contract
Ted Lawson
Level: intermediate

This tutorial introduces the ``Design by Contract'' development method. It is aimed at computing professionals who has experience of object technology, but no knowledge of Formal Methods. Its main aim is to show how easy it is for object-oriented programmers to use a Formal software development method, and how the quality of their software improves in both obvious and unexpected ways. The tutorial first presents the method's advantage in outline, in particular its effect on the correctness, complexity, reusability and maintainability of object-oriented code. It then introduces the abstract notion of a contract, using everyday examples. The method's elements are presented in turn -precondition, postconditions and class invariants, using examples in either C, C++ or Eiffel where appropriate. Some specific practical experience of using Design By Contract will also be presented. The tutorial finishes with a discussion on exception handling and the complementary concepts of correctness and robustness. Participants will be given exercises at various stages throughout the tutorial.

Ted Lawson is a computer science lecturer at the University of Wales, Cardiff. He joined the University after eight years working in industry developing computer-aided design systems and real-time distributed data processing systems.

Designing O-O Metrics
Christine Mingins
Level: intermediate

This tutorial examines the problems inherent in measuring software, and presents a method for designing, constructing and validating metrics by taking a simple example through the following process:

Finally, the role of measurement in understanding designs and controlling product quality is discussed.

Christine Mingins is a Senior Lecturer at Monash University, Australia, with extensive teaching and consulting experience in object oriented methods, and research interests in software quality metrics.

Programming by Contract: Advanced Principles and Specifying Abstract Data Types
James C. McKim Jr. & Richard Mitchell
Level: advanced

The tutorial provides a number of principles for using PBC to rigorously document class interfaces in a way that is accessible to technically oriented software developers. With each principle the tutorial presents an example, a justification, and advice about when it might be appropriate to violate the principle (and how to document such violations). The complexity of the principles vary. Some are simple enough that we can use them to improve the documentation of almost any class. Others are sufficiently complex and time-consuming to use that they may only be appropriate in designing class libraries. Indeed, the presentation will use examples from ELKS, the Eiffel Library Kernel Standard and a variety of data structures to illustrate the utility of the principles. The conclusion presents recent work that shows that many of the classic Abstract Data Types may be specified using these principles and the mechanisms for supporting PBC that are available in Eiffel today. After attending this tutorial, you should be able to design classes that are more amenable to specification, and be able to write better, fuller contracts.

James McKim is Professor of Computer Science, Hartford Graduate Center. He has more than twenty years experience teaching mathematics and computer science. Dr McKim has authored, coauthored and reviewed a number of textbooks and articles in both areas. His research interests include object oriented programming and design in general, and class interface specification in particular.

Richard Mitchell is on the Faculty at the University of Brighton. Dr Mitchell has been teaching, researching and consulting in the computing field since 1978, specializing in software engineering. For the last 5 years, his work has focussed on object technology.

[an error occurred while processing this directive]