The complexity of software has driven both researchers and practitioners toward design methodologies that decompose problems into intellectually manageable pieces and that assemble partial products into complete software artifacts. Modularity in design, however, rarely translates into modularity at the implementation level. Hence, an important problem is to provide implementation (i.e., programming language) support for expressing modular designs concisely. This dissertation shows that software can be conveniently modularized using large-scale object-oriented software components. Such large-scale components encapsulate multiple classes but can themselves be viewed as classes, as they support the object-oriented mechanisms of encapsulation a...
Over the last thirty years designers have tried to cope with software complexity by organizing syste...
International audienceThere exist many large object-oriented software systems consisting of several ...
In software design, laziness is a virtue: it’s better to reuse than to redo. Design patterns are a g...
In object-oriented languages, aspects can be defined by generalizing the idea of a class to that of ...
Programming languages offer a variety of constructs to support code reuse. For example, functional l...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Building software from reusable components is considered important in reducing development costs. Ob...
Building software from reusable components is considered important in reducing development costs. Ob...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
With object-oriented programming, classes and inheritance have sometimes been considered as a defini...
We identify three programming language abstractions for the construction of reusable components: abs...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
Good separation of concerns in software is the key for managing growing complexity. The most importa...
AbstractWe are in the midst of a paradigm shift toward component-oriented software development, and ...
We are in the midst of a paradigm shift toward component-oriented software development, and signific...
Over the last thirty years designers have tried to cope with software complexity by organizing syste...
International audienceThere exist many large object-oriented software systems consisting of several ...
In software design, laziness is a virtue: it’s better to reuse than to redo. Design patterns are a g...
In object-oriented languages, aspects can be defined by generalizing the idea of a class to that of ...
Programming languages offer a variety of constructs to support code reuse. For example, functional l...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Building software from reusable components is considered important in reducing development costs. Ob...
Building software from reusable components is considered important in reducing development costs. Ob...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
With object-oriented programming, classes and inheritance have sometimes been considered as a defini...
We identify three programming language abstractions for the construction of reusable components: abs...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
Good separation of concerns in software is the key for managing growing complexity. The most importa...
AbstractWe are in the midst of a paradigm shift toward component-oriented software development, and ...
We are in the midst of a paradigm shift toward component-oriented software development, and signific...
Over the last thirty years designers have tried to cope with software complexity by organizing syste...
International audienceThere exist many large object-oriented software systems consisting of several ...
In software design, laziness is a virtue: it’s better to reuse than to redo. Design patterns are a g...