Using Self-Description to Handle Change in Systems
  In the web age systems must be flexible, reconfigurable and adaptable in addition to being quick to develop. As a consequence, designing systems to cater for change is becoming not only desirable but required by industry. Allowing systems to be self-describing or description-driven is one way to enable these characteristics. To address the issue of evolvability in designing self-describing systems, this paper proposes a pattern-based, object-oriented, description-driven architecture. The proposed architecture embodies four pillars - first, the adoption of a multi-layered meta-modeling architecture and reflective meta-level architecture, second, the identification of four data modeling relationships that must be made explicit such that they can be examined and modified dynamically, third, the identification of five design patterns which have emerged from practice and have proved essential in providing reusable building blocks for data management, and fourth, the encoding of the structural properties of the five design patterns by means of one pattern, the Graph pattern. In this paper the fundamentals of the description-driven architecture are described - the multi-layered architecture and reflective meta-level architecture, remaining detail can be found in the cited references. A practical example of this architecture is described, demonstrating the use of description-driven data objects in handling system evolution. 
Florida Estrella, Richard McClatchey (Univ West of England, Bristol,   UK), Zsolt Kovacs, Jean-Marie Le Goff, Steven Murray ...