Oscar Nierstrasz

A Calculus of Evolving Objects (2009)

Mariangiola Dezani-ciancaglini, Paola Giannini, Oscar Nierstrasz

Abstract. The demands of developing modern, highly dynamic applications have led to an increasing interest in dynamic programming languages and mechanisms. Not only applications must evolve over...

Nierstrasz O. Practical, pluggable types (2009)

Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz

Abstract. Most languages fall into one of two camps: either they adopt a unique, static type system, or they abandon static type-checks for runtime checks. Pluggable types blur this division by (i)...

Group (2009)

Gisèle Douta, Haydar Talib, Oscar Nierstrasz, Frank Langlotz

Gisèle Douta, Haydar Talib, Oscar Nierstrasz and Frank Langlotz, “CompAS: A new approach to commonality and variability analysis with applications in computer assisted orthopaedic surgery, ”...

Exploiting Runtime Information in the IDE ∗ (2009)

David Röthlisberger, Orla Greevy, Oscar Nierstrasz

Developers rely on the mechanisms provided by their IDE to browse and navigate a large software system. These mechanisms are usually based purely on a system’s static source code. The static...

Consistent Layout for Thematic Software Maps ∗ (2009)

Adrian Kuhn, Peter Loretan, Oscar Nierstrasz

Software visualizations can provide a concise overview of a complex software system. Unfortunately, since software has no physical shape, there is no “natural ” mapping of software to a...

Transactional Memory in a Dynamic Language ⋆ (2009)

Lukas Renggli, Oscar Nierstrasz

Concurrency control is mostly based on locks and is therefore notoriously difficult to use. Even though some programming languages provide high-level constructs, these add complexity and potentially...

A Calculus of Evolving Objects ⋆ (2009)

Mariangiola Dezani-ciancaglini, Paola Giannini, Oscar Nierstrasz

Abstract. The demands of developing modern, highly dynamic applications have led to an increasing interest in dynamic programming languages and mechanisms. Not only applications must evolve over...

Change-Enabled Software Systems ⋆ (2009)

Oscar Nierstrasz, Marcus Denker, Tudor Gîrba, Adrian Lienhard, David Röthlisberger

Abstract. Few real software systems are built completely from scratch nowadays. Instead, systems are built iteratively and incrementally, while integrating and interacting with components from many...

JExample: Exploiting Dependencies Between Tests to Improve Defect Localization (2009)

Adrian Kuhn, Bart Van Rompaey, Lea Haensenberger, Oscar Nierstrasz, Serge Demeyer, Markus Gaelli, ...

Abstract. To quickly localize defects, we want our attention to be focussed on relevant failing tests. We propose to improve defect localization by exploiting dependencies between tests, usingaJUNIT...

Explicit Namespaces 1 (2009)

Franz Achermann, Oscar Nierstrasz

Abstract. A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even...

Context-Oriented Programming: Beyond Layers ⋆ (2009)

Martin Löwis, Marcus Denker, Oscar Nierstrasz

Abstract. While many software systems today have to be aware of the context in which they are executing, there is still little support for structuring a program with respect to context. A first step...

von Pisa, Italien (2009)

Luca Deri, Leiter Der Arbeit, Prof Dr, Oscar Nierstrasz, ...

Von der Philosophisch-naturwissenschaftlichen Fakultät angenommen.

Enriching Reverse Engineering with Annotations ⋆ (2009)

Andrea Brühlmann, Tudor Gîrba, Orla Greevy, Oscar Nierstrasz

Abstract. Much of the knowledge about software systems is implicit, and therefore difficult to recover by purely automated techniques. Architectural layers and the externally visible features of...

Software Composition Group (2009)

Oscar Nierstrasz, Lukas Renggli, Armin Rigo, Toon Verwaest, Softwaretechnik Und Programmiersprachen

Abstract. We report on our experiences with the Spy project, including implementation details and benchmark results. Spy is a re-implementation of the Squeak (i.e., Smalltalk-80) VM using the PyPy...

Software Composition Group (2009)

David Röthlisberger, Orla Greevy, Oscar Nierstrasz

Abstract. Development environments typically present the software engineer with a structural perspective of an object-oriented system in terms of packages, classes and methods. From this perspective...

of this document can be found at the following places. (2009)

Anselm Strauss, Prof Dr, Oscar Nierstrasz, Anselm Strauss

Cross-cutting concerns in OOP lead to scattered and tangled code that reduces transparency and maintainability of a program, and produces duplicated code. Common examples of cross-cutting concerns...

Software Composition Group (2009)

Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz

Most languages fall into one of two camps: either they adopt a unique, static type system, or they abandon static type-checks for run-time checks. Pluggable types blur this division by (i) making...

1 (2009)

Stéphane Ducasse, Tudor Gîrba, Orla Greevy, Michele Lanza, Oscar Nierstrasz

The increasing amount of data available about software systems poses new challenges for re- and reverse engineering research, as the proposed approaches need to scale. In this context, concerns about...

Software Composition Group (2009)

Lea Haensenberger, Adrian Kuhn, Oscar Nierstrasz

When changing the API of a framework, we need to migrate its clients. This is best done automatically. In this paper, we focus on API migration where the mechanism for inversion of control changes....

Software Composition Group (2009)

Oscar Nierstrasz, Lukas Renggli, Armin Rigo, Toon Verwaest, Softwaretechnik Und Programmiersprachen

Abstract. We report on our experiences with the Spy project, including implementation details and benchmark results. Spy is a re-implementation of the Squeak (i.e., Smalltalk-80) VM using the PyPy...

Comparative analysis of evolving software systems using the Gini coefficient (2009)

Vasa, Rajesh, Lumpe, Marcus, Branch, Philip, Nierstrasz, Oscar

Software metrics offer us the promise of distilling useful information from vast amounts of software in order to track development progress, to gain insights into the nature of the software, and to...

1 Supporting Compositional Styles for Software Evolution (2008)

Oscar Nierstrasz, Franz Achermann

Software is not just difficult to develop, but it is even more difficult to maintain in the face of changing requirements. The complexity of software evolution can, however, be significantly reduced...

High-Level Views in Object-Oriented Systems using Formal Concept Analysis (2008)

Gabriela Beatriz Arévalo, Von Argentinien, Prof Dr, Stéphane Ducasse, ...

This work is dedicated to Mom and Dad Within object-oriented systems there are different meaningful dependencies between different objects. These dependencies reveal contracts, collaborations and...

Chapter 4 Regular Types for Active Objects * (2008)

Oscar Nierstrasz

Abstract Previous work on type-theoretic foundations for object-oriented programming languages has mostly focused on applying or extending functional type theory to functional “objects. ” This...

Introduction Component-Oriented Software Development * (2008)

Oscar Nierstrasz, Simon Gibbs, Dennis Tsichritzis

Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications

Modeling History to Understand Software Evolution (2008)

Prof Dr, Stéphane Ducasse, Prof Dr, Oscar Nierstrasz, Tudor Gîrba, ...

The work presented here goes well beyond the words and pictures, and into the very intimate corners of my existence. This work only holds what can be represented, while the real value lies somewhere...

Component-Oriented (2008)

Oscar Nierstrasz, Laurent Dami

Abstract Modern software systems are increasingly required to be open and distributed. Such systems are open not only in terms of network connections and interoperability support for heterogeneous...

Context-Oriented Programming: Beyond Layers ⋆ (2008)

Martin Löwis, Marcus Denker, Oscar Nierstrasz

Abstract. While many software systems today have to be aware of the context in which they are executing, there is still little support for structuring a program with respect to context. A first step...

jakarta.apache.org/ant/. (2008)

An Franz Achermann, Oscar Nierstrasz, R. Balter, L. Bellissard, F. Boyer, M. Riveill, ...

[Arb98] F. Arbab. Coordination and its relevance. In Proceedings of the 9th

and (2008)

Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Andrew P. Black

Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an...

Transactional Memory for Smalltalk (2008)

Lukas Renggli, Oscar Nierstrasz, L. Renggli, O. Nierstrasz

scg.unibe.ch Abstract. Concurrency control in Smalltalk is based on locks and is therefore notoriously difficult to use. Even though some implementations provide high-level constructs, these add...

Combining Development Environments with Reverse Engineering 1. Shortcomings of current IDEs (2008)

David Röthlisberger, Oscar Nierstrasz

Understanding and maintaining large software systems is a complex and time-consuming yet inevitable challenge. Most systems frequently change and evolve over time to meet new requirements. To perform...

Introduction Component-Oriented Software Development (2008)

Oscar Nierstrasz, Simon Gibbs, Dennis Tsichritzis

Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications

Scripting Coordination Styles 1 (2008)

Franz Achermann, Stefan Kneubuehl, Oscar Nierstrasz

Abstract. The fact that so many different kinds of coordination models and languages have been proposed suggests that no one single approach will be the best for all coordination problems. Different...

Persephone Taking Smalltalk Reflection to the sub-method Level (2008)

Leiter Der Arbeit, Prof Dr, Oscar Nierstrasz

ii Further information about this work, the tools used and an online version of this document can be found at the following places.

Software Composition Group (2008)

Oscar Nierstrasz, Marcus Denker

Software changes. Software systems are constantly modified and extended. Versions are split and sometimes merged. Software is refactored and occasionally reengineered. Programming languages, however,...

ii (2008)

Pascal Zumkehr, Leiter Der Arbeit, Prof Dr, Oscar Nierstrasz, ...

Software systems undergo continual change if they want to remain useful over time. However, only limited support for change is offered by current programming languages and development environments....

Software Composition Group, University Of Bern Flattening Traits (2008)

Oscar Nierstrasz, Stéphane Ducasse, Nathanael Schärli

Traits are fine-grained components that can be used to compose classes, while avoiding many of the problems of multiple inheritance and mixin-based approaches. Since most implementations of traits...

SUMMARY (2008)

Stéphane Ducasse, Oscar Nierstrasz, Matthias Rieger

Although duplicated code is known to pose severe problems for software maintenance, it is difficult to identify in large systems. Many different techniques have been developed to detect software...

Beyond Objects: Components 1 (2008)

Theo Dirk Meijler, Oscar Nierstrasz

Abstract. Traditional software development approaches do not cope well with the evolving requirements of open systems. We argue that such systems are best viewed as flexible compositions of...

Software Composition Group (2008)

Markus Gaelli, Oscar Nierstrasz

1 Creating one’s own games has been the main motivation for many people to learn programming. But the barrier to learn a general purpose programming language is very high, especially if some...

Software (2008)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

Supporting Feature Analysis with Runtime Annotations ∗ – Position Paper – (2008)

Marcus Denker, Orla Greevy, Oscar Nierstrasz

The dynamic analysis approach to feature identification describes a technique for capturing feature behavior and mapping it to source code. Major drawbacks of this approach are (1) large amounts of...

Exposing Side Effects in Execution Traces ∗ (2008)

Adrian Lienhard, Tudor Gîrba, Orla Greevy, Oscar Nierstrasz

We need to understand the impact of side effects whenever changing complex object-oriented software systems. This can be difficult as side effects are at best implicit in static views of the...

Classes = Traits + States + Glue 1 Beyond mixins and multiple inheritance (2008)

Nathanael Schaerli, Stéphane Ducasse, Oscar Nierstrasz

ABSTRACT We present a simple, component-based model of mixins, called traits, and argue that this simple model sidesteps many of the practical problems with other approaches to mixins and multiple...

Magritte Meta-Described Web Application Development (2008)

Lukas Renggli, Leiter Der Arbeit, Prof Dr, Stéphane Ducasse, ...

ii Further information about this work, the tools used and an online version of this document can be found at the following places.

SUMMARY (2008)

Stéphane Ducasse, Oscar Nierstrasz, Matthias Rieger

Although duplicated code is known to pose severe problems for software maintenance, it is difficult to identify in large systems. Many different techniques have been developed to detect software...

1 Software Composition Group (2008)

Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts

Abstract. Given the importance of encapsulation to object-oriented programming, it is surprising to note that mainstream object-oriented languages offer only limited and fixed ways of encapsulating...

Traits Composing Classes from Behavioral Building Blocks (2008)

Nathanael Schärli, Leiter Der Arbeit, Prof Dr, Stéphane Ducasse, ...

Inheritance is well-known and accepted as a fundamental mechanism for reuse in object-oriented languages. Unfortunately, the main variants — single inheritance, multiple inheritance, and mixin...

Preface xiii (2008)

Dennis Tsichritzis, Akinori Yonezawa, Oscar Nierstrasz, Dennis Tsichritzis

ii Placeholder page (blank) Placeholder page (blank) iii iv Placeholder page (blank) Contents Contributors ix

Composing Unit Tests ⋆ (2008)

Markus Gälli, Orla Greevy, Oscar Nierstrasz

Abstract. 1 If we were to apply the testing techniques of object-oriented systems prescribed by the XUnit framework to a car factory, the result would be an inefficient process: A tire would be...

On the resilience of classes to change (2008)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar, Woodward, Clinton

Software systems evolve over time incrementally and sections of code are modified. But, how much does code really change? Lehman's laws suggest that software must be continuously adapted to be...

Context-Oriented Programming (2008)

Robert Hirschfeld, Pascal Costanza, Oscar Nierstrasz

Context-dependent behavior is becoming increasingly important for a wide range of application domains, from pervasive computing to common business applications. Unfortunately, mainstream programming...

On the resilience of classes to change (2008)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar, Woodward, Clinton

Software systems evolve over time incrementally and sections of code are modified. But, how much does code really change? Lehman's laws suggest that software must be continuously adapted to be...

Test blueprints – exposing side effects in execution traces to support writing unit tests (2008)

Adrian Lienhard, Tudor Gîrba, Orla Greevy, Oscar Nierstrasz

Writing unit tests for legacy systems is a key maintenance task. When writing tests for object-oriented programs, objects need to be set up and the expected effects of executing the unit under test...

Practical object-oriented back-in-time debugging (2008)

Adrian Lienhard, Tudor Gîrba, Oscar Nierstrasz

Abstract. Back-in-time debuggers are extremely useful tools for identifying the causes of bugs. Unfortunately the “omniscient ” approaches that try to remember all previous states are impractical...

CHAPTER 1 Applications = Components + Scripts A tour of Piccola (2007)

Franz Achermann, Oscar Nierstrasz

Abstract. Piccola is a language for composing applications from software components. It has a small syntax and a minimal set of features needed for specifying different styles of software...

Contractual Types DRAFT ⋆ — Submitted for publication (2007)

Oscar Nierstrasz

www.iam.unibe.ch/∼scg Abstract. Real software systems are open and evolving. It is a constant challenge in such environments to ensure that software components are safely composed in the face of...

Meta-level Language Bridging (2007)

Nathanael Schaerli, Franz Achermann, Oscar Nierstrasz

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial...

Software Composition Group (2007)

Thomas F. Hofmann, Prof Dr, Oscar Nierstrasz

ii Typesetting made with L ATEX & pleasure:-) Author’s address:

1 PICCOLA – a Small Composition Language (2007)

Franz Achermann, Markus Lumpe, Jean-guy Schneider, Oscar Nierstrasz

Although object-oriented languages are well-suited to implement software components, they fail to shine in the construction of component-based applications, largely because object-oriented design...

Transform Conditionals to (2007)

Stéphane Ducasse, Oscar Nierstrasz, Serge Demeyer

Abstract. Conditionals —i.e., switch statements, nested ifs — that are used to simulate polymorphism hamper evolution and flexibility of applications. The reengineering patterns presented in this...

6. Agent Coordination via Scripting Languages (2007)

Jean-guy Schneider, Markus Lumpe, Oscar Nierstrasz

It is widely accepted today that closed and proprietary software systems cannot keep up with the pace of changing user requirements. In order to overcome the problems of these systems, modern...

A Pattern Language for Reverse Engineering 1 (2007)

Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz

Abstract. Since object-oriented programming is usually associated with iterative development, reverse engineering must be considered an essential facet of the object-oriented paradigm. The reverse...

Beyond Objects: Components 1 (2007)

Theo Dirk Meijler, Oscar Nierstrasz

Abstract. Traditional software development approaches do not cope well with the evolving requirements of open systems. We argue that such systems are best viewed as flexible compositions of...

Agents Everywhere, All the Time 1 (2007)

Oscar Nierstrasz, Jean-guy Schneider, Franz Achermann

Abstract. Moore’s Law is pushing us inevitably towards a world of pervasive, wireless, spontaneously networked computing devices. Whatever these devices do, they will have to talk to and negotiate...

TowardsanObjectCalculus ∗ (2007)

Oscar Nierstrasz

The development of concurrent object-based programming languages has suffered from the lack of any generally accepted formal foundations for defining their semantics. Furthermore, the delicate...

Component-Oriented (2007)

Oscar Nierstrasz, Laurent Dami

Abstract Modern software systems are increasingly required to be open and distributed. Such systems are open not only in terms of network connections and interoperability support for heterogeneous...

Object-Oriented Support for Generic Application Frames 2 (2007)

Claudio Trotta, Oscar Nierstrasz

One step in trying to define a reuse-based software development paradigm is reasoning about the development process itself and the required information to support it. We work towards this goal by...

Software Composition Group (2007)

Oscar Nierstrasz, Franz Achermann

Abstract. Many competing definitions of software components have been proposed over the years, but still today there is only partial agreement over such basic issues as granularity (are components...

Design Guidelines for (2007)

Tailorable Frameworks, Serge Demeyer, Theo Dirk Meijler, Oscar Nierstrasz, Patrick Steyaert

Since the early 1980s, object-oriented frameworks have demonstrated that programmers can encapsulate a reusable, tailorable software architecture as a collection of collaborating, extensible object...

The inevitable stability of software change (2007)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar

Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented...

The inevitable stability of software change (2007)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar

Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented...

The inevitable stability of software change (2007)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar

Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented...

The inevitable stability of software change (2007)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar

Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented...

Exampledriven reconstruction of software models (2007)

Oscar Nierstrasz, Markus Kobel, Tudor Gîrba

As software systems evolve, they become more complex and harder to understand and maintain. Certain reverse engineering techniques attempt to reconstruct software models from source code with the...

Contents (2007)

Niklaus Haldimann, Leiter Der Arbeit, Prof Dr, Oscar Nierstrasz, ...

ii Further information about this work, the tools used and an online version of this document can be found at the following places.

Exampledriven reconstruction of software models (2007)

Oscar Nierstrasz, Markus Kobel, Tudor Gîrba

As software systems evolve, they become more complex and harder to understand and maintain. Certain reverse engineering techniques attempt to reconstruct software models from source code with the...

The inevitable stability of software change (2007)

Vasa, Rajesh, Schneider, Jean-Guy, Nierstrasz, Oscar

Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented...

Encapsulating and exploiting change with Changeboxes (2007)

Marcus Denker, Oscar Nierstrasz, Lukas Renggli, Pascal Zumkehr

www.iam.unibe.ch/∼scg Abstract. Real world software systems change continuously to meet new demands. Most programming languages and development environments, however, are more concerned with...

Supervised by (2006)

Mauricio Seeberger, Prof Dr, Oscar Nierstrasz

As software systems grow, reverse engineering is becoming an increasingly important task. The larger the system grows the more complex it becomes and the more effort must be put in to understand it....

Traits: A mechanism for fine-grained reuse (2006)

Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Andrew P. Black

Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an...

Flattening Traits (2006)

Oscar Nierstrasz, Stéphane Ducasse, Nathanael Schärli

Traits are fine-grained components that can be used to compose classes, while avoiding many of the problems of multiple inheritance and mixin-based approaches. Since most implementations of traits...

Flattening Traits (2006)

Re Bergel, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts

Abstract. Traits offer a fine-grained mechanism to compose classes from reusable components while avoiding problems of fragility brought by multiple inheritance and mixins. Traits as originally...

Capturing how objects flow at runtime (2006)

Adrian Lienhard, Stéphane Ducasse, Tudor Gîrba, Oscar Nierstrasz

Most of today’s dynamic analysis approaches are based on method traces. However, in the case of objectorientation understanding program execution by analyzing method traces is complicated because...

Using Contextual Information to Assess Package Cohesion (2006)

Laura Ponisio, Oscar Nierstrasz

Complex systems are decomposed into cohesive packages with the goal of limiting the scope of changes: if our packages are cohesive, we hope that changes will be limited to the packages responsible...

Software (2006)

Oscar Nierstrasz, Marcus Denker, Tudor Gîrba, Adrian Lienhard

Software systems need to continuously change to remain useful. Change appears in several forms and needs to be accommodated at different levels. We propose Changeboxes as a mechanism to encapsulate,...

Supervised by (2006)

Mauricio Seeberger, Prof Dr, Oscar Nierstrasz

As software systems grow, reverse engineering is becoming an increasingly important task. The larger the system grows the more complex it becomes and the more effort must be put in to understand it....

Leiter der Arbeit: (2006)

Rafael Wampfler, Prof Dr, Oscar Nierstrasz, Rafael Wampfler

In our life we often use examples to explain difficult topics. Examples help us to comprehend the problem. An example is easier to understand than an abstract description of the problem. In software...

Classboxes: Controlling visibility of class extensions (2005)

Alexandre Bergel, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts

A class extension is a method that is defined in a module, but whose class is defined elsewhere. Class extensions offer a convenient way to incrementally modify existing classes when subclassing is...

A calculus for reasoning about software composition (2005)

Franz Achermann, Oscar Nierstrasz

www.iam.unibe.ch/∼scg Although the term software component has become commonplace, there is no universally accepted definition of the term, nor does there exist a common foundation for specifying...

On the revival of dynamic languages (2005)

Oscar Nierstrasz, Re Bergel, Marcus Denker, Stéphane Ducasse, Markus Gälli, Roel Wuyts

www.iam.unibe.ch/∼scg Abstract. The programming languages of today are stuck in a deep rut that has developed over the past 50 years. Although we are faced with new challenges posed by enormous...

Adding Traits to (Statically Typed) Languages (2005)

Oscar Nierstrasz, Stéphane Ducasse, Stefan Reichhart, Nathanael Schärli

Traits offer a fine-grained mechanism for composing classes in object-oriented languages from reusable components, while avoiding the fragility problems introduced by multiple inheritance and mixins....

Classboxes: Controlling visibility of class extensions (2005)

Re Bergel, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts

A class extension is a method that is defined in a module, but whose class is defined elsewhere. Class extensions offer a convenient way to incrementally modify existing classes when subclassing is...

Discovering unanticipated dependency schemas in class hierarchies (2005)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

www.iam.unibe.ch/∼scg Object-oriented applications are difficult to extend and maintain, due to the presence of implicit dependencies in the inheritance hierarchy. Although these dependencies often...

Towards a Taxonomy of SUnit Tests (2005)

Markus Gälli, Michele Lanza, Oscar Nierstrasz

Although unit testing has gained popularity in recent years, the style and granularity of individual unit tests may vary wildly. This can make it difficult for a developer to understand which methods...

Discovering unanticipated dependency schemas in class hierarchies (2005)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

www.iam.unibe.ch/∼scg Object-oriented applications are difficult to extend and maintain, due to the presence of implicit dependencies in the inheritance hierarchy. Although these dependencies often...

Objectoriented reengineering patterns — an overview (2005)

Oscar Nierstrasz, Stéphane Ducasse, Serge Demeyer

Abstract. Successful software systems must be prepared to evolve or they will die. Although object-oriented software systems are built to last, over time they degrade as much as any legacy software...

Analyzing module diversity (2005)

Alexandre Bergel, Stéphane Ducasse, Oscar Nierstrasz

Each object-oriented programming language proposes various grouping mechanisms to bundle interacting classes (i.e., packages, modules, selector namespaces, etc). To understand this diversity and to...

Lessons learned in applying formal concept analysis (2005)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

www.iam.unibe.ch/∼scg A key difficulty in the maintenance and evolution of complex software systems is to recognize and understand the implicit dependencies that define contracts that must be...

Network Of Reengineering Expertise (NOREX) SNF SCOPES/JRP Project IB7320-110997 (2005)

Michele Lanza, Radu Marinescu, Oscar Nierstrasz

The goal of of this joint research project is to provide a comprehensive and extensible support for complex reengineering activities applicable on real-world systems. The project aims to answer the...

Ordering broken unit tests for focused debugging (2004)

Markus Gälli, Michele Lanza, Oscar Nierstrasz

1 Current unit test frameworks present broken unit tests in an arbitrary order, but developers want to focus on the most specific ones first. We have therefore inferred a partial order of unit tests...

Ordering broken unit tests for focused debugging (2004)

Markus Gälli, Michele Lanza, Oscar Nierstrasz

1 Current unit test frameworks present broken unit tests in an arbitrary order, but developers want to focus on the most specific ones first. We have therefore inferred a partial order of unit tests...

Ordering Broken Unit Tests for Focused Debugging (2004)

Markus Gälli, Michele Lanza, Oscar Nierstrasz, Roel Wuyts

Current unit test frameworks present broken unit tests in an arbitrary order, but developers want to focus on the most specific ones first. We have therefore inferred a partial order of unit tests...

Lightweight detection of duplicated code — a language-independent approach (2004)

Stéphane Ducasse, Oscar Nierstrasz, Matthias Rieger

Duplicated code can have a severe, negative impact on the maintainability of large software systems. Techniques for detecting duplicated code exist but they rely mostly on parsers, technology that is...

Detecting implicit collaboration patterns (2004)

Gabriela Arévalo, Frank Buchli, Oscar Nierstrasz

A key problem during software development and maintenance is to detect and recognize recurring collaborations among software artifacts that are implicit in the code. These collaboration patterns are...

Separating concerns with first-class namespaces (2004)

Oscar Nierstrasz, Franz Achermann

www.iam.unibe.ch/∼scg. As applications evolve, it becomes harder and harder to separate independent concerns. Small changes to a software system increasingly affect different parts of the source...

Detecting implicit collaboration patterns (2004)

Gabriela Arévalo, Frank Buchli, Oscar Nierstrasz

A key problem during software development and maintenance is to detect and recognize recurring collaborations among software artifacts that are implicit in the code. These collaboration patterns are...

Acknowledgments (2004)

Dr. Michele Lanza, Prof. Dr. Oscar Nierstrasz, Prof. Dr. Horst Bunke

In reverse engineering, class blueprint patterns are an efficient way to determine the purpose and abilities of a class. Finding those patterns is not trivial because the graphical representation of...

Supervised by: (2004)

Thomas Bühler, Prof Dr, Oscar Nierstrasz, ...

Understanding the evolution of an object-oriented system based on various versions of source code requires analyzing a vast amount of data since an object-oriented system is a complex structure...

Software Composition Group (2004)

Oscar Nierstrasz, Marcus Denker

Software changes. Software systems are constantly modified and extended. Versions are split and sometimes merged. Software is refactored and occasionally reengineered. Programming languages, however,...

Software Composition Group (2004)

Markus Kobel, Dr. Michele Lanza, Prof Dr, Oscar Nierstrasz, Markus Kobel

In this project, we developed a tool for generating videosequences from geographical data (temperature, sea level pressure, 500hPa geopot.,...). The customer for this application (called VisClim) is...

Understanding classes using x-ray views (2003)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

— This page is blank — Traits: The Formal Model ⋆ (2003)

Roel Wuyts, Andrew Black, Nathanael Schärli, Oscar Nierstrasz, Stéphane Ducasse, ...

Abstract. Traits are reusable units of behaviour that provide a level of structuring for object-oriented programs above the level of methods but below the level of classes. Structuring classes with...

Traits: Composable units of behaviour (2003)

Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, Andrew P. Black

Abstract. Despite the undisputed prominence of inheritance as the fundamental reuse mechanism in object-oriented programming languages, the main variants — single inheritance, multiple inheritance,...

Traits: Composable units of behaviour (2003)

Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, Andrew P. Black

Abstract. Despite the undisputed prominence of inheritance as the fundamental reuse mechanism in object-oriented programming languages, the main variants — single inheritance, multiple inheritance,...

Traits: Composable units of behaviour (2003)

Nathanael Schärli, Nathanael Schärli, Stéphane Ducasse, Stéphane Ducasse, Oscar Nierstrasz, Oscar Nierstrasz, ...

If accepted, the paper will appear in the proceedings of ECOOP 2003, and subsequent bibliographic citations should

Partial Ordering Tests by Coverage Sets (2003)

Markus Gälli, Oscar Nierstrasz, Roel Wuyts

A single software fault may cause several tests to break, if they cover the same methods. The coverage sets of tests may not just overlap, but include one another. This information could be of great...

Understanding Classes using XRay Views (2003)

Gabriela Arevalo, Stephane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

XRay Views: Understanding the Internals of Classes (2003)

Gabriela Arevalo, Stephane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

Contractual Types (2003)

Oscar Nierstrasz

makes use of type operators to lookup and remove requirements on specific labels from required types. The rules Close and Apply generate constraints to check if the provided environment P or argument...

Understanding classes using x-ray views (2003)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

X-Ray Views: Understanding the Internals of Classes (2003)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and...

X-Ray Views on a Class using Concept Analysis (2003)

Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz

Within object oriented software, the minimal unit of development and testing is a class. So understanding how a class is defined and behaves is important. Considering that a class is composed of...

Leiter der Arbeit: (2003)

Daniele Talerico, Michele Lanza, Prof Dr, Stéphane Ducasse, ...

ii Software Reengineering is a main issue in software industry. One of its main activities – reverse engineering – is concerned with trying to understand a software system and how it ticks. For...

A component model for field devices (2002)

Oscar Nierstrasz, Gabriela Arévalo, Stéphane Ducasse, Roel Wuyts, Andrew Black, Peter Müller, ...

Abstract. Component-based software development is becoming mainstream for conventional applications. However, components can be difficult to deploy in embedded systems because of non-functional...

Software evolution as the key to productivity (2002)

Oscar Nierstrasz

www.iam.unibe.ch/~oscar Abstract. Despite the existence of a seemingly continuous stream of new “silver bullet ” technologies and methods, software productivity remains universally unimpressive....

also (2002)

Nathanael Schärli, Nathanael Schärli, Stéphane Ducasse, Stéphane Ducasse, Oscar Nierstrasz, ...

If accepted, the paper will appear in the proceedings of ECOOP 2003, and subsequent bilbiographic citations should refer to the conference proceeding — This page is blank —

Components for embedded software: the PECOS approach (2002)

Michael Winter, Thomas Genßler, Oscar Nierstrasz, Stéphane Ducasse, Roel Wuyts, Gabriela Arévalo, ...

This paper presents a domain specific composition language called CoCo. The CoCo language has been developed in the context of the PECOS project 1 which aims at enabling component–based technology

Traits: The formal model (2002)

Nathanael Schärli, Oscar Nierstrasz, Stéphane Ducasse, Roel Wuyts, Andrew Black

Abstract. Traits are reusable units of behaviour that provide a level of structuring for object-oriented programs above the level of methods but below the level of classes. Structuring classes with...

Components for embedded software: the PECOS approach (2002)

Michael Winter, Thomas Genßler, Oscar Nierstrasz, Stéphane Ducasse, Roel Wuyts, Gabriela Arévalo, ...

This paper presents a domain specific composition language called CoCo. The CoCo language has been developed in the context of the PECOS project 1 which aims at enabling component–based technology

Software evolution as the key to productivity (2002)

Oscar Nierstrasz

www.iam.unibe.ch/~oscar Abstract. Despite the existence of a seemingly continuous stream of new technologies and methods, software productivity remains universally unimpressive. We argue that, as...

PECOS in a Nutshell (2002)

Thomas Genssler, Alexander Christoph, Benedikt Schulz, Michael Winter, Chris M. Stich, Christian Zeidler, ...

COMPONENT identifier isList hasPropertySets abstractComponentBody componentType : PASSIVE | ACTIVE | EVENT | isList : (IS abstractComponentNames | ) hasPropertySets : (HAS propertySetNames | ) 71...

A component model for field devices (2002)

Oscar Nierstrasz, Gabriela Arévalo, Stéphane Ducasse, Roel Wuyts, Andrew Black, Peter Müller, ...

Abstract. Component-based software development is becoming mainstream for conventional applications. However, components can be difficult to deploy in embedded systems because of non-functional...

Separation of concerns through unification of concepts (2000)

Oscar Nierstrasz, Franz Achermann

Abstract. Separation of concerns is a principle we apply to reduce complexity. This principle is especially important when it is used to separate stable from flexible parts of software systems to...

Finding refactorings via change metrics (2000)

Serge Demeyer, Stphane Ducasse, Oscar Nierstrasz

software system. Reverse engineering is an integral part of any successful software system, because changing requirements lead to implementations that drift from their original design. In contrast to...

OpenSpaces: an object-oriented framework for reconfigurable coordination spaces (2000)

Stéphane Ducasse, Thomas Hofmann, Oscar Nierstrasz

Abstract. Tuple spaces have turned out to be one of the most fundamental abstractions for coordinating communicating agents. At the same time, researchers continue to propose new variants of tuple...

Explicit Namespaces (2000)

Franz Achermann, Oscar Nierstrasz

Abstract. A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even...

A Pattern Language for Reverse Engineering (2000)

Reverse Engineering, Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz

. Since object-oriented programming is usually associated with iterative development, reverse engineering must be considered an essential facet of the object-oriented paradigm. The reverse...

A Formal Language for Composition (2000)

Markus Lumpe, Franz Achermann, Oscar Nierstrasz

A composition language based on a formal semantic foundation will facilitate precise specification of glue abstractions and compositions, and will support reasoning about their behaviour. The...

A Meta-model for Language-Independent Refactoring (2000)

Er Tichelaar, Stéphane Ducasse, Serge Demeyer, Oscar Nierstrasz

Refactoring —transforming code while preserving behaviour— is currently considered a key approach for improving object-oriented software systems. Unfortunately, all of the current refactoring...

OpenSpaces: an object-oriented framework for reconfigurable coordination spaces (2000)

Stéphane Ducasse, Thomas Hofmann, Oscar Nierstrasz

Abstract. Tuple spaces have turned out to be one of the most fundamental abstractions for coordinating communicating agents. At the same time, researchers continue to propose new variants of tuple...

Finding refactorings via change metrics (2000)

Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz

software system. Reverse engineering is an integral part of any successful software system, because changing requirements lead to implementations that drift from their original design. In contrast to...

Agents everywhere, all the time (2000)

Nierstrasz, Oscar, Schneider, Jean-Guy, Achermann, Franz

Moore's Law is pushing us inevitably towards a world of pervasive, wireless, spontaneously networked computing devices. Whatever these devices do, they will have to talk to and negotiate with one...

Components, scripts and glue (1999)

Jean-guy Schneider, Oscar Nierstrasz

Experience has shown us that object-oriented technology alone is not enough to guarantee that the systems we develop will be flexible and adaptable. Even “welldesigned” object-oriented software...

Components, Scripts and Glue (1999)

Jean-Guy Schneider, Oscar Nierstrasz

. Experience has shown us that object-oriented technology alone is not enough to guarantee that systems we develop will be flexible and adaptable. Even "well-designed" object-oriented...

Leiter der Arbeit: (1999)

Fredi Frank, Prof Dr, Oscar Nierstrasz, Fredi Frank

and its behaviour within an dynamic software development environment are important to understand the problems that occur with technical documentation. I explore the factors that influence the...

CDIF as the Interchange Format between Reengineering (1998)

Oscar Nierstrasz, Er Tichelaar, Serge Demeyer

Tool support is recognised as a key issue in the reengineering of large scale object-oriented systems. However, due to the heterogeneity in today’s object-oriented programming languages, it is hard...

APROCO: A Programmable Coordination Medium (1998)

Daniel Kühni, Juan Carlos Cruz, Sander Tichelaar, Prof Dr, Oscar Nierstrasz

To keep up with rapidly changing requirements applications are increasingly built out of software components. A new trend is now to give those software components control over their own actions, to...

“Identify the Champion” An Organisational Pattern Language for Programme Committees (1998)

Oscar Nierstrasz

Software Composition Group, University of Berne2 Abstract. The peer review process for technical contributions to conferences in computing sciences is very thorough, and can be as stringent as the...

Using restructuring transformations to reengineer object-oriented systems. technical report (1997)

Serge Demeyer, Stéphane Ducasse, Robb Nebbe, Oscar Nierstrasz, Tamar Richner

Abstract. Applying object-oriented design methods and languages does not guarantee that the resulting software systems will be flexible and adaptable. The industrial partners in the FA-MOOS project...

Design guidelines for tailorable frameworks (1997)

Serge Demeyer, Theo Dirk Meijler, Oscar Nierstrasz, Patrick Steyaert

Since the early 1980s, object-oriented frameworks have demonstrated that programmers can encapsulate a reusable, tailorable software architecture as a collection of collaborating, extensible object...

Using Restructuring Transformations to Reengineer Object-Oriented Systems - A Position Paper on the FAMOOS Project (1997)

A Position, Serge Demeyer, Stéphane Ducasse, Robb Nebbe, Oscar Nierstrasz, Tamar Richner

. Applying object-oriented design methods and languages does not guarantee that the resulting software systems will be flexible and adaptable. The industrial partners in the FAMOOS project have...

Towards a Formal Composition Language (1997)

Markus Lumpe, Jean-guy Schneider, Oscar Nierstrasz, Franz Achermann

When do we call a software development environment a composition environment? A composition environment must be built of three parts: i) a reusable component library, ii) a component framework...

Towards a Formal Composition Language (1997)

Markus Lumpe, Jean-guy Schneider, Oscar Nierstrasz, Franz Achermann

When do we call a software development environment a composition environment? A composition environment must be built of three parts: i) a reusable component library, ii) a component framework...

Implementing the FACE Object Model in C ++ (1997)

Matthias Rieger, Prof Dr, Oscar Nierstrasz

FACE is an object–oriented, self-descripting data model with first-class types. FACE can be used to model software, e.g. object–oriented frameworks. We explore techniques and mechanisms to...

Using Metaobjects to Model Concurrent Objects with PICT (1996)

Concurrent Objects, Pict Markus Lumpe, Jean-guy Schneider, Oscar Nierstrasz

. We seek to support the development of open, distributed applications from plug-compatible software abstractions. In order to rigorously specify these abstractions, we are elaborating a formal...

Using Metaobjects to Model Concurrent Objects with PICT (1996)

Markus Lumpe, Jean-guy Schneider, Oscar Nierstrasz

. We seek to support the development of open, distributed applications from plug-compatible software abstractions. In order to rigorously specify these abstractions, we are elaborating a formal...

Formalizing Composable Software Systems - A Research Agenda (1996)

Oscar Nierstrasz, Jean-guy Schneider, Markus Lumpe

. Flexibility is achieved in open systems by adopting software architectures that allow software components to be easily plugged in, adapted and exchanged. But open systems are generally concurrent,...

A Coordination Component Framework for Open Systems (1996)

Juan Carlos Cruz, Er Tichelaar, Oscar Nierstrasz

Abstract. Coordination technology addresses the construction of open, flexible systems from software agents in distributed systems. Most of the work on coordination technology so far has focused on...

Measuring the Effects of Object-Oriented Frameworks on the Software Process," submitted for publication (1995)

Simon Moser, Oscar Nierstrasz

Abstract. A field study of over thirty projects using Object Technology has shown that the availability (or absence) of reusable frameworks has substantial productivity impacts. This can make it more...

Research Topics in Software Composition (1995)

Oscar Nierstrasz

. Traditional software development approaches do not cope well with the evolving requirements of open systems. We argue that such systems are best viewed as flexible compositions of "software...

Requirements for a Composition Language (1995)

Oscar Nierstrasz, Theo Dirk Meijler

Abstract The key requirement for open systems is that they be flexible, or recomposable. This suggests that they must first of all be composable. Object-oriented techniques help by allowing...

Research Directions in Software Composition (1995)

Oscar Nierstrasz, Theo Dirk Meijler

ine generic software architectures. In ACM Computing Surveys, vol. 27, no. 2, June 1995, pp. 262-264. y Authors' address: Institut fur Informatik (IAM), Neubruckstrasse 10, CH-3012 Bern,...

Jonscher: CHASSIS - A Platform for Constructing Open Information Systems.Proc. AFCET '93 (1993)

Oscar Nierstrasz, Dimitri Konstantas, Klaus Dittrich, Dirk Jonscher

Present-day computer-based information systems are increasingly required to be open systems. This means that they must cope with open networks, heterogeneous interoperable hardware and software...

CHASSIS - A Platform for Constructing Open Information Systems (1993)

Oscar Nierstrasz, Dimitri Konstantas, Klaus Dittrich, Dirk Jonscher

Present-day computer-based information systems are increasingly required to be open systems. This means that they must cope with open networks, heterogeneous interoperable hardware and software...

Regular Types for Active Objects (1993)

Oscar Nierstrasz

Previous work on type-theoretic foundations for object-oriented programming languages has mostly focused on applying or extending functional type theory to functional "objects." This...

The ITHACA Application Development Environment (1993)

Vicki De Mey, Oscar Nierstrasz

The goal of ITHACA is to produce a complete object-oriented application development environment. This paper reports on the status of ITHACA in relation to this ambitious goal concentrating on the...

Regular Types for Active Objects (1993)

Oscar Nierstrasz

Previous work on type-theoretic foundations for object-oriented programming languages has mostly focussed on applying or extending functional type theory to functional "objects." This...

Regular types for active objects (1993)

Oscar Nierstrasz

Abstract Previous work on type-theoretic foundations for object-oriented programming languages has mostly focused on applying or extending functional type theory to functional “objects. ” This...

Towards an Object Calculus (1992)

Oscar Nierstrasz

The development of concurrent object-based programming languages has suffered from the lack of any generally accepted formal foundations for defining their semantics. Furthermore, the delicate...

A Tour of Hybrid A Language for Programming with Active Objects (1992)

Oscar Nierstrasz

Object-oriented programming is a powerful paradigm for organizing software into reusable components. There have been several attempts to adapt and extend this paradigm to the programming of...

Component-Oriented Software Development (1992)

Oscar Nierstrasz, Simon Gibbs, Dennis Tsichritzis

Introduction Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications can be largely constructed, rather than programmed, by reusing...

A Tour of Hybrid: A Language for Programming with Active Objects (1992)

Oscar Nierstrasz

Object-oriented programming is a powerful paradigm for organizing software into reusable components. There have been several attempts to adapt and extend this paradigm to the programming of...

Beyond Objects: Objects (1992)

Dennis Tsichritzis, Oscar Nierstrasz, Simon Gibbs

Object-orientation offers more than just objects, classes and inheritance as means to structure applications. It is an approach to application development in which software systems can be constructed...

Beyond Objects: Objects (1992)

Dennis Tsichritzis, Oscar Nierstrasz, Simon Gibbs

Object-orientation offers more than just objects, classes and inheritance as means to structure applications. It is an approach to application development in which software systems can be constructed...

Supporting Software Reuse in Concurrent Object-Oriented Languages: Exploring the Language (1991)

Michael Papathomas, Oscar Nierstrasz

The design of programming languages that cleanly integrate concurrency constructs and objectoriented features that promote software reuse is an open problem. We describe a design space that...

Objects + Scripts = Applications (1991)

Oscar Nierstrasz, Dennis Tsichritzis, Vicki De Mey, Marc Stadelmann

We argue that object-oriented programming is only half of the story. Flexible, configurable applications can be viewed as collections of reusable objects conforming to standard interfaces together...

Events and Sensors: Enhancing the Reusability of Objects (1990)

Betty Junod, Oscar Nierstrasz, Serge Renfer, Claudia Werner

Object-oriented programming methods promote the development of software from reusable components. In practice, reuse of object-oriented software is limited by a closed-world constraint: only...

A Guide to Specifying Concurrent Behaviour with Abacus (1990)

Oscar Nierstrasz

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...

Towards a Type Theory for Active Objects (1990)

Oscar Nierstrasz, Michael Papathomas

Currently popular notions of types, such as signature compatibility, fail to express essential properties of concurrent active objects that are necessary for their correct use in new contexts. We...

Viewing Objects as Patterns of Communicating Agents (1990)

Oscar Nierstrasz, Michael Papathomas

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...

Supporting Software Reuse in Concurrent Object-Oriented Languages: Exploring the Language Design Space (1990)

Michael Papathomas, Oscar Nierstrasz

The design of programming languages that cleanly integrate concurrency constructs and objectoriented features that promote software reuse is an open problem. We describe a design space that...

Visual Scripting - Towards Interactive Construction of Object-Oriented Applications (1990)

Oscar Nierstrasz, Laurent Dami, Vicki De Mey, Marc Stadelmann, Dennis Tsichritzis, Jan Vitek

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...

A survey of object-oriented concepts (1989)

Oscar Nierstrasz

The object-oriented paradigm has gained popularity in various guises not only in programming languages, but in user interfaces, operating systems, databases, and other areas. We argue that the...

The ITHACA Application Development Environment (1989)

Vicki De Mey, Oscar Nierstrasz

The goal of ITHACA is to produce a complete object-oriented application development environment. This paper reports on the status of ITHACA in relation to this ambitious goal concentrating on the...

A Survey of Object-Oriented Concepts (1989)

Oscar Nierstrasz

The object-oriented paradigm has gained popularity in various guises not only in programming languages, but in user interfaces, operating systems, databases, and other areas. We argue that the...

An Object-Based Visual Scripting Environment (1989)

Jan Vitek, Oscar Nierstrasz, Simon Gibbs, Betty Junod, Marc Stadelmann, Dennis Tsichritzis

Scripting is a programming technique in which applications are constructed by composing specially designed, pre-packaged software components using a restricted set of scripting operators. Scripting...

Scripting Applications in the Public Administration Domain (1989)

Jan Vitek, Oscar Nierstrasz, Betty Junod, Marc Stadelman N, Abstrac T

Scripting is an approach for constructing open applications from pre-packaged software components. A scripting model characterizes and standardizes the interconnection interfaces of software...

Temporal Scripting using TEMPO (1988)

Laurent Dami, Eugene Fiume, Oscar Nierstrasz, Dennis Tsichritzis

A language for scheduling temporal activities in an object-oriented environment is proposed. Particular emphasis is put on reusing temporal specifications in various contexts, which is achieved...

Fitting Round Objects Into Square Databases (1988)

Dennis Tsichritzis, Oscar Nierstrasz

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...

Active Objects in Hybrid (1987)

Oscar Nierstrasz

Most object-oriented languages are strong on reusability or on strong-typing, but weak on concurrency. In response to this gap, we are developing Hybrid, an object-oriented language in which objects...

Active Objects in Hybrid (1987)

Oscar Nierstrasz

Most object-oriented languages are strong on reusability or on strong-typing, but weak on concurrency. In response to this gap, we are developing Hybrid, an object-oriented language in which objects...

A System for Managing Structured Messages (1982)

Dennis Tsichritzis, Fausto A. Rabitti, Simon Gibbs, Oscar Nierstrasz, John Hogg

Abstract—Message systems send and receive messages but do not manage the information the messages contain. Database management systems manage the information of a global database but do not have a...

Scripting coordination styles (1906)

Franz Achermann, Stefan Kneubuehl, Oscar Nierstrasz

Abstract. The fact that so many different kinds of coordination models and languages have been proposed suggests that no one single approach will be the best for all coordination problems. Different...

Transform Conditionals: a Reengineering Pattern Language

Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz

. The reengineering pattern presented in this paper shows how you can transform conditionals in object-oriented code to improve the flexibility of application. 1. Introduction Legacy systems are not...