Your SlideShare is downloading. ×

AOM OOPSLA 2009

661
views

Published on

These are my slides from a tutorial I presented at OOPSLA in Orlando October 2009.

These are my slides from a tutorial I presented at OOPSLA in Orlando October 2009.

Published in: Technology, Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
661
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 2 .melborp siht evlos ot euneva gnisimorp a si ti egnahc ot egdelwonk eht htiw elpoep eht fo sdnah eht ni erawtfos egnahc ot ytiliba eht gnittup taht seveileb dna siht tuoba gnihtemos od ot stnaw eH .egnahc ot drah oot llits si erawtfos skniht eoJ .stneilc rof segaugnaL cificepS - niamoD gniyolped dna ,stnemnorivne TEN. dna avaJ eht htob ni gnikrow sedulcni krow tnecer rehto siH .tnemnorivne TEN. eht gnisu erutcetihcra esirpretne no desab metsys tnemllifluf redro na detcurtsnoc evah ohw srepoleved fo maet a seesrevo yltnerruc hpesoJ .stpecnoc eseht no srepoleved srotnem dna sgnittes lairtsudni ni gnitseT dna ,gnirotcafeR ,ngiseD tcejbO ,snrettaP ngiseD ,PX sa hcus sdohteM eligA sehcaet eH .sionillI ,anabrU ni sediser yltnerruc redoY hpesoJ .erutcetihcra erawtfos ot hcaorppa eht ni seicallaf ynam detanimulli hcihw ,nrettap duM fo llaB giB eht fo rohtua- oc si eH .POOCE dna ALSPOO , n o C Q ,OOAJ sa hcus secnerefnoc ta sklat dna slairotut ynam nevig sa llew sa ,) PoLP( secnerefnoC gnimmargorP fo segaugnaL nrettaP eht deriahc sah hpesoJ .tnempoleved erawtfos fo ytilauq eht gnivorpmi ot detacided puorg a ,puorG edislliH ehT fo draob eht fo rahc eciv dna rebmem gnidnatsgnol a si redoY hpesoJ .sn oitacilppa erawtfos fo sepyt ynam no srepoleved derotnem sah eH .skrowemarF dna ,esueR ,gnirotcafeR ,smetsyS elbatpadA ,sdohteM eligA ,snrettaP ,klatllamS ,avaJ ,#C ,ngiseD dna sisylanA detneirO- tcejbO ni sezi - laiceps hpesoJ .noitatnemelpmi dna ,ngised ,erutcetihcra erawtfos no rohtua nrettap dna rekaeps lanoitanretni na si eoJ .tnempoleved erawtfos fo stecaf lla fo gnirotnem dna gnitlusnoc ,noitatnemelpmi ,ngised ,erutcetihcra eraw -t f o s n o d e s u c o f y n a p m o c a , . c n I ,y r o t c a f e R e h T f o e l p i c n i r p d n a r e d n u o f a s i eH .tcapmi labolg htiw snoitazinagro dna seinapmoc ynam rof smetsys tsubor depoleved sah dna ,s’0891 dim eht ni erawtfos htiw gnikrow nageb redoY hpesoJ Short Instructor Bio ACM 09/10. OOPSLA'09, October 25–29, 2009, Orlando, FL, USA. Copyright is held by the author/owner(s). http://www.adaptiveobjectmodel.com http://www.refactory.com joe@refactory.com The Refactory, Inc. Joseph W. Yoder their Business Models” “Giving Users Control over Architecture Style Adaptive Object-Model Object-
  • 2. Table of Contents Overview Adaptive Object-Model Description Core Architectural Elements of AOM Some Examples of AOMs in Practice Other Issues and Related Architectures Advantages/Disadvantages When to do and When not to do it Summary 3 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. What are we doing? Describing a “dynamic” architecture. Not really “well-known”, known by a few people. Has not been well described. Becoming more popular. Going to describe them with patterns. Many Patterns work together to solve the problem. 4 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 2
  • 3. Context of the Style Requirements change within application’s domain. Domain Experts know their domain best. Business Rules are changing rapidly. Applications have to quickly adapt to new business requirements. Changing the application is costly, it generally includes code and data-storage. There are cycles of: build-compile-release. 5 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Forces – Shearing Layers Who (Business Person, Analyst, Developer) What (Business Rule, Persistence Layer,…) When (How often, How fast) There is a different rate of change on the system. Foote & Yoder - Ball of Mud PLoPD4 6 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 3
  • 4. General Idea Create an object design (meta-model) that describes the domain objects which includes attributes, relationships, and business rules as instances rather than classes. The domain objects are instantiated through a description given by the user or domain expert. Each new requirement is satisfied by creating a new description and a new instantiation. Separate what changes from what doesn’t. Define Changes without Hand-Coding. Focus on “What” Not “How”. 7 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Adaptive Object-Model (Active|Dynamic Object-Model) An ADAPTIVE OBJECT-MODEL is an object model that provides “meta” information about the domain so that it can be changed at runtime e m i t- nur ta sterpretni ti taht ledom tcejbo ticilpxe roivaheb sti segnahc metsys ,ledom tcejbo eht egnahc ADAPTIVE OBJECT-MODELS usually arise from domain-specific frameworks Business rules are stored as descriptive (meta) information in ADAPTIVE OBJECT-MODELS Sometimes called a "reflective architecture“ or a "meta-architecture ". 8 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 4
  • 5. Adaptive Object-Models Represents classes, attributes, relationships, and behavior as metadata. Business knowledge is based on instances rather than classes. Users change the metadata (object model) to reflect changes in the domain. Stores its Object-Model in a database or in files and interprets it (can be XML/XMI). Consequently, the object model is adaptable, when you change it, the system changes immediately. 9 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Introduction of Metadata and Adaptive (Active|Dynamic) Object-Models "Anything you can do, I can do Meta" Metadata: If something is going to vary in a predictable way, store the description of the variation in a database so that it is easy to change….Ralph Johnson ”Meta is Beta" Code is Data, Data is Code – Everything is Data 10 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 5
  • 6. Architectural Elements of Adaptive Object Models • Metadata • Entity-Relationship • TypeObject • Strategy/RuleObjects • Properties • Interpreters/Builders • Type Square • Editors/GUIs If you want something to change quickly, you must push it into the data. 11 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Type-Object PLoPD3 - Johnson and Woolf Before After AirplaneM odel -sharedAttributes Airplane +typeOperations() : <unspecified> 1 -type * Boeing727 Boeing747 Boe ing757 Boeing767 ... Airplane -specificAttributes +someOperations() : <unspecified> 12 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 6
  • 7. Properties Before After Property Car Car 0..n -name : String = color - color : String = Any attributes -type : String = String - modelNumber : String = Any - …. -value : String = Any Example: A Store with Catalogue Entries Sweaters (size, color, material) Canoes (length, material) Video Tapes (name, rating, category) 13 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. TypeSquare Entity 0..n type EntityType 0..n properties properties 0..n PropertyType Property 0..n type -name : String -type : Type Example: A Store with Catalogue Entries )…,wolley,eulb,neerg,der(=roloc ,)LX,L,M,S(=ezis( sretaewS )taolf=htdiw ,taolf=htgnel( seonaC 14 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 7
  • 8. Entity-Relationship supertype legal commissioner 1..n supertype Accountability Type 0..n Party Type legal responsible 1..n 0..n 1..n type type 1..n 0..n 0..n commissioner 1..n Accountability 0..n Party responsible 1..n 0..n Analysis Patterns - Fowler 15 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. An AOM Example 16 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 8
  • 9. Newborn Screening Doctor, HealthProf. Hospital, Lab Blood Specimen Mother, Infant 17 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Newborn Screening Infants, Mothers and Doctors... Person +name : String -address : String -phone : String Infant Mother Doctor LabTechnician +gestetionalAge : Number 18 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 9
  • 10. Newborn Screening Hospital and Lab Organization +name : String -address : String -phone : String Hospital Lab 19 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Newborn Screening Putting it all together Organization Person +name : String +name : String -address : String -address : String -phone : String -phone : String Infant Mother LabTechnician Doctor Hospital Lab +gestetionalAge : Number n n n 1..1 n n n 1..1 20 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 10
  • 11. Refugee VOLAG Sponsor Lab Tests Medical Evaluations 21 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Refugee Person Organization -name: String -name: String -address: String -address: String -phone: String -phone: String Screening * Results Refugee * Sponsor Volag -testDate: aDate -originatingCountry +refugees() +refugees() +results() +familyMembers() * * 22 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 11
  • 12. Entity-Relationship: Solution supertype legal commissioner 1..n supertype Accountability Type 0..n Party Type legal responsible 1..n 0..n 1..n type type 1..n 0..n 0..n commissioner 1..n Accountability 0..n Party responsible 1..n 0..n Analysis Patterns - Fowler 23 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Party and Accountability Example John Smith Sue Smith Sue is the mother of John 24 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 12
  • 13. Party and Accountability (instance diagram) anAccountabilityType anAccountability anAccountabilityType aParty aPartyType <PARENT> <PARENT> name <Sue> <MOTHER> aPartyType aParty anAccountability anAccountabilityType <INFANT> name <John> <CHILD> 25 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Dealing with Dynamic Behavior Making methods that implement the different algorithm for each Type or Property could require a large case-statement and could be impractical to maintain. Instances for the similar types can have different algorithm depending upon context. • The model has to implements a defined set of interchangeable algorithms that customize the behavior of the system. 26 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 13
  • 14. Strategies/Interpreters/RuleObjects (Behavior/Methods) SomeStrategy Entity * 1 -sharedAttributes : someType -specificAttribues : type +sharedInterface() * +someOperations() ... Strategy1 Strategy2 StragegyN t c ej b O e l u R * 1 1 Strategy2.1 Strategy2.2 e l u R e vit i m i r P e l u R et i s o p m o C n o iti d n o C D N A n oit i d n o C R O n o i ti d n o C T O N Design Patterns - GOF95 Composite Strategies Interpreter 27 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Composite Strategies Problem: Strategy leads to a big class hierarchy, one class for each kind of policy. Solution: Make Composite Strategies using Primitive Operations. => Interpreter pattern 28 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 14
  • 15. Adaptive Object Model “Common Architecture” htiw sessalC dna setubirttA spihsnoitaleR roivaheB lanoitarepO )atem( egdelwonK 29 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Other Patterns Composite – GOF Interpreter – GOF Builder – GOF Mediator/Adaptor – GOF Dynamic Hooks History – Francis Anderson PLoPD4 Roles – Baumer, Riehle, Siberski, & Wulf Fowler PLoP ‘97 RuleObject – Arsanjani PLoP2000 30 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 15
  • 16. Interpreters / Builders Application Persistence Mechanism Database Metadata Domain Repository/Namespace Objects XML Parser Interpreter/Builder XML 31 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Extending our Example 32 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 16
  • 17. Medical Observation - First Model Person * Observation Measurement Trait Quantity traitValue unit convertTo: amount expressOnUnit: expressOnUnits: PhysicalMeasure Blood EyeColor HairColor Gender … Height Weight FeedingType Hearing Vision … What happens when a new observation is required? 33 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observation Design Person Observation ObservationType -recordedDate : Date +address() -observedDate : Date -phenomenon : Symbol +phone() -duration : TimePeriod +name() +phenomenon() Quantity Measurement Trait -unit : Unit -amount : Number +expressOnUnit(aUnit : Unit) +observationValue() +observationValue() +expressOnUnits(unitCollection : Collection) 34 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 17
  • 18. Observation Design Example Height: 3 feet Eyes Color: Blue Name: John Smith Mother: Sue Smith Father: Address: Phone: 35 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observation Design (instance diagram) aPerson name <John Smith> obsCollection anObservationType aMeasurement #height type value aQuantity value <3> unit <ft> aTrait type anObservationType value <blue> #eyeColor 36 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 18
  • 19. Composing Observations Observations can be more complex Cholesterol Components: HDL, LDL Blood Pressure Components: Systolic, Diastolic Vision Components: Left Eye, Right Eye 37 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Composite Observation Design Person +address() +phone() +name() Observation ObservationType -recordedDate : Date -phenomenon : Symbol -observedDate : Date 1..n -duration : TimePeriod +phenomenon() Quantity Measurement Trait CompositeObservation -unit : Unit -amount : Number -observations : Collection +expressOnUnit(aUnit : Unit) +observationValue() +observationValue() +expressOnUnits(unitCollection : Collection) Composite Pattern (GOF) 38 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 19
  • 20. Observation Design Example Height: 3 feet Eyes Color: Blue Name: John Smith Mother: Sue Smith Blood Pressure: Father: Systolic: 120 mmHg Address: Diastolic: 80 mmHg Phone: 39 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Composite Observation Design (instance diagram) anObservType <#BloodPressure> aCompObs aMeasurement anObserType <120 mmHg> <#SYSTOLIC> anotherMeasurement anObser-Type <80 mmHg> <#DIASTOLIC> 40 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 20
  • 21. Composite and Primitive Observation Design What we know about John? aPerson name <John Smith> obsCollection EyesColor: Blue Height: 3 feet BloodPressure: 120/80 Systolic: 120 mmHg Diastolic: 80 mmHg 41 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Validating Observations Each Observation has its own set of legal values. Baby’s Weight: [0 30] pounds HepatitisB: {positive, negative} Left/Right Vision: {normal, abnormal} GUI can enforce legal values but we want business rules in domain objects 42 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 21
  • 22. Validating Observations Design ObservationType Validator -phenomenon : Symbol -validator : Validator DiscreteValidator NullValidator RangedValidator -descriptorSet : Collection -intervalSet : Collection -validUnit : Unit 43 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Overall Observation Design Validator DiscreteValidator RangedValidator NullValidator Party descriptorSet intervalSet validUnit Observation ObservationType recordedDate type comments Measurement Trait CompositeObservation value value values value value value: value: convertTo: Quantity Is everything an Observation? How does the model specify the structure of the Composite? What is the relationship between Trait and DiscreteValidator? 44 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 22
  • 23. Observation Design Validator validatorName ObservationType isValid: obsValue phenomenonType isValid: obsValue DiscreteValidator RangedValidator NullValidator descriptorSet intervalSet validUnit PrimitiveObservation CompositeObservation Type Type Party Observation recordedDate comments isValid Quantity unit CompositeObservation Primitive Observation quantity observationValue convertTo: DiscreteValues Current Design 45 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observation Design Validator validatorName ObservationType isValid: obsValue phenomenonType isValid: obsValue DiscreteValidator RangedValidator NullValidator descriptorSet intervalSet validUnit PrimitiveObservation CompositeObservation Type Type Party Observation recordedDate comments isValid Quantity unit CompositeObservation Primitive Observation quantity observationValue convertTo: Operational level DiscreteValues Current Design 46 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 23
  • 24. Observation Design Validator validatorName ObservationType Knowledge level isValid: obsValue phenomenonType isValid: obsValue DiscreteValidator RangedValidator NullValidator descriptorSet intervalSet validUnit PrimitiveObservation CompositeObservation Type Type Party Observation recordedDate comments isValid Quantity unit CompositeObservation Primitive Observation quantity observationValue convertTo: DiscreteValues Current Design 47 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observation Design (instance diagram) anObserv-Type <#COMP-GAL> aCompObs aMeasurement anObser-Type aRangedValidator <aQuantity> <#GAL> anotherMeasurement anObser-Type anotherRangedValidator <anotherQuantity> <#UDT> 48 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 24
  • 25. Observation Design (instance diagram) anInfant name aDiscreteValidator anObservationType aRangedValidator obsCollection #GestationalAge aMeasurement type value aQuantity value <36> unit <weeks> anObserv-Type <#COMP-GAL> aCompObs aRangedValidator aMeasurement anObser-Type <aQuantity> <#GAL> anotherRangedValidator anotherMeasurement anObser-Type <anotherQuantity> <#UDT> 49 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observations: TypeObject ObservationType TypeObject phenomenonType 1 descriptor 1..* Observation isValid: obsValue instance recordedDate 1..* elements comments elements 1..* isValid Quantity PrimitiveObservation CompositeObservation unit Type Type value 1..* quantity CompositeObservation Primitive Observation observationValue convertTo: Knowledge level DiscreteValues dvalue 1..* Operational level 50 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 25
  • 26. Observations: Properties Party properties 1..* 1..* Observation instance recordedDate comments elements 1..* isValid Quantity unit value 1..* quantity CompositeObservation Primitive Observation observationValue convertTo: Knowledge level dvalue 1..* DiscreteValues Operational level 51 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observations: TypeSquare contDescr 1 ObservationType 1..* varType PartyType phenomenonType 1 descriptor isValid: obsValue 1 descriptor 1..* 1..* elements Party PrimitiveObservation CompositeObservation Type Type properties 1..* 1..* Observation instance recordedDate comments elements 1..* isValid Quantity unit value 1..* CompositeObservation Primitive Observation quantity observationValue convertTo: Knowledge level Operational level dvalue 1..* DiscreteValues 52 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 26
  • 27. Observations: Strategy 1..* type ObservationType Validator phenomenonType guard 1 validatorName isValid: obsValue isValid: obsValue 1..* elements PrimitiveObservation CompositeObservation DiscreteValidator RangedValidator NullValidator Type Type descriptorSet intervalSet validUnit Knowledge level Operational level 53 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Medical Observations Design 1..* type contDescr 1 Entities guard 1 Validator validatorName ObservationType 1..* varType PartyType isValid: obsValue phenomenonType 1 descriptor isValid: obsValue 1 descriptor 1..* 1..* elements Party DiscreteValidator RangedValidator NullValidator descriptorSet intervalSet PrimitiveObservation CompositeObservation validUnit Type Type properties 1..* 1..* Observation Behavior instance recordedDate comments elements 1..* isValid Quantity unit value 1..* CompositeObservation Primitive Observation quantity observationValue convertTo: Knowledge level Operational level dvalue 1..* DiscreteValues Attributes 54 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 27
  • 28. What About Roles? Problem: How do you deal with dynamic behavior for an object? For example, a person can be either a mother, child, or doctor in our system. Solution: Create a Role Object that strategizes the behavior. A “role” is like a pluggable strategy. 55 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Roles (an example) Person 0..n PersonRole +baseBehavior() ChildRole DoctorRole MotherRole +childBehavior() +doctorBehavior() +motherBehavior() PLoP 97 - Fowler PLoPD4 - Baumer, Riehle, Siberski, Wulf 56 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 28
  • 29. Roles (Parties, Accountabilities and Properties is the Beginning of Roles) In our system, there are different types of parties, relationships between them, properties on the parties which include different observations about the parties. The pluggable behavior (or different roles) is defined for a given party by the legal relationships it can have and the set of properties they are allowed. 57 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Roles (Parties, Accountabilities and Properties is the Beginning of Roles) Babies Have Mothers and Doctors Gestational Age, Hearing and Vision, Weight, Race, Ethnicity, DOB, ... Mothers Have Babies and Doctors Hepatitus present at Birth (y/n), Languages, Race, Ethnicity, ... 58 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 29
  • 30. Roles (Parties, Accountabilities and Properties is the Beginning of Roles) aParty aPartyType name <Sue> <MOTHER> anAccountabilityType anAccountabilityType <CHILD> <DOCTOR> aParty aPartyType name <John> <INFANT> anAccountabilityType anAccountabilityType <PARENT> <DOCTOR> 59 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Other Issues Persistence Consistency (versions) Dynamic GUIs Managing Releases Editors (Types and Rules) Optimizers … 60 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 30
  • 31. Persisting AOM The metadata is expressed with objects, those objects can be mapped to relational databases as well as object-oriented databases There is an increasing interest on persisting metadata as XML/XMI files 61 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Keeping consistency (versions) It is important keeping consistency within the metamodel while changing instances of TypeObject or other object associated with them. Example: changing the legal range of a Validator can make existing observations invalid. May have to keep version of the metadata available and apply the rules based upon the timeframe the rule applies. 62 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 31
  • 32. Metamodel and GUI The metadata can simplify building user interfaces. Special GUI components can be developed for using the metadata. Example: The Observation model includes widgets that display list of values from the DiscreteValidators and also EntryBoxes that use RangeValidator. A Mediator and Adaptor layer was developed for managing the interactions between the domain objects and the GUIs. 63 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Metamodel and GUI 64 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 32
  • 33. PartyType: Metadata-Editors 65 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Accountability: Metadata-Editors 66 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 33
  • 34. Observation: Metadata-Editors 67 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Observation: Metadata-Editors Primitive Observation Type Editor Composite Observation Type Editor 68 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 34
  • 35. Observation: Metadata-Editors 69 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Managing releases The system has releases because of changes in the metadata not only the code. Changes in the metadata should be checked by running test cases. Use of testing tools is recommended. Versions of the metadata has to be kept. May have effective dates for the rules which are represented by the metadata 70 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 35
  • 36. 36 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 72 Dynamic Views kcorB-sfriW .R …can use …can use , edoY.J r ,ikcileW .L Renderer … several Entity View coordinates Property PLoP 2007 – AOM Rendering Patterns The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 71 . ytilibatidua dna ecnamrofrep sa hcus stnemeriuqer lanoitcnuf-non rof senilediug edivorp ot pleh osla yehT .sMOA fo noitatnemurtsni dna ,lortnoc ,egasu eht tnemurtsni ot pleh taht snrettap sedulcni :suoenallecsiM sMOA eht ot roivaheb gniyfidom ro gnivomer ,gnidda yllacimanyd rof snrettap eht sedulcni :laroivaheB sMOA fo secnatsni etaerc ot pleh taht snrettap eht sedulcni :lanoitaerC .snoitacilppa ni sresu- dne ot sMOA tneserp ot woh htiw laed taht snrettap eht sedulcni : noitatneserP .yrassecen naht dnoyeb raf slevel-atem eht ot pu gniog diova ot seiradnuob dna skrowemarf gnivlove rof senilediug hsilbatse yehT .sMOA gnitaerc fo ssecorp eht htiw laed taht snrettap eht sedulcni : ssecorP .elyts larutcetihcra siht nrevog taht seno eht era yeht dna snrettap cisab eht era esehT .sMOA fo noitatnemelpmi cisab eht ni tneserp era taht snrettap eroc eht sedulcni :eroC Part of a Larger Language
  • 37. Other Production Examples: Insurance School Workflow Many Many More … 73 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. User Defined Product (insurance example) -children * * -children 1 -rules * Component -type ComponentType Rule 1 1 1 1 +valueUsing:() 1 1 -attributes -attributes * * * 1 * Attribute AttributeType Constant CompositeRule +name +value -type +type 1 * 1 +valueUsing:() * TableLookup BinaryOperation * 74 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 37
  • 38. Argos Meta-Architecture (document workflow example) 75 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Argos Business Rule (document workflow example) 76 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 38
  • 39. Successfully Used For: (some can be found in papers) www.adaptiveobjectmodel.com Representing Insurance Policies Telephone Billing Systems Workflow Systems Medical Observations Banking and Trading Validate Equipment Configuration Documents Management System Gauge Calibration Systems Simulation Software 77 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Advantages of Adaptive Object-Models Can more easily adapt to new business requirements. Smaller in terms of classes so possibly easier to maintain by experts. Changes do not require recompiling the system. Business People can make changes. Time to market can be reduced. 78 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 39
  • 40. Disadvantages of Adaptive Object-Models It demands having infrastructure for storing, building, interpreting metadata. Developing AOM can be expensive. Can be hard to understand and maintain. It requires skilled human resources. Can have poor performance. 79 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Related Approaches and Technologies Generative Techniques Black-box Frameworks Metamodeling Techniques Reflection Techniques Domain Specific Languages Table-driven Systems UML Virtual Machine Intentional Programming Model Driven Architecture (OMG) 80 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 40
  • 41. Black-box frameworks These frameworks are instantiated by means of parameterization and object creation. They don’t need to have a meta-level. They don’t need to have interpreters and builders. They both use very similar patterns (type- objects, properties, strategies, …) AOMs can be Black-box frameworks but don’t have to be--and vice-versa 81 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Code Generators It provides infrastructure for transforming descriptions of a system into code. Descriptions are based on provided primitive structures or elements. Code generators produce either executable- code or source-code. Can use metadata and editors for describing code to generate. 82 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 41
  • 42. Metamodeling techniques It focus on manipulating the model and meta- model behind a system as well as supporting valid transformations between different model representations. The attention is on the meta-model, or a model or generating a model, rather than the final application that will reflect the business requirements. This technique is used for describing the domain-specific language. 83 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Domain Specific Languages DSLs can be a scripting language and work by means of parameterization. They don’t need to have a meta-level but they often do. They don’t need to have interpreters and builders. They both use solving similar patterns, they just might do it in different ways. AOMs can be a Domain Specific Language but don’t have to be--and vice-versa 84 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 42
  • 43. Table-driven Systems Business rules can be parameterized and stored in a database. The running system can either interpret these rules from a database table or the appropriate function can be called with the differing values from the database. Sometimes these are implemented with triggers and stored procedures. 85 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Model Driven Architecture MDA is highly related to AOMs UML Virtual Machine is an AOM UML Virtual Machine is an MDA approach Focuses more on the modeling perspective 86 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 43
  • 44. Adaptive Object-Model Object- (Business Case) Higher overall ROI Higher flexibility to change Cheaper to build applications Foster business innovation Incremental development and prototyping 87 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. When AOM is the best solution? Need for flexibility High pace of business change Need for experimentation Need to empower user 88 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 44
  • 45. Reasons for Failure of AOMs Inadequate bridge between business and technology level Communication: different universe of discourse Unclear operations and deployment structure Takes too long to develop 89 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Process for Developing AOMs Developed Iteratively and Incrementally. Be Agile, Scrum, XP, Retrospective Get Customer Feedback early and often. Add flexibility only when and where needed. Provide Test Cases and Suites for both the Object-Model and the Meta-Model. Develop Support Tools and Editors for manipulating the metadata. Very similar to Evolving Frameworks by Roberts and Johnson PLoPD3 90 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 45
  • 46. Adaptive Object Model “Common Architecture” htiw sessalC dna setubirttA spihsnoitaleR roivaheB lanoitarepO )atem( egdelwonK 91 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Dimensions of Abstraction L3 language for defining languages L2 A language for defining domain specific software L1 A specific software L0 An execution of that software Dimensions of abstraction in Adaptive Object-Models, Reflection and OMG ’s metamodeling Architecture Copyright by ECOOP’ 2000 workshop on Adaptive Object-Model. --- http://www.adaptiveobjectmodel.com/ECOOP2000/description.html 92 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 46
  • 47. OOPSLA Poster Session 93 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Summary Adaptive Object-Models can take time to develop -- but the payoff can be enormous! Adaptive Object-Models work based upon domain expert knowledge. Adaptive Object-Model architectural style exposes the elements of the domain and business rules. Applying well-known design principles (e.g. TypeObject, Properties, Entity Relationship, and Strategies/RuleObjects) works well for developing systems that dynamically adapt to a changing (business) environment. 94 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 47
  • 48. Summary AOMs Separates what changes quickly from what changes slowly (hot-spots). Takes into account who changes what, when, and where. AOM Objects constitute a domain specific language. Building languages out of objects can be good…reflection guys say this! 95 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. Meta Collaborators Ali Arsanjani Jeff Oaks Paulo Borba Nicolas Revault Krzysztof Czarnecki Jean Bezivin Ayla Dantas Dirk Riehle Martine Devos Reza Razavi Brian Foote Michel Tilman Martin Fowler Dave Thomas Ralph Johnson Leon Welicki Rebecca Wirfs-Brock Others… 96 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 48
  • 49. Where to Find More Information http://www.adaptiveobjectmodel.com http://st-www.cs.uiuc.edu/users/droberts/evolve.html http://www.joeyoder.com/papers/patterns http://hillside.net http://st-www.cs.uiuc.edu/ http://www.refactory.com 97 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. That’s All 98 The Adaptive Object-Model Architecture Style – OOPSLA 2009 – October 2009, Orlando FL Copyright 2009, Joseph W. Yoder & The Refactory, Inc. 49