O2C: A Semantics Thread from Objects to Components
(a short course)

Helsinki, Finland
June 12-13, 2003


Lecturers:

 
F. Arbab             CWI        Amsterdam, the Netherlands        farhad@cwi.nl
F. de Boer           CWI        Amsterdam, the Netherlands        frb@cwi.nl
M. Bonsangue     LIACS     Leiden, the Netherlands                marcello@liacs.nl
J. Kok                  LIACS     Leiden, the Netherlands                joost@liacs.nl
Description:
This short course covers the basic concepts that underlie object oriented and component based software engineering and their semantic justifications.  We start with the basic concepts such as abstract data types and inheritance, as used in the object oriented paradigm to enhance reuse, modularity, and maintenance of software.  We show how the concept of component supports and generalizes similar concerns in the engineering of large, heterogeneous, loosely-coupled, distributed software systems.

The current component technology regards components as extended objects.  We describe an alternative approach that starts with the concept of components as abstract behavior types.  We show how this new interpretation makes components amenable to explicit exogenous coordination, supports compositionality, and provides a clear separation between computation and communication concerns.  This leads to a new model of component composition that is based on a calculus of connectors for algebraic construction of component glue code.
 

Course Material:
For a copy of the slides, please send your request to F. Arbab in an email.  Do not forget to include your student ID number for authentication.


References:

Component Software: Beyond Object-Oriented Programming
Second Edition
Clemens Szyperskii
Addison-Wesley and ACM Press, 2002
ISBN 0-201-74572-0

Understanding UML: A Formal Semantics of Concurrency and Communication in Real-Time UML
W. Damm; B. Josko; A. Pnueli; A. Votintseva;
Proceedings of FMCO '02

The OMEGA Component Model
F. de Boer; M. Bonsangue; J. Jacob

Towards a Type-Theoretic Interpretation of Components
M. Bonsangue

What Do You Mean, Coordination?
F. Arbab
Bulletin  of the Dutch Association for Theoretical Computer Science (NVTI)
March '98

Reusable Coordination Modules for Massively Concurrent Applications
F. Arbab, C. L. Blom, F. J. Burger, and C. T. H. Everaars
Software: Practice and Experience, Vol. 28, No. 7, June 1998, pp. 703-735
short version: Proceedings of Europar96, Lyon (France), August 1996.

MoCha: A Framework for Coordination Using Mobile Channels
F. Arbab; F.S. de Boer; M.M. Bonsangue; J.V. Guillen Scholten;
SEN-R0128, 2001

A Channel-Based Coordination Model for Components
F. Arbab; F.S. de Boer; M.M. Bonsangue; J.V. Guillen Scholten;
SEN-R0127,  2001

Reo: A Channel-based Coordination Model for Component Composition
F. Arbab
Mathematical Structures in Computer Science, 2003

A Coinductive Calculus of Component Connectors
F. Arbab; J. Rutten
SEN-R0216

Abstract Behavior Types: A Foundation Model for Components and Their Composition
F. Arbab
Proceedings of FMCO '02

Links:
 
First International Symposium on Formal Methods for Components and Objects (FMCO '02)
November 5-8, 2002
Leiden, The Netherlands

Second International Symposium on Formal Methods for Components and Objects (FMCO '03)
November 4-7, 2003
Leiden, The Netherlands

Compositional Verification of UML Models Workshop of the UML 2003 Conference
October 21, 2003
San Francisco, California, USA

The OMEGA project home-page: IST-2001-33522 Correect Development of Real-Time Embeded Systems

The ArchiMate project home-page
 

Assignments:
 
Due Date:                             15 August 2003
Electronic submission:     Antti.Viljamaa@cs.helsinki.fi
Format:                                 You can use any of the following formats: ps, pdf, or doc.

There are 6 homework assignment exercises for the students who wish to receive a grade for this course. The solutions to the exercises should be send by  email to the Teaching Assistant for the course, Antti Viljamaa, by the above due date.  You are expected to work individually.  The slides of the course provide the required knowledge (apart from your knowledge of programming languages like Java).  For any other information or question about the exercises  please consult the Teaching Assistant for the course.