|
Speaker: Joseph W. Yoder
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. 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. Abstract (150 words): Architectures that can dynamically adapt to changing requirement have been called reflective or meta architectures. We call a particular kind of reflective architecture an Adaptive Object-Model (AOM) architecture. An AOM is a system that represents classes, attributes, relationships, and behavior as metadata. AOMs store their 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. Many architects of a system with Adaptive Object- Models often claim this is the best system they have ever created primarily due to their flexibility, power, and eloquence. These systems are related to Model-Driven Architectures and Generative Programming Techniques. 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.
Outline:
Introduction (5 mins)
Motivation a few examples (10-15 mins)
General Problem
General Solution
Architectural Elements of AOM (45-60 mins)
An Example in the Medical Domain. These are examples of the application we developed and the framework as it evolved (45 mins)
Implementation Issues (30-45 mins)
Advantages and Disadvantages (15 mins)
Other Alternatives. Related Ideas and Architectures (15 mins)
Summary and Questions (10-15 mins)
Duration: Half-day
Level: Advanced
Required Experience:
A good knowledge of object concepts is required. It would be useful if participants have a basic understanding of frameworks, though it is not necessary. A general understanding of the GOF patterns is required. An understanding of Analysis Patterns and Reflective Architectures can be helpful. Specifically we will be covering Composite, TypeObject, Properties, Strategy, Interpreter and the Builder Design Patterns along with the Party, Accountability and Observation Analysis Patterns.
Expected Audience:
The intended 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.
References:
http://www.adaptiveobjectmodel.com
Presenter Profile:
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. Joseph W. Yoder has assisted many companies with the development of software applications, specifically object-oriented and web-based systems. Joe 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.
He was also involved in the management and development of a reusable Enterprise Class Libraries. 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. Joe enjoys building elegant and successful systems, helping people succeed, and learning new things. He wants to continue to provide analysis, design, and mentoring and to write papers that reflect these experiences.
|