Upload
katherine-miller
View
213
Download
0
Embed Size (px)
Citation preview
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.)
Joseph W. YoderThe Refactory, [email protected]
Rebecca Wirfs-BrockWirfs-Brock Associates
Ralph E. JohnsonUniv. of Illinois at Urbana-Champaign
TypesTypes of Rules
Entities Configuration Data UI Caching
TypesTypes of Caching
Improves performance…
Gets type information from…