Title :
A declarative approach for designing and developing adaptive components
Author :
Boinot, Philippe ; Marlet, Renaud ; Noye, Jacques ; Muller, Gilles ; Consel, Charles
Author_Institution :
IRISA/INRIA, Rennes I Univ., France
Abstract :
An adaptive component is a component that is able to adapt its behavior to different execution contexts. Building an adaptive application is difficult because of component dependencies and the lack of language support. As a result, code that implements adaptation is often tangled, hindering maintenance and evolution. To overcome this problem, we propose a declarative approach to program adaptation. This approach makes the specific issues of adaptation explicit. The programmer can focus on the basic features of the application, and separately provide clear and concise adaptation information. Concretely, we propose adaptation classes, which enrich Java classes with adaptive behaviors. A dedicated compiler automatically generates Java code that implements the adaptive features. Moreover, these adaptation declarations can be checked for consistency to provide additional safety guarantees. As a working example throughout this paper, we use an adaptive sound encoder in an audio-conferencing application. We show the problems associated with a traditional implementation using design patterns, and how these problems are elegantly solved using adaptation classes
Keywords :
Java; abstract data types; adaptive systems; object-oriented methods; program compilers; program verification; safety; software engineering; subroutines; teleconferencing; Java classes; adaptation classes; adaptation declarations; adaptive application; adaptive behavior; adaptive component design; adaptive component development; adaptive sound encoder; audio-conferencing application; automatic code generation; component dependencies; consistency checking; declarative approach; dedicated compiler; design patterns; execution context; language support; program adaptation; safety guarantees; software evolution; software maintenance; Application software; Bandwidth; Computer languages; Feedback control; Instruments; Java; Logic; Programming profession; Quality of service; Safety;
Conference_Titel :
Automated Software Engineering, 2000. Proceedings ASE 2000. The Fifteenth IEEE International Conference on
Conference_Location :
Grenoble
Print_ISBN :
0-7695-0710-7
DOI :
10.1109/ASE.2000.873656