Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Reflective designs
[go: Go Back, main page]

Reflective designs

Authors
Robert Hirschfeld and Ralf Lämmel

Abstract
We render runtime system adaptations by design-level concepts such that running systems can be adapted and examined at a higher level of abstraction. The overall idea is to express design decisions as applications of design operators to be carried out at runtime. Design operators can implement design patterns for use at runtime. Applications of design operators are made explicit as design elements in the running system such that they can be traced, reconfigured, and made undone.

This approach enables reflective designs: on one side, design operators employ reflection to perform runtime adaptations; on the other side, design elements provide an additional reflection protocol to examine and configure performed adaptations. Our approach helps understanding the development and the maintenance of the class of software systems that cannot tolerate downtime or frequent shutdown-revise-startup cycles.

We have designed and implemented a class library for programming with reflective designs in Squeak/Smalltalk. Our library employs reflection and dynamic aspect-oriented programming. In addition to that, we have implemented tool support for versatile navigation in a system that is adapted continuously at runtime.

Download

Bibtex entries
@article{HL04:IEE,
 author      = "R.~Hirschfeld and R.~L{\"a}mmel",
 title       = "{Reflective Designs}",
 journal     = "{IEE Proceedings Software}",
 year        = 2004,
 note        = "Special Issue on Reusable Software Libraries. To appear."
}

@inproceedings{HL04:SETra04,
 author      = "R.~Hirschfeld and R.~L{\"a}mmel",
 title       = "{Reflective Designs~---~An Overview}",
 booktitle   = "{Proc.\ of SETra 2004}",
 year        = 2004,
 note        = "4 pages"
}

maintained by Ralf Lämmel (Email: ralf@cs.vu.nl)