Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The art of metaobject protocol
The art of metaobject protocol
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Workshop on advanced separation of concerns in software engineering
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Composing crosscutting concerns using composition filters
Communications of the ACM
Middleware for real-time and embedded systems
Communications of the ACM - Adaptive middleware
Proceedings of the 8th annual international conference on Mobile computing and networking
An aspect-oriented approach to dynamic adaptation
WOSS '02 Proceedings of the first workshop on Self-healing systems
Computer
The Vision of Autonomic Computing
Computer
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Supporting Unanticipated Dynamic Adaptation of Application Behaviour
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The Role of the Base in Aspect Oriented Programming
Proceedings of the Workshop on Object-Oriented Technology
Active Software Replication through a Three-Tier Approach
SRDS '02 Proceedings of the 21st IEEE Symposium on Reliable Distributed Systems
ACT: An Adaptive CORBA Template to Support Unanticipated Adaptation
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Computer
Kernel-middleware interaction to support adaptation in pervasive computing environments
MPAC '04 Proceedings of the 2nd workshop on Middleware for pervasive and ad-hoc computing
Transparent shaping of existing software to support pervasive and autonomic computing
Transparent shaping of existing software to support pervasive and autonomic computing
Transparent Self-Optimization in Existing CORBA Applications
ICAC '04 Proceedings of the First International Conference on Autonomic Computing
An approach to implementing dynamic adaptation in C++
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
Automatic program transformation with JOIE
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Workflow adaptation as an autonomic computing problem
Proceedings of the 2nd workshop on Workflows in support of large-scale science
Transparent grid enablement of weather research and forecasting
Proceedings of the 15th ACM Mardi Gras conference: From lightweight mash-ups to lambda grids: Understanding the spectrum of distributed computing requirements, applications, tools, infrastructures, interoperability, and the incremental adoption of key capabilities
Transparent autonomization in CORBA
Computer Networks: The International Journal of Computer and Telecommunications Networking
Design patterns for developing dynamically adaptive systems
Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems
An evaluation of the adaptation capabilities in programming languages
Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
Elastic executions from inelastic programs
Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
Towards a framework to characterize ubiquitous software projects
Information and Software Technology
An Analysis of Language-Level Support for Self-Adaptive Software
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
Hi-index | 0.01 |
The need for adaptability in software is growing, driven in part by the emergence of pervasive and autonomic computing. In many cases, it is desirable to enhance existing programs with adaptive behavior, enabling them to execute effectively in dynamic environments. In this paper, we propose a general programming model called transparent shaping to enable dynamic adaptation in existing programs. We describe an approach to implementing transparent shaping that combines four key software development techniques: aspect-oriented programming to realize separation of concerns at development time, behavioral reflection to support software reconfiguration at run time, component-based design to facilitate independent development and deployment of adaptive code, and adaptive middleware to encapsulate the adaptive functionality. After presenting the general model, we discuss two specific realizations of transparent shaping that we have developed and used to create adaptable applications from existing programs.