OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Adaptive Object-Model Architecture: Dynamically Adapting to Changing Requirements"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Tutorials > All Tutorials

 : Sunday Morning Tutorials (8:30 - 12:00) : Generative Programming : Sunday

Adaptive Object-Model Architecture: Dynamically Adapting to Changing Requirements

Governor General Suite D
Sunday, 8:30, half day
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Joseph Yoder, The Refactory:  Joseph W. Yoder from The Refactory, Inc., has worked on the architecture, design and implementation of software projects dating back to 1985. These projects range from stand-alone to client-server applications, multi-tiered, databases, object-oriented, frameworks, human-computer interaction, collaborative environments, web-based, and domain-specific visual languages. Joe is the author of over two-dozen published patterns and has been working with patterns for a long time, writing his first pattern paper in 1995. Recently Joseph?s focus has been on how to build dynamic and adaptable systems and he has been providing analysis, design, and mentoring along with writing papers to reflect these experiences.

Tutorial number: GP1

Architectures that can dynamically adapt to changing requirement are sometimes called "reflective" or "meta" architectures. We call a particular kind of reflective architecture an "Adaptive Object-Model" architecture. An Adaptive Object-Model is a system that represents classes, attributes, relationships, and behavior as metadata. It is a model based on instances rather than classes. Users change the metadata (object model) to reflect changes to the domain model. These changes modify the system's behavior. In other word, it stores its Object-Model in XML files or in a database and interprets it. Consequently, the object model is adaptive; when the descriptive information for the object model is changed, the system immediately reflects those changes. We have noticed that the architects of a system with Adaptive Object-Models often claim this is the best system they have ever created, talking about its flexibility, power, and eloquence. At the same time, many developers find them confusing and hard to work with. This is due in part because the developers do not understand the architecture. This tutorial will give a description of the Adaptive Object-Model architectural style and will make it easier for developers to understand and build these types of systems.

Advanced: Knowledge of object and frameworks is required; specifically the GOF and Analysis Patterns and Reflective Architectures can be helpful.