Today, complex information systems need a simple way for changing the object behavior according with changes that occur in
its running environment. We present a reflective architecture which provides the abilityt to change object behavior at run-time
by using designtime information. By integrating reflection with design patterns we get a flexible and easilyad aptable architecture.
A reflective approach that describes object model, scenarios and statecharts helps to dynamically adapt the software system
to environmental changes. The object model, system scenario and manyot her design information are reified by special meta-objects,
named evolutionary meta-objects. Evolutionary metaobjects deal with two types of run-time evolution. Structural evolution is carried out by causal connection
between evolutionary meta-objects and its referents through changing the structure of these referents by adding or removing
objects or relations. Behavioral evolution allows the system to dynamically adapt its behavior to environment changes by itself.
Evolutionary meta-objects react to environment changes for adapting the information they have reified and steering the system
evolution. They provide a natural liaison between design information and the system based on such information. This paper
describes how this liaison can be built and how it can be used for adapting a running system to environment changes.
Keywords Reflection - Meta-Objects - Design Pattern - UML - Software Evolution