Rulemakers and Toolmakers: Adaptive Object Models as as Agile Division of Labor

Mon 8:30-12:00 pm - Bonanza A
Joseph Yoder, The Refactory, Inc., United States
Rebecca Wirfs-Brock, Wirfs-Brock Associates, United States

Ultimate Agility: Let Your Users Do Your Work! Agile practices liberate us from the straightjackets of top-down design. But, the ease with which requirements can change encourage users to overwhelm us with requests for features. The result: Featuritis. Adaptive Object-Models support changeable domain modules by casting business rules as interpreted data and representing objects, properties and relationships in external declarations. Now users can change the system themselves as their business dictates without having to deal with programmers at all. It's the ultimate in agility!

The centerpieces of this tutorial will be a presentation of the highlights of five real-world systems the authors have worked on.

Our examination of each will will showcase the ways in which the incorporation of an Adaptive Object-Model Architecture made our users more Agile, thereby justfiing the additional effort and complexity of this approach.

The Adaptive Object-Model Architecture will be presented as a system that represents classes, attributes, relationships, and behavior as metadata. Addtionally, a detail review of a process for developing AOM's will be examined.

AudiencePractitioners, Educators

Learning outcomes:

  • See how to let users build and modify complex structures like business rules themselves, so that you, the programmer don't have to anymore.
  • Learn when, and when not to use this architecture.
  • A Core Understanding of AOM Architecture.
  • See how to make new types of objects with attributes, relationships, and behavior through using the TypeObject, Properties, EntitiyRelationship, and RuleObject patterns.
  • Understand when to consider AOM architectures for building end-user adaptable software.
  • Understand the basics of using metadata to represent objects, properties and relationships.
  • Be able to identify the risks of exposing "programming" facilities to users, and how to mitigate these risks.
  • This will emphasize how a system that is a model based on instances rather than classes allows users to more quickly change the system by simply changing the metadata (object model) to reflect changes in the domain.
  • Review the process for developing highly adaptive systems and how important an Agile process is for these architectures.
Class format

Presentation with discussion.