a hands-on survey of pattern- related automation technologies€¦ · •these small programs can...

35
Epiphanies of patterns! A hands-on survey of pattern- related automation technologies March 17, 2008 1 Copyright © IBM Corp., 2007-2008 EclipseCon 2008: "Epiphanies of patterns!"

Upload: others

Post on 29-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Epiphanies of patterns

A hands-on survey of pattern-related automation technologies

March 17 2008 1Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

Introductions

bull Scott E Schneiderndash IBMtrade Rationaltrade

Pattern Technologies

bull Randy Lexvoldndash IBMtrade Rationaltrade

Worldwide SME for SOA

March 17 2008 2Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

Overview

March 17 2008 3Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

httpenwiktionaryorgwikiepiphany

Part I

Patterns Background

Part II

Hands-On Survey

Part III

Additional Resources

Epiphany

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns4

ldquoMicroflame SunflowerrdquoFirst Place 2006 Combustion Art Competitionhttpwwwcssciorgimagesart2006-MellishEtAl-1277x1502png

Ben Mellish and Fletcher Miller (National Center for Space Exploration Research) Dan Dietrich and Pete Struk (NASA Glenn Research Center) James Tien (Case Western Reserve University)

Pattern Ubiquitousness

bull ldquoThere are only patterns patterns on top of patterns patterns that affect other patterns Patterns hidden by patterns Patterns within patternsrdquo

bull ldquoIf you watch close history does nothing but repeat itself What we call chaos is just patterns we havenrsquot recognized What we call random is just patterns we canrsquot decipher What we canrsquot understand we call nonsense What we canrsquot read we call gibberishrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns5

httpenwikiquoteorgwikiSurvivor_28novel29

Pictured is a hand-hammered Zildjian Constantinople ride cymbal ndash are there patterns to the hammer markings that are

too complex to grasp

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 2: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Introductions

bull Scott E Schneiderndash IBMtrade Rationaltrade

Pattern Technologies

bull Randy Lexvoldndash IBMtrade Rationaltrade

Worldwide SME for SOA

March 17 2008 2Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

Overview

March 17 2008 3Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

httpenwiktionaryorgwikiepiphany

Part I

Patterns Background

Part II

Hands-On Survey

Part III

Additional Resources

Epiphany

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns4

ldquoMicroflame SunflowerrdquoFirst Place 2006 Combustion Art Competitionhttpwwwcssciorgimagesart2006-MellishEtAl-1277x1502png

Ben Mellish and Fletcher Miller (National Center for Space Exploration Research) Dan Dietrich and Pete Struk (NASA Glenn Research Center) James Tien (Case Western Reserve University)

Pattern Ubiquitousness

bull ldquoThere are only patterns patterns on top of patterns patterns that affect other patterns Patterns hidden by patterns Patterns within patternsrdquo

bull ldquoIf you watch close history does nothing but repeat itself What we call chaos is just patterns we havenrsquot recognized What we call random is just patterns we canrsquot decipher What we canrsquot understand we call nonsense What we canrsquot read we call gibberishrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns5

httpenwikiquoteorgwikiSurvivor_28novel29

Pictured is a hand-hammered Zildjian Constantinople ride cymbal ndash are there patterns to the hammer markings that are

too complex to grasp

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 3: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Overview

March 17 2008 3Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns

httpenwiktionaryorgwikiepiphany

Part I

Patterns Background

Part II

Hands-On Survey

Part III

Additional Resources

Epiphany

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns4

ldquoMicroflame SunflowerrdquoFirst Place 2006 Combustion Art Competitionhttpwwwcssciorgimagesart2006-MellishEtAl-1277x1502png

Ben Mellish and Fletcher Miller (National Center for Space Exploration Research) Dan Dietrich and Pete Struk (NASA Glenn Research Center) James Tien (Case Western Reserve University)

Pattern Ubiquitousness

bull ldquoThere are only patterns patterns on top of patterns patterns that affect other patterns Patterns hidden by patterns Patterns within patternsrdquo

bull ldquoIf you watch close history does nothing but repeat itself What we call chaos is just patterns we havenrsquot recognized What we call random is just patterns we canrsquot decipher What we canrsquot understand we call nonsense What we canrsquot read we call gibberishrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns5

httpenwikiquoteorgwikiSurvivor_28novel29

Pictured is a hand-hammered Zildjian Constantinople ride cymbal ndash are there patterns to the hammer markings that are

too complex to grasp

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 4: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns4

ldquoMicroflame SunflowerrdquoFirst Place 2006 Combustion Art Competitionhttpwwwcssciorgimagesart2006-MellishEtAl-1277x1502png

Ben Mellish and Fletcher Miller (National Center for Space Exploration Research) Dan Dietrich and Pete Struk (NASA Glenn Research Center) James Tien (Case Western Reserve University)

Pattern Ubiquitousness

bull ldquoThere are only patterns patterns on top of patterns patterns that affect other patterns Patterns hidden by patterns Patterns within patternsrdquo

bull ldquoIf you watch close history does nothing but repeat itself What we call chaos is just patterns we havenrsquot recognized What we call random is just patterns we canrsquot decipher What we canrsquot understand we call nonsense What we canrsquot read we call gibberishrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns5

httpenwikiquoteorgwikiSurvivor_28novel29

Pictured is a hand-hammered Zildjian Constantinople ride cymbal ndash are there patterns to the hammer markings that are

too complex to grasp

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 5: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Pattern Ubiquitousness

bull ldquoThere are only patterns patterns on top of patterns patterns that affect other patterns Patterns hidden by patterns Patterns within patternsrdquo

bull ldquoIf you watch close history does nothing but repeat itself What we call chaos is just patterns we havenrsquot recognized What we call random is just patterns we canrsquot decipher What we canrsquot understand we call nonsense What we canrsquot read we call gibberishrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns5

httpenwikiquoteorgwikiSurvivor_28novel29

Pictured is a hand-hammered Zildjian Constantinople ride cymbal ndash are there patterns to the hammer markings that are

too complex to grasp

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 6: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Comedy ndash Rule of Three

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns6

bull Three programming languages arrive to their first day of school nervously scurrying about looking for home roomhellip

bull A pattern observed in some successful jokes (and perhaps some unsuccessful jokes)

bull Breaking a sequential pattern that is predicted by the listener happens to be funnyndash Mundane mundane outlandish

switch-up

The third one Javatrade finally

stops after the late bell rings and exclaims

exceptionally ldquoClassNotFoundrdquo

The second one ldquoPrologrdquo gathers some facts and

subsequently reasons her way logically to the class

The first language ldquoCrdquo asks for a

pointer to home room and he then safely dereferences

to the class

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 7: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Music ndash Turntablist Scratches

bull Forward patternbull Flare patternbull Prism pattern

ndash Forward flarendash Backward flare

bull Stab patternbull Drag patternbull Scribble pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns7

Scott E Schneider (ldquoDeejay Knows-Knowrdquo) performing occurrences of the scratch patterns listed to the right Equipment used from left-to-right include a Technics 1200 MKII turntable a Serato Scratch Live control record and audio interface as well as a Rane 56 TM mixer

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 8: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Mathematics Golden Ratio

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns8

bull An interesting natural pattern exists that is related to the Fibonacci series 0 1 1 2 3 5 8 13 21 34 55 hellip

bull The ratio of f(n+1) to f(n) approaches Φ as n goes to infin

bull Φ is the solution to the quadratic equation n2 + n1 + n0 = 0

Φ = n = 161803398874989hellipΦ-1 = Φ ndash 1Φ2 = Φ + 1 In a golden rectangle the

long side (a + b) is Φ times the short side (a)

a

a b

The golden rectangle

(a + b) a = a b = Φ

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 9: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Poetry Clerihew

bull Invented by Edmund Clerihew Bentley (July 10 1875 ndash March 30 1956)

bull Four line poem with AABB rhyme pattern

bull First line ends in a proper noun the subject of the poem

bull A poetry form can be viewed as a poetry pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns9

ldquoAh the SingletonNot rare like a shingletonAlthough intent is nobleIs it not just a globalrdquo

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 10: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Architecture Alexander

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns10

bull Christopher Alexander is the father of a pattern-based approach for architecture and his writings are quite poetic and holistic with a strong theme of idealism (1977)

bull ldquoA Pattern Languagerdquo introduces and relates 253 patterns to form a practitioner vocabulary

bull Empowers the individual and community to create their own towns buildings and constructions (a timeless way of building as observed over time)

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 11: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Software Ward Kent GammaGrady Booch Ralph Johnson John Vlissides Richard Helm James Coplien Richard Gabriel Martin Fowler Frank Buschmann et al

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns11

bull A decade later in 1987 Kent Beck and Ward Cunningham applied the idea of an Alexander-inspired pattern language to empower users to construct their own user interfaces and applications

bull After building momentum at OOPSLAs in 1993 Grady Booch and Kent Beck host a Colorado mountain retreat that sparks the formation of the Hillside Group

bull In 1994 Erich Gamma Richard Helm Ralph Johnson and John Vlissides the collectively known Gang-of-Four released the ever-so-popular ldquoDesign Patterns Elements of Reusable Object-Oriented Softwarerdquo

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 12: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns12

ldquoPatternedrdquo by Neko-Matt(Pachinko balls in a sake cup)

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 13: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

What is a Pattern (General)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns13

bull A pattern is a recurring abstraction that specifies a discriminating context-sensitive configuration of objects and the relationships between them

bull The relationships may be of a sequential spatial temporal logical mathematical or other characteristically observable or quantifiable nature httpkarenswhimsycommushroomsshtm

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 14: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

What is a Pattern (Alexandrian)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns14

bull ldquoEach pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twicerdquoChristopher Alexander ldquoThe Timeless Way of Buildingrdquo

httpkarenswhimsycomislamic-architectureshtm

httpwwwflickrcomphotospingnews463173771

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 15: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Qualities Imparted

bull Regularity ndash Patterns impart a degree of

consistency on the domains that exhibit them

bull Predictabilityndash Patterns offer expectedness

advantages and disadvantages already documented relationships understood

bull Efficienciesndash Patterns offer practitioner

productivity gains due to their reusability

bull Communicability ndash Patterns build a vocabulary for

domain practitioners to converse with

bull Habitualnessndash Patterns become ingrained

with the practitioner over time the glue for the other core domain concepts

bull Maturationndash Patterns enable the

maturation and evolution of a domain ldquostanding on the shoulders of giantsrdquo

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns15

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 16: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

State Pattern

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns16

Role = Context

Role = State

Role = Concrete State

Relation = delegates-to

Relation = abstracts

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 17: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

State Occurrence

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns17

Participant = Signalassumes the role Context

Participants = Green Yellow and Red assume the role Concrete State

Participant = Lightassumes the role State

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 18: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

State Decomposition

bull Patterns can be composites which are comprised of component patterns

bull Patterns that cannot be further decomposed into component patterns are commonly referred to as micro-patterns atomic or elemental patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns18

Singleton

Delegation

Concretization

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 19: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Part IPatterns Background (55 minutes)

1 The ubiquity of patterns

2 Towards the very essence of patterns

3 Man versus machine (versus man and machine)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns19

NASA ESA and The Hubble Heritage Team (STScIAURA)

ldquoHubble Looks at MonocerotisrdquoLight echo reveals dust patterns around star

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 20: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Operations

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns20

Pattern

Apply

bull Impose a known pattern on artifacts

Detect

bull Discover occurrences of known patterns

Harvest

bull Gather and codify new patterns from occurrences

Mine

bull Discover recurrences of potential uncharted patterns

Visualize

bull Represent patterns or occurrences graphically

hellip

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 21: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Use Case MAD LIBStrade

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns21

bull Operationsndash Apply detect harvest mine

visualize hellip

bull Domainsndash Analysis requirements

architecture design implementation testing deployment process hellip

bull Classesndash Patterns anti-patterns macro-

patterns micro-patterns choreographic patterns

Apply design patterns to UML models

Harvestdeployment micro-patternsfrom a topology meta-model

Detect business process anti-patterns from Ecore-defined BPM models

Mineimplementation patterns from Java code

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 22: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Websters New International Dictionary of the English Language 1911

Manual Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns22

ndash Apply (create occurrences)bull A person reads from the available literature and

interprets the natural language and pictorial description and if it is suitable translates it in to a sequence of steps used to apply the pattern to an existing situation

ndash Detect (find occurrences)bull A person studies existing bodies using observational

skills to identify known pattern occurrences cross-referencing to the literature when necessary

ndash Harvest (create patterns)bull A person generalizes existing concrete occurrences into

an acceptable pattern abstraction and documents it in a standard natural language and pictorial format

ndash Mine (find patterns)bull A person sifts through existing bodies using instinct

and luck to stumble upon new patterns using recurrence observation after a few occurrences are confirmed harvesting is possible

Mapping operational use cases to human executable tasks

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 23: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Machine Execution

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns23

ndash Apply (create occurrences)bull A machine comprehends a formal pattern specification

and derives executable code that transforms the starting body state to one that exhibits the pattern

ndash Detect (find occurrences)bull A machine comprehends a formal pattern specification

and uses that to form an appropriate query that will execute against existing bodies seeking concrete occurrences of that pattern

ndash Harvest (create patterns)bull A machine considers an existing pattern occurrence

that is not yet formally specified analyzes it and generates a formal pattern specification that satisfies the particular pattern occurrence

ndash Mine (find patterns)bull A machine uses a particular strategy to traverse existing

bodies using recurrences as hints to existing pattern occurrences that are yet to be formally specified

Coin-Operated Calculating MachinePatented March 5 1889 FW Brooks

Mapping operational use cases to machine executable tasks

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 24: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Approaches

bull One can imagine creating a domain-specific language for pattern specification where specific patterns are specified using a language that includes concepts such as patterns occurrences roles participants structure and behavior

bull This is how some pattern automation research is approached in academia basically solving the more general problem and then applying it to specific solutions

bull More burden is on the tool developer and less burden is on the pattern practitioner

Declarative pattern specifications are separate from the

generic operational programs that interpret them

bull These small programs can be thought of as micro-tools and unlike more general tools these tools are used for very specific purposes (for example one can create a Java program that knows how to detect a class of Javadoc anti-patterns in code)

bull This is how most pattern automation support is implemented in the industry each new pattern and supported operation is coupled together and is not easily reusable in other patterns or operations

bull More burden is on the pattern practitioner and less burden is on the meta-tool developer the meta-tool is the tool that assists in micro-tool implementation

Imperative executable

representations of pattern specifications

are developed specifically for select operational use cases

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns24

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 25: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Man and Machine

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns25

Works of Fritz Kahn (1888 ndash 1968)

ldquoWe are all part of some cosmic pattern and this pattern works toward good and not evil It builds and does not destroyrdquo

Henry Kuttner ldquoThe Creature from Beyond Infinityrdquo (1940)

ldquoArt is the imposing of a pattern on experience and our aesthetic enjoyment is recognition of the patternrdquo

Alfred North Whitehead Dialogues (1954)

Its not the tools that solve problemsits the people that use the tools that solve problemshellip

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 26: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Part IIHands-On Survey (55 minutes)

1 Apply patterns to development artifacts

JETQVT hands-on lab

2 Visualize and interact with pattern representations

EMFGMF hands-on lab

3 Detect and validate patterns and occurrences

EMFQEMFV hands-on lab

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns26

NASAJohns Hopkins University Applied Physics LaboratorySouthwest Research Institute

ldquoJupiterrdquo Ganymede (top moon with shadow)

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 27: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Apply Patterns (JET2QVT)

bull Walk-through building a pattern application micro-tool with JET2 (using model-to-text transformations to apply patterns to textual artifacts)

bull Discussion of using QVT to apply patterns in-place (using model-to-model transformations to apply patterns to model-based artifacts)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns27

httpwwwjet2com

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 28: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Visualize Patterns (EMFGMF)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns28

bull Discussion of using EMF to represent pattern (creating an Ecore model)

bull Walk-through building a graphical interface micro-tool with GMF (using graphical front-end to visualize and interact with pattern)

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 29: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Detect Patterns (EMFQEMFV)

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns29

bull Discussion of using EMFQ to detect pattern occurrences (creating queries to retrieve pattern occurrences)

bull Discussion of using EMFV to validate pattern occurrences (plugging in to the validation framework for problem reporting)

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 30: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Part IIIAdditional Resources

1 Eclipsetrade based commercial pattern automation tools

2 Other open source pattern-related technologies

3 Interesting research in and around patterns

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns30

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 31: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Offerings Commercial

bull IBM Rationalndash Software Architectndash Software Modelerndash Systems Developerndash Application Developerndash Data Architect

bull Borlandtrade Togetherndash Architect Designer

Developer

bull Compuwaretradendash OptimalJ MagicDraw

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns31

Hearnlsquos New York City New York Pattern Department September 22 1944

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 32: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Offerings Non-Commercial

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns32

bull Concepts that coalesce with pattern automationsndash Model-driven engineering (ldquoMDErdquo)ndash Pattern-driven engineering (ldquoPDErdquo)ndash Domain specific languages and modeling (ldquoDSLrdquo

ldquoDSMLrdquo)ndash Artifact transformations (ldquoM2Mrdquo M2Trdquo ldquoT2Mrdquo ldquoMoPrdquo)ndash Query and search graph theory constraint satisfaction

problems (ldquoCSPrdquo)ndash Program understanding static and dynamic analysisndash Model representation and synchronization

bull Search the internet using these concepts as a start to find Eclipse-based and other open source offerings

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 33: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Research

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns33

bull PROSE (ldquoPattern Reasoning and Object-Oriented Specification Environmentrdquo)ndash Scott E Schneider IBM Rational

bull SPQR (ldquoSystem for Pattern Query and Recognitionrdquo)ndash Jason McC Smith IBM Watson

bull MDCE (ldquoModel-Driven Constraint Engineeringrdquo)bull Michael Wahler Jana Koehler Achim D Brucker IBM Zurich

bull Model Grokkingbull Dany Moshkovich Shiri Kremer-Davidson IBM Haifa

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 34: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Legal Notices

Copyright copy IBM Corp 2007-2008 All rights reserved Source code in this presentation is made available under the EPL v10 remainder of the presentation is licensed under Creative Commons Att Nc Nd 25 license

IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation in the United States other countries or both

Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States other countries or both

Borland and the Borland Logo are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries

MAD LIBS is a registered trademark of Penguin Group (USA) Inc in the United States and other countries

Compuware is a registered trademark of Compuware Corporation in the United States and other countries

Java and all Java-based marks among others are trademarks or registered trademarks of Sun Microsystems in the United States other countries or both

Eclipse and the Eclipse logo are trademarks of Eclipse Foundation Inc

Other company product and service names may be trademarks or service marks of others

THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF OR OTHERWISE RELATED TO SUCH INFORMATION ANY INFORMATION CONCERNING IBMS PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns34

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347

Page 35: A hands-on survey of pattern- related automation technologies€¦ · •These small programs can be thought of as micro-tools and unlike more general tools these tools are used for

Thanks

March 17 2008Copyright copy IBM Corp 2007-2008

EclipseCon 2008 Epiphanies of patterns35

httpflickrcomphotosuhuru17012252905347