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.