This book presents the state of the art of research and development of computational reflection in the context of software engineering. Reflection has attracted considerable attention recently in software engineering, particularly from object-oriented researchers and professionals. The properties of transparency, separation of concerns, and extensibility supported by reflection have largely been accepted as useful in software development and design; reflective features have been included in successful software development technologies such as the Java language. The book offers revised versions of papers presented first at a workshop held during OOPSLA'99 together with especially solicited contributions. The papers are organized in topical sections on reflective and software engineering foundations, reflective software adaptability and evolution, reflective middleware, engineering Java-based reflective languages, and dynamic reconfiguration through reflection.
Table of ContentsReflection and Software Engineering Foundations.- Shifting Up Reflection from the Implementation to the Analysis Level.- Towards a True Reflective Modeling Scheme.- Reflective Software Adaptability and Evolution.- Declarable Modifiers: A Proposal to Increase the Efficacy of Metaclasses.- Managing Evolution Using Cooperative Designs and a Reflective Architecture.- Reflective Middleware.- The Role of Reflective Middleware in Supporting the Engineering of Dynamic Applications.- Active Network Service Management Based on Meta-level Architectures.- Engineering Java-Based Reflective Languages.- OpenJava: A Class-Based Macro System for Java.- OpenJIT Frontend System: An Implementation of the Reflective JIT Compiler Frontend.- Kava - A Reflective Java Based on Bytecode Rewriting.- Dynamic Reconguration through Reflection.- Using Reflection to Support Dynamic Adaptation of System Software: A Case Study Driven Evaluation.- On the Integration of Configuration and Meta-level Programming Approaches.- Carp@ A Reflection Based Tool for Observing Jini Services.