1
Caching Entity +valueUsing:() A ttribute EntityType +nam e +type A ttributeType -type 1 1 -attributes * 1 1 -type * -children * 1 -attributeTypes 1 * +valueUsing:() R ule TableLookup B inaryO peration +value C onstant 1 -rules * 1 * * * 1 * C om positeR ule A ccountability A ccountabilityType -type 1 1 1 -children * -children * 1 -accountabilities 1 * -children * 1 -accountabilitieTypes 1 * Type Object AOM Patterns Categories Code is data, data is code... Everything is data, everything is code! Towards a Pattern Language for Adaptive Object Models Value Object Null Object Buschmann, F.; R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern Oriented Software Architecture, Volume 1: A System of Patterns. Wiley & Sons. 1996. Czarnecki, K., Eisenecker U. Generative Progamming: Methods, Tools, and Applications. Addison-Wesley. 2000. Foote B.; J. Yoder. Metadata and Active Object Models. Proceedings of Plop98. Technical Report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, October 1998. Fowler, M. Analysis Patterns: Reusable Object Models. Addison-Wesley. 1997. Gamma, E.; R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley, 1995. Johnson, R.; R. Wolf. Type Object. Pattern Languages of Program Design 3. Addisson Wesley, 1998. Manolescu, D.; R. Johnson. Dynamic Object Model and Adaptive Workflow. Metadata and Active Object-Model Pattern Mining Workshop. OOPSLA'99, Denver, USA, 1999. Razavi, R.; K. Mechitov, S. Sundresh, G. Agha, J. Perrot. Ambiance: Adaptive Object Model-based Platform for Macroprogramming Sensor Networks. Companion of the 21st ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2006), Portland, Oregon, USA, 2006. Revault, N; J. Yoder. Adaptive Object-Models and Metamodeling Techniques Workshop Results. Proceedings of the 15th European Conference on Object Oriented Programming (ECOOP 2001), Budapest, Hungary, 2001. Riehle, D.; M. Tilman, R. Johnson. Dynamic Object Model. Proceedings of the 8th Pattern Language of Programs Conference (PLoP 2000), Monticello, Illinois, USA, 2000. 00- 29, Dept. of Computer Science, Washington University Department of Computer Science, October, 2000. Riehle, D.; S. Fraleigh, D. Bucka-Lassen, N. Omorogbe. The Architecture of a UML Virtual Machine. Proceedings of the 2001 Conference on Object-Oriented Program Systems, Languages and Applications (OOPSLA 2001), October 2001. Roberts D.; R. Johnson. Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks, Pattern Languages of Program Design 3, Robert Martin, Dirk Riehle, and Frank Buschmann, eds., Addison-Wesley, 1997. Sommerlad, P.; M. Ruedi. Do-it-yourself Reflection. 3rd European Conference on Pattern Languages of Programming (EuroPLoP 1998). Yoder, J.; F. Balaguer, R. Johnson. Architecture and Design of Adaptive Object-Models. Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2001), Tampa, Florida, USA, 2001. Yoder, J.; R. Johnson. The Adaptive Object-Model Architectural Style. IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance (WICSA 2002), Montréal, Québec, Canada, 2002. Yoder, J.; R. Razavi. Metadata and Adaptive Object-Models. ECOOP Workshops (ECOOP 2000), Cannes, France, 2000. Welicki, L.; L. Joyanes Aguilar; J. Cueva Lovelle. Meta-Specification and Cataloging of Software Patterns with Domain Specific Languages and Adaptive Object-Models . 11th European Pattern Language of Programming Conference (EuroPLoP 2006), Irsee, Bavaria, Germany, 2006. Welicki, L.; J. Yoder; R. Wirfs-Brock. A Pattern Language for Adaptive Object Models: Part I - Rendering Patterns. 14th Pattern Language of Programs Conference (PLoP 2007), Monticello, Illinois, USA, 2007. Bootstrapping Dynamic Factory Rule Object Dynamic Hooks Behavioral Process Creational GUI Core Instrumental Includes the core patterns that are present in the basic implementation of AOMs. These are the basic patterns and they are the ones that govern this architectural style Includes the patterns that help to create instances of AOMs Includes the patterns for dynamically adding, removing or modifying behavior to the AOMs Includes the patterns that deal with how to present AOMs to end-users in applications Includes the patterns that deal with the process of creating AOMs. They establish guidelines for evolving frameworks and boundaries to avoid going up to the meta- levels far beyond than necessary. Includes patterns that help to instrument the usage, control, and instrumentation of AOMs. They also help to provide guidelines for non-functional requirements such as performance and auditability Sources for AOM Patterns and Applications AOM Common Architecture Behavior Behavior Classes with Classes with Attributes and Attributes and Relationships Relationships Strategy Type Cube Dependency Injection Extents… Type Square Uses to decuple types… Represent attributes as… Represent relationships using… Describe each property as… Handle null and default values with… Handle incomplete and default relationships with… Properties Accountability Controls effects of references on… Describes… Smart Variables Simple behaviour with… Uses / extends… Allows having versions of… Coordinates several… Can use… Rule Engine Registers changes… Versioning Helps… Context Object History Complex behavior… Interpreter Builder AOM Builder Manages states… Dynamic Views Three Examples White Box Framework Black Box Framework Component Library Hot Spots Pluggable Objects Fine-Grained Objects Visual Builder Language Tools Simple System Domain Specific Abstraction Time Manages several… Are registered using… Uses for interpreting description of entities… GUI Workflow Creates instances of… Extends… Decouple dependencies using… Creates instances of elements dinamically… Editor / Visual Language Property Renderer Renders one instance… Entity View Renders one instance… Can use… Workflow / Flow of Control Functions Temporal Rules Constraints / Validations Event Driven Transformations When get complex can be an… For more info on AOMs, visit www.adaptiveobjectmodel.com Leon Welicki ONO (Cableuropa S.A.U.) [email protected] Joseph W. Yoder The Refactory, Inc. [email protected] Rebecca Wirfs-Brock Wirfs-Brock Associates [email protected] Ralph E. Johnson Univ. of Illinois at Urbana- Champaign [email protected] Types Types of Rules Entities Configuration Data UI Caching Types Types of Caching Improves performance… Gets type informat ion from…

CachingType Object AOM Patterns Categories Code is data, data is code... Everything is data, everything is code! Towards a Pattern Language for Adaptive

Embed Size (px)

Citation preview

Page 1: CachingType Object AOM Patterns Categories Code is data, data is code... Everything is data, everything is code! Towards a Pattern Language for Adaptive

Caching

Entity

+valueUsing:()

Attribute

EntityType

+name+type

AttributeType

-type

1 1

-attributes *

1

1

-type

*

-children *

1

-attributeTypes1

*

+valueUsing:()

Rule

TableLookup BinaryOperation

+value

Constant

1

-rules

*

1 *

*

*

1

*

CompositeRule

Accountability AccountabilityType-type

1 1

1

-children*-children *

1

-accountabilities1

* -children *

1

-accountabilitieTypes1

*

Type Object

AOM Patterns Categories

Code is data, data is code...Everything is data, everything is code!

Towards a Pattern Language for Adaptive Object Models

Value Object

Null Object

Buschmann, F.; R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern Oriented Software Architecture, Volume 1: A System of Patterns. Wiley & Sons. 1996.

Czarnecki, K., Eisenecker U. Generative Progamming: Methods, Tools, and Applications. Addison-Wesley. 2000.

Foote B.; J. Yoder. Metadata and Active Object Models. Proceedings of Plop98. Technical Report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, October 1998.

Fowler, M. Analysis Patterns: Reusable Object Models. Addison-Wesley. 1997.

Gamma, E.; R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley, 1995.

Johnson, R.; R. Wolf. Type Object. Pattern Languages of Program Design 3. Addisson Wesley, 1998.

Manolescu, D.; R. Johnson. Dynamic Object Model and Adaptive Workflow. Metadata and Active Object-Model Pattern Mining Workshop. OOPSLA'99, Denver, USA, 1999.

Razavi, R.; K. Mechitov, S. Sundresh, G. Agha, J. Perrot. Ambiance: Adaptive Object Model-based Platform for Macroprogramming Sensor Networks. Companion of the 21st ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2006), Portland, Oregon, USA, 2006.

Revault, N; J. Yoder. Adaptive Object-Models and Metamodeling Techniques Workshop Results. Proceedings of the 15th European Conference on Object Oriented Programming (ECOOP 2001), Budapest, Hungary, 2001.

Riehle, D.; M. Tilman, R. Johnson. Dynamic Object Model. Proceedings of the 8th Pattern Language of Programs Conference (PLoP 2000), Monticello, Illinois, USA, 2000. 00-29, Dept. of Computer Science, Washington University Department of Computer Science, October, 2000.

Riehle, D.; S. Fraleigh, D. Bucka-Lassen, N. Omorogbe. The Architecture of a UML Virtual Machine. Proceedings of the 2001 Conference on Object-Oriented Program Systems, Languages and Applications (OOPSLA 2001), October 2001.

Roberts D.; R. Johnson. Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks, Pattern Languages of Program Design 3, Robert Martin, Dirk Riehle, and Frank Buschmann, eds., Addison-Wesley, 1997.

Sommerlad, P.; M. Ruedi. Do-it-yourself Reflection. 3rd European Conference on Pattern Languages of Programming (EuroPLoP 1998).

Yoder, J.; F. Balaguer, R. Johnson. Architecture and Design of Adaptive Object-Models. Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2001), Tampa, Florida, USA, 2001.

Yoder, J.; R. Johnson. The Adaptive Object-Model Architectural Style. IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance (WICSA 2002), Montréal, Québec, Canada, 2002.

Yoder, J.; R. Razavi. Metadata and Adaptive Object-Models. ECOOP Workshops (ECOOP 2000), Cannes, France, 2000.

Welicki, L.; L. Joyanes Aguilar; J. Cueva Lovelle. Meta-Specification and Cataloging of Software Patterns with Domain Specific Languages and Adaptive Object-Models. 11th European Pattern Language of Programming Conference (EuroPLoP 2006), Irsee, Bavaria, Germany, 2006.

Welicki, L.; J. Yoder; R. Wirfs-Brock. A Pattern Language for Adaptive Object Models: Part I - Rendering Patterns. 14th Pattern Language of Programs Conference (PLoP 2007), Monticello, Illinois, USA, 2007.

BootstrappingDynamic Factory

Rule Object

Dynamic Hooks

Behavioral

Process

Creational

GUI

Core

Instrumental

Includes the core patterns that are present in the basic implementation of AOMs. These are the basic patterns and they are the ones that govern this architectural style

Includes the patterns that help to create instances of AOMs

Includes the patterns for dynamically adding, removing or modifying behavior to the AOMs

Includes the patterns that deal with how to present AOMs to end-users in applications

Includes the patterns that deal with the process of creating AOMs. They establish guidelines for evolving frameworks and boundaries to avoid going up to the meta-levels far beyond than necessary.

Includes patterns that help to instrument the usage, control, and instrumentation of AOMs. They also help to provide guidelines for non-functional requirements such as performance and auditability

Sources for AOM Patterns and ApplicationsAOM Common Architecture

BehaviorBehavior

Classes with Attributes Classes with Attributes and Relationshipsand Relationships

Strategy Type Cube

Dependency Injection

Extents…

Type Square

Uses to decuple types…

Represent attributes as…

Represent relationships using…

Describe each property as…

Handle null and default values with…

Handle incomplete and default relationships

with…

Properties

Accountability

Controls effects of references on…

Describes…

Smart VariablesSimple behaviour with…

Uses / extends…

Allows having versions of…

Coordinates several…

Can use…

Rule Engine

Registers changes…

VersioningHelps…

Context Object History

Complex behavior…

Interpreter

BuilderBuilderAOM Builder

Manages states…

Dynamic Views

Three Examples

White Box Framework

Black Box Framework

Component Library

Hot Spots

Pluggable Objects

Fine-Grained Objects

Visual Builder

Language Tools

Simple System

Domain Specific Abstraction

Time

Manages several…Are registered

using…

Uses for interpreting description of

entities…

GUI Workflow

Creates instances of…

Extends…

Decouple dependencies

using…

Creates instances of elements

dinamically…

Editor / Visual Language

Property Renderer

Renders one instance…

Entity View

Renders one instance…

Can use…

Workflow / Flow of Control Functions Temporal Rules Constraints / Validations Event Driven Transformations

When get complex can be an…

For more info on AOMs, visit www.adaptiveobjectmodel.com

Leon WelickiONO (Cableuropa S.A.U.)

[email protected]

Joseph W. YoderThe Refactory, [email protected]

Rebecca Wirfs-BrockWirfs-Brock Associates

[email protected]

Ralph E. JohnsonUniv. of Illinois at Urbana-Champaign

[email protected]

TypesTypes of Rules

Entities Configuration Data UI Caching

TypesTypes of Caching

Improves performance…

Gets type information from…