This volume represents a rst attempt to bring together ideas from two pre- ously unrelated research areas, namely Software Engineering and Computational Re?ection, and to evaluate the bene ts that each can bring to the other. Computational re?ection, or for short re?ection, is quite a young discipline that is steadily attracting attention within the community of object-oriented researchers and practitioners. The properties of transparency, separation of c- cerns, and extensibility supported by re?ection have largely been accepted as useful for software development and design. Re?ective features have been in- TM cluded in successful software development technologies such as the Java l- guage. Re?ection has proved to be useful in some of the most challenging areas of software engineering, including component-based software development, as demonstrated by extensive use of the re?ective concept of introspection in the TM Enterprise JavaBeans component technology. Nevertheless, there are still c- nitive barriers separating re?ection from the discipline of software engineering, and, more speci cally, object-oriented re?ection from object-oriented software engineering. Only a few authors have begun to explore the opportunities o ered by the inter-disciplinary application of concepts from re?ection and software - gineering, that is, from the novel research area of re?ective software engineering. It is our belief that current trends in ongoing research in object-oriented re?ection and software engineering clearly indicate that an inter-disciplinary - proach would be of utmost relevance for both. The overall goal of this volume is to support the circulation of ideas between these disciplines.
Includes supplementary material: sn.pub/extras
Klappentext
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.
Inhalt
Reflection 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.