A critical concern in the reuse of software is the propagation of changes made to reusable artifacts. Without techniques to manage these changes, multiple versions of these artifacts will propagate through different systems and reusers will not be able to benefit from improvements to the original artifact. We propose to codify the management of change in a… (More)
UML provides very little support for modelling evolvable or reusable specifications and designs. To cope with this problem, the UML needs to be extended with support for reuse and evolution of model components. As a first step, this paper enhances the UML metamodel with the " reuse contract " formalism to deal with evolution of collaborating class… (More)
Since the early 1980s, object-oriented frameworks have demonstrated that programmers can encapsulate a reusable, tailorable software architecture as a collection of collaborating, exten-sible object classes. Such frameworks are particularly important for developing open systems in which not only functionality but architecture is reused across a family of… (More)
Mixin-based inheritance is an inheritance technique that has been shown to subsume a variety of different inheritance mechanisms. It is based directly upon an incremental modification model of inheritance. This paper addresses the question of how mixins can be seen as named attributes of classes the same way that objects, methods, and also classes in their… (More)
Agora is a framework for exploring object-oriented languages. In this paper we will discuss a particular prototype-based instance of Agora that features a general mixin-based approach to (multiple) inheritance. One of the major innovations of Agora is that many important features of object-orientation including inheritance, slot access, reification, cloning… (More)
Current i n terface descriptions are poor in describing components , because they only provide an external view on a component and they do not lay d o wn how components interact with each other. Suggestions to improve component i n terface descriptions at last year's workshop are reconsidered and reuse contracts are put forward as a solution that goes one… (More)
We propose a very concise calculus for modelling object-oriented concepts such as objects, message sending, encapsulation and incremental modification. We show how to deal with recursion and provide some object-oriented examples. State and encapsulated inheritance are modelled by means of an incremental modification operator.