Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A software model for flexible & safe adaptation of mobile code programs
Proceedings of the International Workshop on Principles of Software Evolution
Safe and Flexible Dynamic Linking of Native Code
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Context-Aware Code Certification
Proceedings of the 19th IEEE international conference on Automated software engineering
A resource model for adaptable applications
Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems
A Perspective on the Future of Middleware-based Software Engineering
FOSE '07 2007 Future of Software Engineering
A Development Process for Self-adapting Service Oriented Applications
ICSOC '07 Proceedings of the 5th international conference on Service-Oriented Computing
Dynamically Evolvable Dependable Software: From Oxymoron to Reality
Concurrency, Graphs and Models
The Future of Software: Adaptation and Dependability
Software Engineering
Software of the future is the future of software?
TGC'06 Proceedings of the 2nd international conference on Trustworthy global computing
Performance modeling and analysis of context-aware mobile software systems
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
In this paper we present an approach for developing adaptable software applications. The problem we are facing is that of a (possibly mobile) user who wants to download and execute an application from a remote server. The user's hosting device can be of different kinds (laptops, personal digital assistants, cellular phones, communicators, etc.) with specific hardware and software capabilities. The problem is to be able to decide whether the user's current device characteristics are compatible with the application requirements in order to prevent execution failures. In the negative case we want to identify the reasons that determined the incompatibility and perform an automatic adaptation of the application, so that it can match the user's device capabilities. We adopt a declarative approach: we provide each device with a declarative description of its characteristics and, possibly, context constraints. Inspired by Proof Carrying Code (PCC), we use first-order logic formulae to model both the behavior of the code, with respect to the properties of interest, and the execution context. The adaptation process is carried out by using theorem proving techniques, in particular, the proof assistant HOL4. The aim is to derive a formal proof which asserts that the behavior of the code can be correctly adapted to the given context. By construction, the proof, if it exists, gives information on how the adaptation has to be done. On the application side, Java2 Micro Edition (J2ME) is the chosen reference application development environment.