A programming model for adaptable Java applications

  • Authors:
  • Marco Autili;Paolo Di Benedetto;Paola Inverardi

  • Affiliations:
  • Università dell'Aquila, L'Aquila, Italy;Università dell'Aquila, L'Aquila, Italy;Università dell'Aquila, L'Aquila, Italy

  • Venue:
  • Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Adaptable applications are becoming the main drivers of the pervasive computing paradigm. The development and the context-aware execution of such applications on mobile devices, often characterized by their heterogeneity and limitedness, is a big challenge and it is far to be solved. The main difficulty is to provide (i) an easy-to-use and powerful programming technique for developers to actually code adaptable applications, and (ii) a context-aware run-time support to properly handle contextual situations. This paper presents a programming model that provides developers with a set of agile and user-friendly extensions to Java for easily specifying generic code in a flexible and declarative way. The generic code specifies both the invariant semantics and the degree of variability of the application. Variability is expressed in terms of adaptable classes that declare adaptable methods, and alternative classes that define them. Then, an ad-hoc preprocessor resolves variability by generating standard Java methods within standard Java classes that, opportunely combined with the core code, make-up different application alternatives, i.e., standard Java applications that represent different ways of implementing an adaptable application specification. The programming model and the generic code preprocessor have been fully implemented in and for Java as Eclipse plugins. They are part of Chameleon, a framework that provides both an integrated development environment and a proper context-aware run-time support to adaptable Java applications for limited devices.