[comp.software-eng] CUI articles on the OO approach available through FTP

casais@uni2a.unige.ch (04/17/91)

Papers written by members of the research group on object-oriented systems led
by prof. D. Tsichritzis at the Centre Universitaire d'Informatique in Geneva
are now available in a public electronic archive.  This collection includes
the most representative articles that appeared between 1987 and 1990 in four
technical reports, which are now nearly or completely out of print.  It
encompasses all the domains investigated during this period, and describes all
the research activities carried out until mid-1990.  Of course, it no longer
represents faithfully our current approach and interests, which have shifted
significantly as the years passed.  This collection is therefore provided more
as reference material on our previous work than as a status report on our
activities.  New papers, describing our current ideas and providing updated
information on our research will be published in a forthcoming technical
report around July 1991. 


The papers can be obtained through anonymous ftp.  Connect to machine
cui.unige.ch (IP address 129.194.32.1) with the ftp command; give ftp as
username and the address of your machine (or simply press the return key) as
password.  All papers are stored in the directory named OO-articles. 

===============================================================================

%E D. C. Tsichritzis
%T Perspectives on Object Oriented Research
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D September 1990
%X This document groups papers written by members of prof. D. Tsichritzis's
research group on object-oriented systems at the Centre Universitaire
d'Informatique in Geneva. This collection includes the most representative
articles that appeared between 1987 and 1990 in four technical reports, which
are now nearly or completely out of print. It encompasses all the domains
investigated during this period, and describes all the research activities
carried out until mid-1990. However, it no longer represents faithfully our
approach and our interests, which have of course shifted significantly as the
years passed. This collection is therefore provided more as reference material
on our previous work than as a status report on our activities. New papers,
describing our current ideas and providing updated information on our research
will be published in a forthcoming technical report around July 1991. 
%O Copyright 1987, 1988, 1989, 1990, D. Tsichritzis et auteurs. Tous droits
r\'eserv\'es, sauf exception pour les articles publi\'es dans des revues ou
actes de conf\'erence. Reproduction autoris\'ee avec mention de la source. 
L'utilisation \`a des fins commerciales est interdite sans l'accord des auteurs
ou des ayant-droits. All material is copyrighted 1987, 1988, 1989 and 1990, D. 
Tsichritzis and authors, Geneva, except for papers published in journals and
conferences. Articles may be reproduced freely with full mention of the source. 
Reproduction for commercial purposes is not allowed without formal acceptance of
the authors. 

%A O. M. Nierstrasz
%T Object-Oriented Concepts
%P 1-17
%B Active Object Environments
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D June 1988
%O also: A Survey of Object-Oriented Concepts, in Object-Oriented Concepts,
Databases and Applications, ed. W. Kim and F. Lochovsky, ACM Press / 
Addison-Wesley, pp. 3--21, 1989. 

%A O. M. Nierstrasz
%A D. C. Tsichritzis
%T Integrated Office Systems
%P 187-201
%B Active Object Environments
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D June 1988
%O also: Integrated Office Systems, in Object-Oriented Concepts, Databases, and
Applications, ed. W. Kim and F. Lochovsky, ACM Press / Addison-Wesley, 
pp. 199--215, 1989.

%A O. M. Nierstrasz
%T HYBRID -- a Language for Programming with Active Objects
%B Objects and Things
%P 15-42
%E D. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D April 1987
%X Hybrid is an object-oriented programming language in which objects are the
active entities. Active objects in Hybrid are both concurrent and persistent,
thus unifying the notion of an "object" with that of processes and files.
Hybrid introduces the concept of an activity as a means for controlling the
interactions between active objects. The language provides constructs that
allow one to restrict or relax this control in a fairly simple way. In
particular, mechanisms for delaying and "delegating" activities are provided.
Furthermore, Hybrid is designed so as to provide powerful constructs for reusing
code in a way that is consistent with strong-typing.

%A O. M. Nierstrasz
%T Triggering Active Objects
%B Objects and Things
%P 43-78
%E D. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D April 1987
%X Active objects are concurrent, active entities based on the object-oriented
paradigm. We present a model for understanding active objects based on the
remote procedure call, and on the notion of activities, which capture a
single-thread flow of control between objects. We also present simple
mechanisms for creating activities, interleaving and delaying activities, and
for constructing atomic actions and concurrent subactivities. We show how these
mechanisms can be used to capture very general forms of triggering. Our model
for active objects, and the mechanisms for manipulating activities are embedded
in Hybrid, a concurrent, object-oriented language. The model is also useful
for understanding and dealing with deadlock in such systems.

%A D. Konstantas
%A O. Nierstrasz
%A M. Papathomas
%T An Implementation of HYBRID, a Concurrent, Object-Oriented Language
%P 61-105
%B Active Object Environments
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D June 1988
%X This paper is a report on a prototype implementation of Hybrid, a
strongly-typed, concurrent, object-oriented language. The implementation we
describe features a compile-time system for translating Hybrid object type
definitions into C, a run-time system for supporting communication, concurrency
and object persistence, and a type manager that mediates between the two.

%A D. Tsichritzis
%A E. Fiume
%A S. Gibbs
%A O. Nierstrasz
%T KNOs: Knowledge Acquisition, Dissemination and Manipulation Objects
%B Objects and Things
%P 79-100
%E D. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D April 1987
%O also: ACM TOOIS, vol. 5, no. 1, January 1987, pp. 96-112.
%X Most object-oriented systems lack two useful facilities: the ability of
objects to migrate to new environments, and the ability of objects to acquire
new operations dynamically. This paper proposes Knos, an object-oriented
environment which supports these actions. Their operations, data structures,
and communication mechanisms are discussed. Kno objects "learn" by exporting
and importing new or modified operations. The use of such objects as
intellectual support tools is outlined. In particular, various applications
involving co-operation, negotiation, and apprenticeship among objects are
described.

%A E. Casais
%T An Object Oriented System Implementing KNOs
%P 114-134
%B Active Object Environments
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D June 1988
%O A shortened version of this paper has appeared in Proceedings of the
Conference on Office Information Systems (COIS), Palo Alto, March 1988, pp.
284-290.
%X We discuss a distributed object-oriented system written in LISP that
implements KNOs (KNowledge acquisition, dissemination and manipulation Objects).
The system emphasizes advanced features like object autonomy, mobility and
dynamic inheritance. The objects are active, independent entities that can
travel in a local area network and protect themselves from external aggressions.
A dynamic inheritance mechanism enables them to modify their behaviour during
their lifetime. We give a description of our system and illustrate its
functionality with selected examples.

%A D. C. Tsichritzis
%A O. M. Nierstrasz
%T Fitting Round Objects into Square Databases
%P 202-218
%B Active Object Environments
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D June 1988
%O also: Proceedings ECOOP '88 (Oslo), Lecture Notes in Computer Science 322,
eds. S. Gjessing and K. Nygaard, pp. 283-299, Springer-Verlag, 1988.
%X Object-oriented systems could use much of the functionality of database
systems to manage their objects. Persistence, object identity, storage
management, distribution and concurrency control are some of the things that
database systems traditionally handle well. Unfortunately there is a
fundamental difference in philosophy between the object-oriented and database
approaches, namely that of object independence versus data independence . We
discuss the ways in which this difference in outlook manifests itself, and we
consider the possibilities for resolving the two views, including the current
work on object-oriented databases. We conclude by proposing an approach to
co-existence that blurs the boundary between the object-oriented execution
environment and the database.

%A Anders Bj\"ornerstedt
%T Secondary Storage Garbage Collection for Decentralized Object-Based Systems
%P 277-319
%B Object Oriented Development
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1989
%X This paper describes a mechanism for secondary storage garbage collection
that may be used to reclaim inaccessible resources in decentralized persistent
object based systems. Schemes for object addressing and object identification
are discussed and a proposal is made which handles volatile objects separately
from persistent objects. The garbage collection of the space of volatile
objects is decoupled from the garbage collection of the space of persistent
objects. The first kind of garbage collection can avoid the complexity and
overhead of a distributed algorithm by classifying "exported" objects as
persistent. The problem of detecting and collecting "distributed garbage" is
then deferred to garbage collection of persistent objects.

%A M. Papathomas
%T Concurrency Issues in Object-Oriented Programming Languages
%P 207-245
%B Object Oriented Development
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1989
%X The integration of concurrent and object-oriented programming, although
promising, presents problems that have not yet been fully explored. In this
paper we attempt to identify issues in the design of concurrent object-oriented
languages that must be addressed to achieve a satisfactory integration of
concurrency in the object-oriented framework. We consider the approaches
followed by object-oriented languages for supporting concurrency and identify
six categories of concurrent object-oriented languages. Then, we review several
concurrent object-oriented languages and examine the interaction of their
concurrency features with their object-oriented features and with
object-oriented software construction.

%A Oscar Nierstrasz
%A Michael Papathomas
%T Viewing Objects as Patterns of Communicating Agents
%P 255-266
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%O Also: SIGPLAN Notices (Special issue on OOPSLA / ECOOP '90), vol. 25, no. 10,
pp. 38-43, October 1990.
%X Following our own experience developing a concurrent object-oriented language
as well of that of other researchers, we have identified several key problems in
the design of a concurrency model compatible with the mechanisms of
object-oriented programming. We propose an approach to language design in which
an executable notation describing the behaviour of communicating agents is
extended by syntactic patterns that encapsulate language constructs. We
indicate how various language models can be accommodated, and how mechanisms
such as inheritance can be modeled. Finally, we introduce a new notion of types
that characterizes concurrent objects in terms of their externally visible
behaviour.

%A Oscar Nierstrasz
%T A Guide to Specifying Concurrent Behaviour with Abacus
%P 267-293
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%X We present the syntax, semantics and usage of Abacus, an executable notation
for specifying concurrent computations that extends CCS with label prefixing and
filtering operators for encapsulating systems of communicating agents and a
pattern mechanism for parameterizing behaviour expressions. Abacus is intended
to be used as a semantic target and a prototyping tool for the specification of
concurrent object-based languages and systems. We illustrate the use of Abacus
through a series of standard concurrency examples, concluding with an executable
specification of SAL, a Simple Actor Language.

%A D. Tsichritzis
%T Object-Oriented Development for Open Systems
%P 1-13
%B Object Oriented Development
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1989
%O Also: IFIP'89 Proceedings, ed. G. X. Ritter, pp. 1033-1040, North-Holland,
1989.
%X This paper outines the requirements for a series of tools to develop
effectively systems in an object-oriented manner. It points out that
reusability requires a certain change in philosophy and methodology for program
development.

%A Anna-Kristin Pr\"ofrock
%A Dennis Tsichritzis
%A Gerhard M\"uller
%A Martin Ader
%T ITHACA: an Integrated Toolkit for Highly Advanced Computer Applications
%P 321-344
%B Object Oriented Development
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1989
%O The ITHACA project is one of the Technology Integration Projects supported by
the EEC under the Esprit II Programme. Much of the material in this paper was
written by persons working in the ITHACA project. We acknowledge the
contributions of Anders Bj\"ornerstedt, Oscar Nierstrasz, Simon Gibbs and Gerti
Kappel.

%A E. Fiume
%A D. Tsichritzis
%A L. Dami
%T A Temporal Scripting Language for Object-Oriented Animation
%B Objects and Things
%P 129-148
%E D. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D April 1987
%O also: Proceedings of Eurographics 1987, Elsevier Science Publishers
(North-Holland), Amsterdam.
%X Object orientation and concurrency are inherent to computer animation. Since
the pieces of an animation can come from various media such as
computer-generated imagery, video, and sound, the case for object orientation is
all the stronger. However, languages for expressing the temporal co-ordination
of animated objects have been slow in coming. We present such a language in
this paper. Since the movements that an animated object can perform are also
encapsulated as objects in our system, the scripting language can also be used
to specify motion co-ordination. Such "motion objects" can be applied to any
animated object. The syntax, semantics, and implementation of this language
will be described, and we shall show how to specify device-independent computer
animation.

%A Oscar Nierstrasz
%A Laurent Dami
%A Vicki de Mey
%A Marc Stadelmann
%A Dennis Tsichritzis
%A Jan Vitek
%T Visual Scripting: Towards Interactive Construction of Object-Oriented
Applications
%P 315-331
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%O ITHACA is a Technology Integration Project (#2705) in the Office & Business
section of the Esprit II Programme. The partners are Nixdorf (Berlin), Bull
(Paris), Datamont (Milan), T\`ecnics en Automatitzaci\`o d'Oficines (Barcelona),
the Foundation of Research and Technology, Hellas (Iraklion) and the Centre
Universitaire d'Informatique of the University of Geneva.
%X Object-oriented programming techniques are known to improve the flexibility
and reusability of certain kinds of software. Libraries of object classes,
however, continue to be difficult both to develop and to reuse. We present an
approach to object-oriented application development in which applications are
constructed by interactively "scripting" cooperating, reusable software objects.
A visual scripting tool is being developed within ITHACA, an Esprit II project
which seeks to produce an integrated environment for the rapid and flexible
development of object-oriented applications for selected application domains.

%A Laurent Dami
%T Scripting Musical Components in Application Interfaces
%P 357-366
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%X Musical events can enrich application interfaces in two ways: by adding new
channels for notifying users about changes in the internal state of an
application, or by getting data input from audio equipment connected to the
workstation. Such possibilities will only get more widely used if environments
are developed in which musical components can be scripted, i.e. can be easily
arranged and connected to applications by direct manipulation, as opposed to
traditional programming methods. Similar facilities already exist in several
systems for working with graphical components like buttons or windows. This
paper describes ongoing work for extending one of those systems, namely
Interface Builder on the NeXT workstation, with musical capabilities.

%A S. Gibbs
%A D. Tsichritzis
%A E. Casais
%A O. Nierstrasz
%A X. Pintado
%T Class Management for Software Communities
%P 13-35
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%O Also: Communications of the ACM, vol. 33, no. 9, ACM, September 1990, pp. 
90-103. 
%X Object-oriented programming is considered in the context of software
communities - groups of designers and developers sharing knowledge and
experience. One way of fostering reuse of this experience is by establishing
large collections of reusable object classes. Resulting problems include: Class
packaging and class organization - how can classes and their methods be
represented to simplify reuse. Class selection and exploration - what query and
browsing facilities are needed by developers in order to facilitate software
reuse. Class evolution - how may the class hierarchy be reorganized as a result
of changes introduced by developers. These issues are illustrated by examining
prototype tools and systems intended to aid object-oriented programming.

%A Simon Gibbs
%T Querying Large Class Collections
%P 63-77
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%X Object-oriented programming and the reuse of classes and methods, when
practised on a large scale by communities of programmers and designers sharing
software components, will lead to the creation of very large class collections.
In such a context, facilities for querying a class collection become important.
This paper presents an object-oriented data model, Xos, which can be used to
logically organize and describe a class collection in a form suitable for
querying. An extended example based on modelling C++ is given.

%A Xavier Pintado
%T Selection and Exploration in an Object-Oriented Environment: The Affinity
Browser
%P 79-88
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%O Also: X. Pintado and D. Tsichritzis, Satellite: Hypermedia Navigation by
Affinity, in: Hypertext---Concepts, Systems and Applications, Ed. A. Rizk, N. 
Streitz J. Andr\'e, Proceedings of the European Conference on Hypertext
(ECHT'90), Versailles, November 1990, pp. 274-287.
%X Reusability is widely believed to be a key to improving software development
productivity. However, in practice, effective reuse is more an achievement of
good development environments than a strategy for software development. It
seems natural that a reduction of the effort needed for reuse should have a
positive impact on reuse. Among the various lines of attack that may lead to a
reduction of the reuse effort, we address the problem of finding and
understanding reusable functionality in an object-oriented software environment.
This paper presents the Affinity Browser, a selection and exploration tool based
on the notion of affinity between objects. The user is presented with a two
dimensional display where the objects are displayed in such a way that their
relative positions convey their affinity i.e., objects lying closer together are
more strongly related than objects lying farther apart. The browser provides
for different views of the relationships among objects. Each view is based on a
different measure of affinity and thus portrays a different relationship. We
discuss the rationale behind the Affinity Browser tool and discuss the way users
can take advantage of it to understand the functionality provided by a set of
classes. The Affinity Browser's ability to help understanding relationships
between objects will be illustrated by two examples of view construction.

%A Eduardo Casais
%T Managing Class Evolution in Object-Oriented Systems
%P 133-195
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%X Software components developed with an object-oriented language undergo
considerable reprogramming before they become reusable in a wide range of
applications or domains. Tools and methodologies are therefore needed to cope
with the complexity of designing, updating and reorganizing vast collections of
classes. This paper describes several techniques for controlling change in
object-oriented systems, illustrates their functionality with selected examples
and discusses their advantages and their limitations. As a complement to
traditional approaches like version management, we propose new algorithms for
automatically restructuring a hierarchy when classes are added to it. These
algorithms not only help in handling modifications to libraries of software
components, but they also provide useful guidance for detecting and correcting
improper class modelling.

%A Constantin Arapis
%T Specifying Object Life-Cycles
%P 197-225
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%X In this paper we propose a number of extensions for object-oriented models in
order to describe dynamic aspects of applications. These extensions enable the
specification of objects that modify their behavior dynamically and the control
of the dynamic evolution of objects by means of constraints expressed in the
language of propositional temporal logic. We shall point out what
differentiates our proposal from existing models and give examples to illustrate
our arguments. We also present an algorithm for verifying consistency of
specifications and which is suitable for an eventual implementation of our
extensions.

%A Dennis Tsichritzis
%A Simon Gibbs
%T Towards Integrated Software Communities
%P 3-11
%B Object Management
%E D. C. Tsichritzis
%I Centre Universitaire d'Informatique
%C Gen\`eve
%D July 1990
%O Submitted as a position paper to the Esprit Advisory Board.
%X The large-scale reuse and distribution of software components requires
communities of software developers supported by an infrastructure of
communication and information services. This paper elaborates on the notion of
software communities and describes their role in software production. Problems
associated with sharing components within a software community are discussed.
Finally the paper describes the steps needed to promote the establishment of a
robust software community.