Power Point Slides - Adaptive Object Model

advertisement
Adaptive Object-Models
Joseph W. Yoder
Reza RAZAVI
University of Illinois
The Refactory, Inc
joeyoder@joeyoder.com
University of Paris 6
LIP6 - OASIS team
razavi@acm.org
Workshop Description:
The unrelenting pace of change that confronts contemporary software developers compels them to
make their applications more configurable, flexible, and adaptable. The era where business rules
are buried in Cobol code is coming to an end. Today, users themselves may seek to dynamically
change their business rules. Customers require systems that more easily adapt to changing
business needs, meet their unique requirements, and scale to large and small installations. On the
other hand, the same technique is adequate for the slightly different purpose of producing a
whole line of software products : of course, a line of products may be obtained by variously
instantiating an abstract model, but also by adapting a given initial system to various
requirements that appear simultaneously instead of evolving in time. Moreover, the diversification
of a successful product may be also seen as a form of re-engineering.
A possible way to meet such requirements is to use an Active Object-Model, where the object
representation of the domain under study has itself an explicit object model (albeit partial) that is
interpreted at run-time. Objects have states and respond to events by changing state. The active
object-model defines the objects, their states, the events, and the conditions under which an
object changes state. If you change the object model, the system changes its behavior. For
example, such a feature makes it easy to integrate a workflow mechanism, which proves useful in
many systems. Also, business rules can be stored in an active object model that makes it easy to
evolve the way a company does their business.
Our goal is to document the techniques and principles that make these systems work. We hope to
"mine" these systems and produce a preliminary collection of metadata and active object-system
patterns, and help establish a shared vocabulary.
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Workshop Requirements:
Workshops at OOPSLA '98 and '99 were devoted to "pattern mining".
 Following requests from a large number of '99 participants, this workshop was
oriented toward a broader analysis of the possible uses of the Active Object-Model
technology, based on the examination of a range of examples.
 Thus, we are specially looking for position papers describing experience in
developing systems that actually display, or might have benefited from, an Active
Object-Model. Other domains of interest are the followings topics :
1.Building a common vocabulary (terminology, definitions, ...) E.g. Typical AI terminology (ontologies, ...) vs. software
engineering terminology
2.Models and languages for "Metadata and Active Object-Models", including current standardization efforts and
expressive (even ambiguous) type languages, ....
3.Do particular programming language constructs (e.g. Smalltalk's blocks or reflective features) facilitate the
implementation of specific types of active object-models?
4.Implementation / Design concepts and classification according to semantics and relevance.
more…
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Workshop Requirements: (continued)
More domains of interest are the followings topics :


5.Appropriate development process models for cultivating active object-models (analysis patterns, design patterns, ...), and
the impact of active object-models on development process models (iterative, incremental, testing, ...).Cf. [1] & [2]
6.How do requirements such as heterogeneous, distributed environments, smart software and agents, and user
empowerment drive the evolution of active object-models? How can we overcome resistance to building active
object-models from programmers and managers?
7.How do get active object-models to exhibit acceptable performance? Can we borrow from traditional disciplines, e.g.
caching, Just-In-Time compilation, heuristics, statistics, stereotypical vs. customized interfaces, and tools?
8.How do measure such aspects of active object-models as stability, class library complexity and related metrics, learning
curve, cost (development of the 'framework', building the applications, change, maintenance), and performance?
9.Dealing with views continues to be a challenge, can we use active object-models to solve some of these problems? For
instance, some models replace a hard-wired view on classification of objects by a dynamic view based on
observational equivalence of object behavior. This view takes into account dynamic properties of the parties involved
in a contract. If active object-models are any help, which qualities must they possess?
10.Most Active Object-Model implementations focus on one or two isolated aspects, e.g. object model, business rules,
mapping objects onto a database. Other aspects are typically left to more traditional approaches. Hence, they often
tend to interfere in ad-hoc and hard-wired ways. For instance, it is often hard to design good, pro-active user interface
code that is cleanly separated from the business rules without introducing redundancy of one sort or another. Can we
use weaver-like approaches in combination with active object-models to achieve more global-wide, yet dynamic
reflection?
[1] Don Roberts, Ralph Johnson. Evolving Frameworks, A Pattern Language for Developing Object-Oriented Frameworks,
http://st-www.cs.uiuc.edu/users/droberts/evolve.html.
[2] Brian Foote, Joseph Yoder. Metadata and Active Object-Models. PLOP'98 conference, Monticello, Illinois. 1998,
http://www.joeyoder.com/Research/metadata/OOPSLA98MetaDataWkshop.html.
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Hot topics in Adaptive Object-Modeling (1)
Experiences in developing systems, which have been developed with,
or might have benefited from, an Adaptive Object-Model.
Building a common vocabulary (terminology, definitions, etc,); e.g.
Typical AI terminology (ontologies) vs. software engineering
terminology
Models and languages for Metadata and AOMs, including current
standardization efforts and expressive (even ambiguous) type
languages,....
Comparative works with similar approaches like Metamodeling and
Reflection.
Specific implementation techniques for Adaptive Object-Models.
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Hot topics in Adaptive Object-Modeling (2)
Appropriate development process models for cultivating Adaptive
Object-Models (analysis patterns, design patterns, ...), and the impact of
AOMs on development process models (iterative, incremental, testing,
...).
Most Adaptive Object-Model implementations focus on one or two
isolated aspects, e.g. object model, business rules, mapping objects onto
a database. Other aspects are typically left to more traditional
approaches. Hence, they often tend to interfere in ad-hoc and hard-wired
ways. For instance, it is often hard to design good, pro-active user
interface code that is cleanly separated from the business rules without
introducing redundancy of one sort or another. Can we use weaver-like
approaches in combination with Adaptive Object-Models to achieve
more global-wide, yet dynamic reflection?
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Hot topics in Adaptive Object-Modeling (3)
Dealing with views continues to be a challenge; can we use Adaptive
Object-Models to solve some of these problems? For instance, some
models replace a hard-wired view on classification of objects by a
dynamic view based on observational equivalence of object behavior.
This view takes into account dynamic properties of the parties involved
in a contract. If Adaptive Object-Models are any help, which qualities
must they possess?
Design concepts and classification according to semantics and
relevance.
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Hot topics in Adaptive Object-Modeling (4)
How do requirements such as heterogeneous, distributed environments,
smart software and agents, and user empowerment drive the evolution
of Adaptive Object-Models? How can we overcome resistance to
building Adaptive Object-Models from programmers and managers?
How do get Adaptive Object-Models to exhibit acceptable
performance? Can we borrow from traditional disciplines, e.g. caching,
Just-In-Time compilation, heuristics, statistics, stereotypical vs.
customized interfaces, and tools?
How do measure such aspects of Adaptive Object-Models as stability,
class library complexity and related metrics, learning curve, cost
(development of the 'framework', building the applications, change,
maintenance), and performance?
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
What is meant by Metadata?
MetaData can be described by saying that 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. In other words, if
something is going to change a lot, make it easy to change. The
problem is that it can be hard to figure out what changes, and
even if you know what changes then it can be hard to figure out
how to describe the change in your database. Code is powerful,
and it can be hard to make your data as powerful as your code
without making it as complicated as your code. But when you are
able to figure out how to do it right, metadata can be incredibly
powerful, and can decrease your maintenance burden by an order
of magnitude, or two. [R. Johnson]
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Metadata and “Adaptable”
Active 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"
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Active “Adaptable” ObjectModel (Dynamic Object-Model)
An ACTIVE OBJECT-MODEL is an object model that
provides “meta” information about the domain so
that it can be changed at runtime
explicit object model that it interprets at run-time
change the object model, system changes its behavior
ACTIVE OBJECT-MODELS usually arise as domainspecific frameworks
Business rules can be stored in ACTIVE OBJECTMODELS
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Active “Adaptable” ObjectModel (Dynamic Object-Model)
Type-Object
Properties
Strategy / Interpreter
Schema / Descriptor
Smart Variables
Builders / Editors
Brian Foote: www.laputan.org
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Adaptive Object-Model
(Dynamic Object-Model)
When to Build AOMs
Need for flexibility
High pace of business change
Need for experimentation
Need to empower user
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Type-Object
Before
After
SomeClass
Entity
-specificAttribues : type
+someOperations()
0..n
SubClass1
SubClass2
...
SubClassN
EntityType
-sharedAttributes : type
+typeOperations()
PLoPD3 - Johnson and Woolf
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Properties
Before
After
Property
Entity
Entity
-firstAttribute : String = Any
0..n
attributes
-name : String = firstAttribute
-type : String = String
-value : String = Any
PLoP98 - Foote and Yoder
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Strategies
Strategy1
SomeStrategy
Entity
-sharedAttributes : someType
+sharedInterface()
-specificAttribues : type
+someOperations()
Strategy2
Strategy2.1
...
StragegyN
Strategy2.2
Design Patterns - GOF95
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Active Object-Model
(Very Common Structure)
Entity
0..n
type
EntityType
rule
Rule
0..n
0..n properties
properties 0..n
PropertyType
Property
0..n
type
PrimRule
-name : String
-type : Type
Type Square
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
CompositeRule
Adaptive Object-Model
(Advantages)
Can more easily adapt to new
business requirements
Smaller in terms of classes so
possibly easier to maintain by experts
Time to market can be reduced
More closely
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Adaptive Object-Model
(Disadvantages)
Can be hard to understand and
maintain
Can have higher start up costs
Can have poor performance
Requires support tools
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Dimensions of Abstractions
L3
A 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
Adaptive
Object-Models -- Joe Yoder &Architecture
Reza Razavi
OMG ’s
metamodeling
session,
OOPSLA’2000
– October 2000, Minneapolis, USA.
Copyright by ECOOP’ 2000 workshop Poster
on Adaptive
Object-Model.
--- http://www.joeyoder.com/Research/metadata/ECOOP2000/description.html
Reifying Collaborations within programs
By
D. Manolescu
& R. Johnson
at UIUC
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
The Core of Micro-Workflow
By
D. Manolescu
& R. Johnson
at UIUC
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Dynamic Structures Referenced by Process Definitions
intervalProc := PrimitiveCallSpec
sends: #computeInterval:
with: ‘Nominal Diameter’
to: #currentGauge
result: #interval.
nominalDistanceProc := PrimitiveCallSpec
sends: #givenValue:
with: ‘Nominal Diameter / 2’
to: Distance
result: #nominalDistance.
^ intervalProc, nominalDistanceProc
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Architectural Style for
Adaptive and Flow-Independent Software
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
References
 Brian Foote and Joseph Yoder. “Metadata and Active Object-Models,” Collected
papers from the PLoP '98 and EuroPLoP '98 Conference, Technical Report #wucs98-25, Dept. of Computer Science, Washington University, Sept 1998.
 Don Roberts and Ralph 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,
Reading, MA., 1997.
 Dragos A. Manolescu and Ralph E. Johnson. Dynamic Object Model and Adaptive
Workflow. Metadata and Active Object-Model Pattern Mining Workshop.
OOPSLA'99, Denver, USA. http://www.uiuc.edu/ph/www/manolesc/Workflow.
 John Poole - The Common Warehouse Metamodel as a Foundation for Active
Object Models in the Data Warehouse Environment. Position paper to
ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining.
June 2000, Cannes, France.
 Ralph Johnson and Jeff Oaks. “The User-Defined Product Framework,” URL:
http://st-www.cs.uiuc.edu/users/johnson/papers/udp/
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
References
 Reza Razavi - Coupling The Core of Active Object-Models and Micro Workflow -- Foundations of a Framework for Developing End User Programming
Environments. Position paper to ECOOP‘2000 workshop on Metadata and Active
Object-Model Pattern Mining - Cannes, France.
 Reza Razavi. “Active Object-Models et Lignes de Produits”. OCM’2000. Nantes,
France. May 2000. http://www-poleia.lip6.fr/~razavi/ocm2000.
 Joseph W. Yoder, Brian Foote, Dirk Riehle, and Michel Tilman Metadata and
Active Object-Models Workshop Results Submission; OOPSLA Addendum, 1998.
 Joseph W. Yoder, Federico Balaguer , Ralph Johnson --- From Analysis to Design
of the Observation Pattern. Metadata and Active Object-Model Pattern Mining
Workshop.
OOPSLA'99,
Denver,
USA.
URL:
www.joeyoder.com/Research/metadata/OOPSLA99
 Joseph Yoder and Reza Razavi. “Metadata and Active Object-Models Workshops”
Collected
papers
from
the
ECOOP2000.
www.joeyoder.com/Research/metadata/ECOOP2000
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
References
 Francis Anderson and Ralph Johnson. The Objectiva telephone billing system.
MetaData Pattern Mining Workshop, Urbana, IL, May 1998. Available on the Web
at http://www.joeyoder.com/Research/metadata/UoI98MetadataWkshop.html.
 Holger Blasum, Thorsten Weigl - Content management transactions -applicability
of a dynamic object model. Position paper to ECOOP‘2000 workshop on Metadata
and Active Object-Model Pattern Mining - Cannes, France.
 Martine Devos and Michel Tilman. A repository-based framework for evolutionary
software devel-opment. MetaData Pattern Mining Workshop, Urbana, IL, 1998.
 P. Brooks, Z. Kovacs, J-M Le Goff, R. McClatchey, T. Solomonides & N. Toth.
Ontologies, Patterns and Description-Driven Systems. Position paper to
ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining Cannes, France.
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Workshop Participants











Y. Shaham-Gafni gafni@il.ibm.com
J. Bézivin jean.bezivin@sciences.univ-nantes.fr
H. Blasum blasum@muc.de
V. Couturier vincent.couturier-9333783@netserver.univ-lyon3.fr
N. Parlavantzas arlavantzas@lancaster.ac.uk
J. Poole John_Poole@hyperion.com
R. Razavi Reza.Razavi@lip6.fr
N. Revault Nicolas.Revault@lip6.fr
G. Rozsavolgyi Gerard.Rozsavolgyi@lip6.fr
N. Toth Norbert.Toth@cern.ch
J. Yoder joeyoder@joeyoder.com
Adaptive Object-Models -- Joe Yoder & Reza Razavi
Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.
Download