Towards a Pattern Language for Adaptive Object Models

handprintSoftware and s/w Development

Nov 18, 2013 (3 years and 6 months ago)

88 views

Caching

Entity
+valueUsing:()
Attribute
EntityType
+name
+type
AttributeType
-type
1
1
-attributes
*
1
1
-type
*
-children
*
1
-attributeTypes
1
*
+valueUsing:()
Rule
TableLookup
BinaryOperation
+value
Constant
1
-rules
*
1
*
*
*
1
*
CompositeRule
Accountability
AccountabilityType
-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, U
SA,

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

Classes with Attributes
and 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.)

lwelicki@acm.org

Joseph W. Yoder

The Refactory, Inc.

joe@refactory.com

Rebecca Wirfs
-
Brock

Wirfs
-
Brock Associates

rebecca@wirfs
-
brock.com

Ralph E. Johnson

Univ. of Illinois at Urbana
-
Champaign

johnson@cs.uiuc.edu

Types

of Rules


Entities


Configuration Data


UI Caching

Types

of Caching

Improves
performance…

Gets type
information
from…