| |
ECOOP /
Tutorial 26
Adaptive Object-Model Architecture: How to Build Systems That Can Dynamically Adapt to Changing Requirements
| Topic | Adaptable Systems, Study of the Architectural Style (analysis/design/patterns) of Adaptable Systems. These systems use metadata and reflection to dynamically adapt to changing requirements |
| Goal | To teach the principles of the architectural style of Adaptive Object-Models. Then end goal is for attendees to be able to build, maintain, and/or understand these reflective architectures that allow 'power' users to adapt the object model at runtime |
| Style | Presentation + demo + discussion |
Abstract
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)” 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 at runtime. 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, 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 tutorial will give a description of the Adaptive Object-Model architectural style and will make it easier for developers to understand and build systems that need to adapt to changing requirements.
Presenter Profile
Joseph W. Yoder
Joseph W. Yoder has worked on the architecture, design, and implementation of various software projects dating back to 1985. These projects have incorporated many technologies and 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. In addition these projects have spanned many domains, including Medical Information Systems, Manufacturing Systems, Medical Examination Systems, Statistical Analysis, Scenario Planning, Client-Server Relational Database System for keeping track of shared specifications in a multi-user environment, Telecommunications Billing System, and Business & Medical Decision Making. Recently his focus has been on how to build dynamic and adaptable systems. This has led to work on Adaptive Object-Models which are systems that have an architecture to allow for systems to adapt to changing requirements without programming.
Joe is one of the principles of The Refactory Inc. and has assisted many companies with the development of software applications, specifically object-oriented and web-based systems. He has mentored object-oriented developers and provided internal training on using patterns to assist with object-oriented development. Recently he has been teaching Java, Smalltalk, Patterns, Frameworks, Object-Oriented Analysis and Design and has mentored analysts and developers on many of their applications.
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, and was the conference chair for the PLoP'97, conference on software patterns and was the programming chair of The Second Latin American Conference on Pattern Languages of Programming.
Details
| Presenter(s) |
Joseph W. Yoder, The Refactory, Inc.
|
Date Duration |
Tuesday, 22
half day
|
| Level |
advanced
|
| Targeted Audience |
The target audience is for those that need to build, maintain, or understand flexible architectures that allow “power” users to change the object model at runtime. It is also intended for those that are working with meta-architectures to allow a system to adapt to changing requirements at runtime. People attending this tutorial will learn how to use Composite, TypeObject, Properties, Strategy, Interpreter and Builder Design Patterns to implement Adaptive Object-Models such as those described by dynamic systems modeled by Hay’s and Fowler's Analysis Patterns.
|
|
 |
ECOOP is sponsored by
in cooperation with ACM SIGPLAN
|