Program

Fourth ESUG Smalltalk Summer School
August 26 - August 30
Lausanne, Switzerland

Day

Time

Number

Title

Monday
August 26

9.30-11.00

Tutorial 1

Meta-level programming in Smalltalk (part 1)

Joseph Pelrine

 

11.30-13.00

Tutorial 1

(part 2)

 

11.00-11.30

 

Coffee break

 

14.00-15.30

Workshop 1

Design Fest

Annick Fron

 

15.30-16.00

 

Coffee break

 

16.00-17.00

Demonstration 1

VASER, a development framework for business applications in VisualAge

Thomas Stalzer

 

17.15-18.15

Demonstration 2

How to build fault tolerant distributed applications using Smalltalk replicated objects?

Karim Mazouni

Tuesday
August 27

9.00-10.30

Tutorial 2

Secrets of the Envy masters

Alan Knight

 

10.30-11.00

 

Coffee break

 

11.00-12.30

Tutorial 2

Exercises

 

14.00-15.30

Tutorial 3

Building CORBA 2.0 distributed applications using HP-DST 5.0

Karim Mazouni

 

15.30-16.00

 

Coffee break

 

16.00-18.00

Tutorial 3

Exercises

Wednesday
August 28

9.00-10.30

Tutorial 4

VisualWorks and Windows95/WindowsNT compliancy

Rob Vens

 

10.30-11.00

 

Coffee break

 

11.00-12.30

Panel 1

Define, improve, measure ... quality of a Smalltalk system

David Grietens (chairman)

Thursday
August 29

9.00-10.30

Tutorial 5

Constraint Satisfaction in Smalltalk

Pierre Roy & Francois Pachet

 

10.30-11.00

 

Coffee break

 

11.00-12.30

Tutorial 5

Exercises

 

14.00-16.00

Tutorial 6

Spying messages in Smalltalk objects

Ernest Micklei

 

16.00-16.30

Tutorial 6

Exercises

 

18.15-19.00

 

Attendees demonstrations

Friday
August 30

9.00-10.30

Tutorial 7

Custom-made User Interface Components in VisualWorks

Koen de Hondt

 

10.30-11.00

 

Coffee break

 

11.00-12.30

Tutorial 7

Exercises

 

14.00-15.30

Demonstration 3

PERSIST

Jurgen Franken & Carsten Haerle

 

15.30-16.00

 

Coffee break

 

16.00-17.00

 

General discussion and closing

Tutorials

T1 : Meta-level programming techniques in Smalltalk

Joseph Pelrine, Object Solutions, Basel, Switzerland

Smalltalk is one of the few commercially used programming environments that permits fundamental extensions to be made to the system itself. This tutorial will examine the meta-level facilities available in Smalltalk, and show how they may be used to solve problems which would otherwise be difficult to address.

Possible applications include building type-safe objects to interface with databases, distributed objects, metric gathering and code-checking software, and automated code generation tools. The examples discussed are implementable in ParcPlace, Digitalk, and IBM Smalltalk.

Outline:

  • Basic principles of meta-level programming
  • Practical applications:
  • Creating type-safe objects
    • typed value holders
    • pluggable behavior
  • Proxies, futures, and persistence problems
    • Responsibilities of nil-subclass objects
    • Object morphing
  • Metrics and documentation Tools
    • accessing class information
  • Automated code generation Tools
    • generating accessors
    • a code generation framework
  • Behind the curtain of visual programming tools (VisualAge and PARTS)
  • Add-ons for ENVY/Developer and Team/V
    • Static and dynamic analysis tools
    • Code organization tools

T2: Secrets of the Envy Masters

Alan Knight, The Object People, Ottawa, Canada

Envy is a very powerful tool, but one which can easily be misused. As a (mostly) open system, it can support a lot of additional functionality, but the obscurity and lack of documentation of the internals makes this difficult for the uninformed user. It can also be a rigid and imperfect system, making workarounds necessary. Participants should have used Envy, and should be familiar with basic concepts such as versions, editions, configuration maps, and releasing.

Outline:

  • how to set up a project
  • dealing with circular prerequisites
  • managing subapplications and configuration maps
  • exploiting user fields, Envy supports storing arbitrary objects associated with components and/or versions. This can be extremely powerful.
  • proper abuse of class extensions. You can change an amazing amount of system behavior without having to make new versions of the base applications. This is dangerous, but very useful.
  • manipulating the meta-structures. All of Envy's editions, applications, and so forth, are available as Smalltalk objects, they just lack source code, comments or a roadmap.

Goal to achieve

Achieve a greater understanding of the way Envy works, its proper use and its limitations. Understand how to work around some of the limitations, the benefits and limitations of various approaches.

T3: Building CORBA 2.0 distributed applications using HP-DST 5.0

Karim Mazouni, EPFL, Lausanne, Switzerland

This tutorial includes an overview of CORBA 2.0 and a step by step method to build a distributed application using HP Distributed Smalltalk 5.0. The latter is a product from Hewlett-Packard, which implements the CORBA 2.0 specification in Smalltalk, using ParcPlace Visualworks 2.0.

CORBA 2.0 is the latest version of the OMG's specification for distributed object interactions. Several commercial products propose implementations of the CORBA specification using widely used object oriented programming languages (e.g. Smalltalk, C\\\\\+\+) and even newcomers (e.g. Java).

Outline:

  • Part 1: Learning HP-DST
    • What is CORBA?
      • main concepts of CORBA
      • CORBA 1.0 Vs CORBA 2.0
    • Overview of HP-DST 5.0
      • user services
      • developer services
      • object services
      • HP-DST ORB implementation
    • Building a simple distributed application
      • an Internet Relay Chat (IRC) like application
      • a step by step method
  • Part 2: Practicing with HP-DST
    • Build your own chat program and communicate with other attendees!

Goal:

The tutorial should provide sufficient material to experienced Smalltalk programmers, in order to make  them able to program their first CORBA 2.0 distributed application.

T4: Spying messages to Smalltalk Objects

Ernest Micklei, ELC Object Technology, The Netherlands

Spy objects (spies) have been introduced by Francois Pachet on the Summer School 1994 in Cork, Ireland. Spies are objects that can observe message sends in a transparent (to source code) way. Fascinated by its power, I tried out new concepts to overcome existing problems and to further explore the abilities of a reflexive language such as Smalltalk. Things like tracing tools, message chain diagrams and even Jacobson interaction diagrams, can now easily be produced using spies.

Outline:

This tutorial starts by introducing the notion of epiphyte systems and why we like to have spying objects. Next, some (3) approaches for implementing spies are presented along with their abilities and restrictions. Then, the design and implementation of a framework for handling messages is presented and finally some applications that make use of this framework.

Goal to achieve:

  • Learn more about the kernel of Smalltalk (Classes, CompiledMethods)
  • What kind of reflexiveness does Smalltalk offer; what do we need?
  • Some important restrictions to the usage of spies; a Smalltalk virus?
  • New ways to verify object behavior and cooperation by providing monitoring tool.

T5: Constraint Satisfaction in Smalltalk

Francois Pachet & Pierre Roys, Universite of Paris-6, France

Combinatorial optimization is a powerful paradigm to solve large and complex problems. It has a wide range of applications in all kinds of fields such as: planning, scheduling, resource sharing, in a wide range of areas (transportation, production, mass marketing, network optimization, human resources management). This tutorial aims at introducing the area of combinatorial techniques and their use in conjunction with Smalltalk.

Outline:

This tutorial introduces the area of finite domain constraint satisfaction programming (CSP) and its integration with Smalltalk. In a first part the main principles of CSP are presented, through the use of simple examples (algorithms for arc-consistency and enumeration). In the second part, we show how object structures may be used in conjunction with CSP, and what kind of problems this combination of techniques allows to solve naturally. The BackTalk system (a canonical integration of CSP techniques in Smalltalk) will be used as an exemplar system throughout the tutorial, with examples such as nurse scheduling and other typical constraint problems.

Goal to achieve:

Participants should have a general familiarity with Smalltalk. The goal is to make this audience familiar with the main constraint satisfaction techniques, through hands on experiment with the BackTalk system. They should then be able to assess the usability of existing constraint solvers for use in conjunction with object oriented languages.

T6: VisualWorks and Windows95/WinNT compliance

Rob Vens, Sepher Software, The Netherlands

Outline:

  • DLL-C Connect tutorial
  • how to write Windows DLL's to connect VisualWorks to Windows95/WinNT
  • how to use the Windows Common Dialogs
  • how you can incorporate native controls in your VisualWorks windows

Goals to achieve:

Participants should feel more confident in using the VisualWorks Smalltalk environment on the Microsoft platforms, and feel better able to achieve compliance to the Windows95 platform guidelines.

From this tutorial you can download the presentation, and a zip file containing the source code for the DLL's and VisualWorks from Sepher's site.

T7: ApplFLab: Custom-made User Interface Components in VisualWorks

Koen De Hondt and Roel Wuyts, Vrije Universiteit Brussel, Belgium

The means to reuse subapplications in VisualWorks are largely insufficient. While reuse of custom-made user interface components is very important, their creation is extremely difficult, because the subject is badly documented in manuals and other publications.

Outline:

The important classes of the application builder framework are explained in detail. After a step-by-step illustration of how to build new components and how to specialize standard components, with mention of possible pitfalls, ApplFLab is introduced as a set of tools that support the creation/specialization of components, together with their property tools, aspect editors and palettes.

Goal to achieve:

The tutorial gives a thorough understanding of the internal workings of VisualWorks components and the application builder framework. It stresses the importance of the role of custom-made components to achieve reuse and introduces ApplFLab (Application Framework Laboratory) to make clear that tool support is needed to guide the component developer through the component building phases.

Workshops and Panels

W1: Specifying and building with frameworks

Alan Wills, Icon Computing Europe Ltd, UK

The development process from analysis through to design and coding can be much improved by using reusable components. The most useful components are not individual classes, but frameworks \--- which focus on the relationships and interactions between objects.

This workshop will look at some of the issues in building abstract models and designs with frameworks, and using precise specifications in frameworks.

Format:

Structure: Introduction; exercises; discussion.
Some lecturing, but mostly workshop format.
Participants will be taken through several exercises building and composing frameworks. Any program code examples will be written in Smalltalk.

Participants:

Experience of OOP will be necessary.

OMT class diagram notation will be used, but only very briefly explained.

Some idea of what a postcondition is would be useful.

W2: Design Fest (workshop on design - Design with OMT)

Annick Fron, AFC Europe, France

Object programming gives more alternatives to design a project, and develops some typical skills when structuring information and software architecture. Some (2) small interesting examples will be given to the participants to challenge their experience and knowledge when analyzing and designing a project.

Each working group should deliver an OMT static model, and discuss use of dynamic models and use cases. In case of success for the workshop, these experiments could be published in a collective paper.

Panel: Define/improve/measure/.. quality of an object oriented (Smalltalk) system

Chairman: David Grietens, hIghQ bvba, Belgium

Experience reports or short presentations

VASER: an development framework for business applications in VisualAge

    Thomas Stalzer, Germany

PERSIST: an object oriented database engine for Smalltalk

    Juergen N. Franken, Lambda Solution, Germany

How to build fault tolerant distributed applications using Smalltalk replicated objects?

    Karim Mazouni, EPFL, Switzerland