Join us on:

T24. The Adaptive Object-Model Architecture: Giving Users Control over Their Business

Joseph Yoder, The Refactory, Inc.

Joseph Yoder is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joseph is an international speaker and pattern author and longstanding member of The Hillside Group, a group dedicated to improving the quality of software development. He is co-author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture. Joseph has chaired the Pattern Languages of Programming Conference (PLoP), as well as presented tutorials and talks at conferences such as OOPSLA and ECOOP. Joe currently resides in Urbana, Illinois where he oversees a team of developers who have constructed an order fulfillment system based on enterprise architecture using the .NET environment. Other recent projects involve working in both the Java and .NET environments deploying Domain-Specific Languages for clients. Joe thinks software is still too hard to change. He wants do something about this and believes that putting the ability to change software into the hands of the people with the domain knowledge seems to be one promising avenue.

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 (AOM). 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. AOM 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 AOMs often claim this is the best system they have ever created, and they brag 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 talk will present AOM architectural style and will go through some concrete scenarios to better understand them. We will also examine an Agile process for developing AOMs.


To teach core principles of AOM's including the core architecture, when to build them, and the agile process that works for building these types of systems.


Presentation and interactive dialog. Many working examples will be presented to illustrate the architecture.

Audience: Researchers, Practitioners
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it