• DocumentCode
    2485870
  • 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
  • fYear
    2000
  • fDate
    2000
  • Firstpage
    111
  • Lastpage
    119
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering, 2000. Proceedings ASE 2000. The Fifteenth IEEE International Conference on
  • Conference_Location
    Grenoble
  • ISSN
    1938-4300
  • Print_ISBN
    0-7695-0710-7
  • Type

    conf

  • DOI
    10.1109/ASE.2000.873656
  • Filename
    873656