SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Made available under EPL 2.0
OCL 2019 Keynote
Retrospective and Prospective
Edward Willink
Willink Transformations Ltd
Eclipse Foundation
MMT Component co-Lead
OCL Project Lead
QVTd Project Lead
QVTo Committer
OMG (Model Driven Solutions)
OCL 2.3, 2.4, 2.5 RTF Chair
QVT 1.2, 1.3, 1.4 RTF Chair
OCL 2019 @ MODELS 2019
16th September 2019
16-September-2019 OCL Keynote 2Made available under EPL 2.0
Overview
OCL History
OMG process
Where is OCL 2.5?
OCL Tools / USE / Eclipse OCL History
My involvement / vision
OCL Problems solved
Upbeat OCL Prospective
9-Dec-2015 OCL Roadmap 3Made available under EPL 2.0
Simple Black Box view of OCL
OCL specifies computations on model elements
Specification exposition imperfect
Precise Concrete Syntax Grammar
More functionality
OCL
Concrete Syntax
Standard Library
Semantics
U
s
e
r
s
9-Dec-2015 OCL Roadmap 4Made available under EPL 2.0
White Box view of OCL
Specification totally inadequate
Missing / Unimplementable
Rewrite / Design
OCL
Concrete Syntax
Standard Library
Semantics
U
s
e
r
s
M
o
d
e
l
s
XMI
Saver
Loader
Abstract
Syntax
16-September-2019 OCL Keynote 5Made available under EPL 2.0
OCL 1.x History
Early 1990s, Steve Cook + John Daniels @ IBM
Syntropy: OMT diagrams + Z formality
1995, Steve Cook + Jos Warmer @ IBM
OCL - compromise between Z / programming
1997... OCL 1.x bundled as part of UML 1.x
constraints only
1998 Jos Warmer + Anneke Kleppe
The Object Constraint Language:
Precise Modeling with UML
16-September-2019 OCL Keynote 6Made available under EPL 2.0
OCL 2.0 History
2003-2005 UML 2U/U2P competition
draft OCL 2.0 ejected as generally useful
expressions too, let, minor syntax evolution
2003 Jos Warmer + Anneke Kleppe
The Object Constraint Language: Second Edition
Getting Your Models Ready for MDA
2004-2006 8-way QVT competition
7 submissions re-use OCL
2006 OCL 2.0 (still draft) published
2007 QVT 1.0 published
16-September-2019 OCL Keynote 7Made available under EPL 2.0
OCL 2.x
2010 OCL 2.1 .. 2.2 - minor fixes
2010 OCL 2.3 - minor fixes
null/invalid clarification
2012 OCL 2.3.1 ISO standard
complete with TBDs
2014 OCL 2.4 - minor fixes
2015 OCL 2.5 Request For Proposal
bug list
16-September-2019 OCL Keynote 8Made available under EPL 2.0
OMG Process
Specifications
produced by a Finalization Task Force
revised by a Revision Task Force
Specification Problems
raised by anyone as OMG issues (now JIRA)
Task Force membership
members represent interested OMG members
companies / institutes / ...
sometimes paid by the member company
16-September-2019 OCL Keynote 9Made available under EPL 2.0
Specification Process
RTF produces a revised specification
Adobe FrameMaker preferred
RTF produces a report
one ballotted resolution per issue
resolution responds to an issue (may defer)
issue (tided up original text)
discussion (condensed email discussions)
response (detailed editing instructions)
very manual, mixture of source text formats
'Word' preferred
16-September-2019 OCL Keynote 10Made available under EPL 2.0
The Response problem
Trivial one word/paragraph change
tedious but ok add/replace instructions
Changes often impact in multiple places
really tedious but ok add/replace instructions
often only 95% hit-rate
Non-trivial changes often overlap
really really tedious edit detail sequencing
or fix 1 delegates all edits to fix 2
Non-trivial changes are a mega-pain (unpaid)
16-September-2019 OCL Keynote 11Made available under EPL 2.0
The OCL Response Problem
OCL 2.0 was actually still a draft
many TBDs for when UML 2.0 exists
numerous pervasive overlapping fixes
e.g. UML 2.0 changed "Attribute" to "Property"
Not enough time/enthusiasm to detail all 'typos'
replacement chapter-sized fixes not acceptable
OCL specification is referential
full of references to model concepts
auto-generate from models plus comments
cf Eclipse OCL Standard Library help pages
UML 2.5 is 50% auto-generated
16-September-2019 OCL Keynote 12Made available under EPL 2.0
OCL Specification way forward
OCL 2.5 Request for Proposal
Rewrite rather delta edit
similar to UML 2.5 rewrite
from OMG: (unpaid) solutions from interested parties
Need to be coherent with other OMG standards
fUML introduces stronger semantics for UML
similar approach needed for OCL
massive (unpaid) research activity
OCL 2.next Request for Comments
from interested party to OMG
take it => OMG OCL 2.next specification
leave it => Eclipse OCL 2.next specification
16-September-2019 OCL Keynote 13Made available under EPL 2.0
OCL specification progress
Many of the problems solved
prototyped in Eclipse OCL
extensively modelled for the models
needs a clean-up pass
remove Eclipse-isms
inadequately modelled for the conversions
e.g. Normalization of UML stereotypes
needs QVTr
Auto-generation
currently models + comments to textile using Xtend
probably models + comments to latex using QVTr
16-September-2019 OCL Keynote 14Made available under EPL 2.0
Tools
Oldest - still active
IBM/EMF/MDT/Eclipse OCL
USE
Others - not active
Dresden OCL
Kent OCL
Octopus
Together
...
16-September-2019 OCL Keynote 15Made available under EPL 2.0
UML-based Specification Environment
Independent self-contained modeling environment
variety of UML-related diagrams (integrated)
supports OCL evaluation history (Filmstrips)
platform for many research papers
mainly OCL 1.x, some OCL 2.x (not Ecore)
2002 "Development of UML Descriptions with USE"
2009 USE 2.4.0 on SourceForge
2019-04 USE 5.1.0 on SourceForge
16-September-2019 OCL Keynote 16Made available under EPL 2.0
IBM OCL ... EMF OCL ... MDT OCL
1995 OCL invented at IBM
2000 OMG OCL 2.0 Request for Proposals
2001 Eclipse Project seeded by IBM
2002 Earliest copyright in Eclipse OCL sources
2003 OMG OCL 2.0 draft
2004 Eclipse Foundation established
2005-09-05 First EMF OCL Bugzilla
2005-10-27 Migration of org.eclipse.emf.ocl plugins
<= 2006-06 (1.0.0) (Classic) OCL for Ecore
2007-06 (1.1.0) (Classic) OCL for UML 2.1
Environment<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E>
2008-06 (1.2.0) Validation implemented
OCL Tools for OCL UI - never progressed
16-September-2019 OCL Keynote 17Made available under EPL 2.0
OCL tooling approach
Claas Wilke, Michael Thiele, Christian Wende
Extending Variability for OCL Interpretation, OCL 2010
User / 'OCL', metaclasses / instances
Dresden OCL
adapt User metaclasses to 'OCL' metaclasses
adapt User instances to 'OCL' instances
Eclipse Ecore / UML OCL
re-tool OCL for Ecore / UML metaclasses
re-tool OCL for Ecore / UML instances
Eclipse Pivot OCL
normalize User metaclasses as 'OCL' metaclasses (tens)
accommodate Ecore / UML instances (thousands)
16-September-2019 OCL Keynote 18Made available under EPL 2.0
MDT OCL ... Eclipse OCL
2010-06 (3.0.0) EMF delegates
Complete OCL / OCLinEcore / OCLstdlib Editors
initially LPG2+IMP, then Xtext
2011-06 (3.1.0) Pivot OCL as 'examples'
Impact Analyzer (deprecated) - Classic Ecore OCL
2012-06 (4.0.0) Java Code Generator
2014-06 (5.0.0) Debugger, Validity View
2015-06 (6.0.0) Pivot OCL not 'examples'
2018-06 (6.4.0) EMF EAnnotation validators
builder + nature
2019-09 (6.9.0) Latest 3-monthly Eclipse release
16-September-2019 OCL Keynote 19Made available under EPL 2.0
Eclipse OCL - not implemented
UML States - oclIsInState()
parsed but otherwise ignored
EMF objects do not have state, need UML objects
UML Messages - ^, ^^, hasChanged(), hasSent()
parsed but otherwise ignored
needs history
OCL Evaluation history - oclIsNew(), @pre, pre, post
parsed but otherwise ignored
major design compromise wrt memory / speed
https://bugs.eclipse.org/538468
instrumenting EMF construction is costly
pre could be a code generation option
Use USE for history support
16-September-2019 OCL Keynote 20Made available under EPL 2.0
Solutions
OCL 2.5 RFP identifies many problems
Eclipse Pivot OCL
free from legacy Ecore/UML OCL compatibility
free to prototype solutions
16-September-2019 OCL Keynote 21Made available under EPL 2.0
Pivot OCL solutions 1
Models
OMG OCL has a broken Abstract Syntax model
Pivot OCL provides extensible (QVTr extends)
Abstract Syntax model UML -> Ecore -> Java
Well Formedness Rule model Complete OCL -> Ecore -> Java
Concrete Syntax models Ecore -> Java
Grammars Xtext -> Java
Standard Library Model OCLstdlib -> Java
Code Generator Model Ecore -> Java
Pivot OCL substantially auto-generated from its models
many use transformation from UML source
2-Oct-2016 OCL Status 22Made available under EPL 2.0
Specification-to-compiler Automation
OCL specification is incomplete
Xtext covers large parts of an implementation
16-September-2019 OCL Keynote 23Made available under EPL 2.0
Pivot OCL solutions 2
aValue.aFunction()
Overloading / dynamic dispatch
OMG OCL uses UML operations
UML operations have implementation(OCL)-defined semantics
Pivot OCL (and Classic OCL) provides Java-like overloading
16-September-2019 OCL Keynote 24Made available under EPL 2.0
Pivot OCL solutions 3
anObject.oclType().name
Reflection
OMG OCL excludes MOF reflection
OMG OCL specification uses oclType() reflectively
OMG OCL oclType() is query / powerset / open enumeration
Pivot OCL oclType() returns a reflective OCL metaclass
16-September-2019 OCL Keynote 25Made available under EPL 2.0
Pivot OCL solutions 4
Complex{real=1.0,imag=0.0}
Type construction
OMG OCL has no type construction
Pivot OCL has Shadow objects
16-September-2019 OCL Keynote 26Made available under EPL 2.0
Pivot OCL solutions 5
context Element
def: isPersistent() : Boolean[1] = false
Open Classes
UML has Model, Package, Class, ...
no additions => Closed Classes
OMG OCL has magic Complete OCL
additional features that behave as ordinary features
=> Open Classes
Pivot OCL - CompleteModel, CompletePackage, CompleteClass
each is an overlay of UML Model, Package, Class
modelled, extensible, has URI
16-September-2019 OCL Keynote 27Made available under EPL 2.0
OCL Complete Model
16-September-2019 OCL Keynote 28Made available under EPL 2.0
Pivot OCL solutions 6
XMI
OMG requires AS serialization - many problems
Pivot OCL AS is serializable
Complete classes for Complete OCL open classes
Orphanage package for synthetic types
Blindness to Primitive/Collection/Tuple type namespaces
OCL standard library has a referenceable model
16-September-2019 OCL Keynote 29Made available under EPL 2.0
Pivot OCL solutions 7
Sequence(String)
Templates
UML has generic types / templates
OMG OCL has e.g. Sequence(T) with magic T
Pivot OCL has templated classes / operations
UML's TemplateParameterSubstitution etc
Sequence(T) - T is a template parameter
16-September-2019 OCL Keynote 30Made available under EPL 2.0
Pivot OCL solutions 8
aCollection->select(e | e.name.size() < 5)
Lambdas
OMG OCL Iterator body is obviously a lambda expression
closure() specification uses text macro exposition
an invocation-site-specific helper function
synthesized by lexical substitution of
Pivot OCL uses lambdas, types and variables
16-September-2019 OCL Keynote 31Made available under EPL 2.0
Pivot OCL solutions 9
Library Model
OMG OCL is textual
Pivot OCL has standard library model (and editor)
16-September-2019 OCL Keynote 32Made available under EPL 2.0
Pivot OCL solutions 10
anObject.name?.size()
Null safety
UML has optional multiplicity T[?]
Pivot OCL support [?] / [1] multiplicities nullable/non-null
Pivot OCL adds ?. and ?-> null safe navigation
16-September-2019 OCL Keynote 33Made available under EPL 2.0
Pivot OCL solutions 11
Map(K, V)
see lightning talk
16-September-2019 OCL Keynote 34Made available under EPL 2.0
Pivot OCL solutions 12
Stereotypes
UML has Stereotypes
UML has a base_xxx, extension_xxx navigation indication
OMG OCL ignores Stereotypes
Classic OCL relies on Eclipse UML2 Java API
Pivot OCL normalizes as regular classes / navigation
Association Classes
UML has Association Classes
OMG OCL has hard to understand special semantics
Pivot OCL normalizes as regular classes / navigation
16-September-2019 OCL Keynote 35Made available under EPL 2.0
Pivot OCL not yet solutions 1
Lazy collections
lazy can dramatically improve partial evaluation
lazy is an overhead for full evaluations
Deterministic collections
OCL 'should' be deterministic
not that hard / inefficient
Patterns
solves oclIsKindOf/oclAsType redundancies ...
if x.oclIsKindOf(Z) then x.oclAsType(Z).f() else null endif
must use QVTr syntax
grammar is challenging - operation/iteration
16-September-2019 OCL Keynote 36Made available under EPL 2.0
Pivot OCL not yet solutions 2
Modules
auto-tooling can support pick and mix
discard States, discard Messages, add Temporal
blocked by modular grammar tooling
Evaluation semantics
auto-tooling would be nice
awaits academic input
16-September-2019 OCL Keynote 37Made available under EPL 2.0
System Software Vision
1978-2012 Embedded System Engineer
Digital Signal Processing - DSP
disappointing tools - do better
Vision - reliable systems
system is composed of sub-systems
need a solid composition semantics
Waveform Description Language (WDL)
need a solid leaf sub-system semantics
CAL Action Language
16-September-2019 OCL Keynote 38Made available under EPL 2.0
System Engineering
System and sub-systems
Traditionally sub-systems (components) are re-used
system has to accommodate sub-system eccentricities
Sub-systems should satisfy the needs of the system
sub-system should be tailored (auto-generated)
System concerns
scheduling, deployment, precision, ....
each can be analyzed / auto-generated
Auto-generation
gcc should be a 100 transformation chain
a PhD could research/rewrite just one
16-September-2019 OCL Keynote 39Made available under EPL 2.0
DSP-specific Tooling
1996-2001 PhD - DSP compiler optimizations
meta-compilation for C++
2001 Reflection - Two worlds
DSP world (small community)
interesting concurrency ideas Ptolemy@UCB
poor tools - inverse CASE law
Java world (large community)
good tools
ad hoc / poor concurrency
16-September-2019 OCL Keynote 40Made available under EPL 2.0
Early Transformation Activities
CAL @ UCB - an XSLT transformation cascade
Seriously unreadable => NiceXSL
CAL - yet another small community language
not significantly different to a wrapper around OCL
16-September-2019 OCL Keynote 41Made available under EPL 2.0
Eclipse GMT Activities
2004 Eclipse GMT (Jean Bézivin)
UMLX 1 inspired by OOPSLA GME paper
Outline NiceXSL transformation design
UMLX 2 based on GEF
No transformation to executble
UMLX 3 based on GMF
No transformation to executble
16-September-2019 OCL Keynote 42Made available under EPL 2.0
Early QVT / OCL activities
UMLX '4' do execution first, graphics last
UMLX and QVTr rather similar
alternate graphical/text views
Develop/exploit QVTr first
UMLX's QVT editors contributed to QVTd
OCL extensibility contributed to MDT OCL
[2017 UMLX '5' using Sirius+QVTr+OCL+Java]
2008 Eclipse QVTd committer
2009 Eclipse OCL committer
16-September-2019 OCL Keynote 43Made available under EPL 2.0
E.D.Willink Roles/Activities 2
2009 Eclipse OCL project lead
2010 Eclipse QVTd project lead
2012 ----- 'retired' -----
2012 Eclipse QVTo committer
2012 OMG OCL RTF chair
2013 OMG QVT RTF chair
2014 OCL 2.4 - minor tidy up/clarification
2014 OCL 2.5 RFP - bug list
2015 QVT 1.2 - minor tidy up/clarification
2016 QVT 1.3 - minor tidy up/major clarification
16-September-2019 OCL Keynote 44Made available under EPL 2.0
OCL State of the Art
OCL developer base is probably declining
no commercial tools - all failed / Open Source
many tool failures - Dresden OCL most recently
two 'ok' quality implementations
OCL has less than ten developers
OCL specification is poor
OCL specification progress is pitiful
OCL user base is perhaps steady
many modeling papers use OCL
little alternative - OCL is 'right'
16-September-2019 OCL Keynote 45Made available under EPL 2.0
Updated Reflection
2001 Reflection - Two worlds
DSP world (small community)
Java world (large community)
2019 Reflection - Two worlds
OCL world (tiny community)
Java world (huge community)
16-September-2019 OCL Keynote 46Made available under EPL 2.0
Java contrast
Java etc keeps improving (similar good ideas)
generics, lambdas, streams, ...
Java has multiple high quality implementations
some free
Java has thousands of developers, OCL barely ten
@Pure is not practical
OCL cannot outdo Java on Java's ground
find another playing field
16-September-2019 OCL Keynote 47Made available under EPL 2.0
Language Progress as Bye-Byes
Assembler
bye bye 1's and 0's
C
bye bye stack/condition code corruption
bye bye self-modifying code
Object Orientation
nearly bye bye global variable corruption
nearly bye bye distant variable corruption
Java
bye bye heap corruption
OCL
bye bye side effects
bye bye memory corruption
16-September-2019 OCL Keynote 48Made available under EPL 2.0
Why OCL?
OCL has just one Unique Selling Point left
side effect free
analyzeable, predictable, reliable, (fast)
But OCL is useless
side effect free prohibits mutation - no results
needs embedding in a model provider
OCLinEcore helps
Model Transformation really helps
16-September-2019 OCL Keynote 49Made available under EPL 2.0
Incremental (bidirectional)
Declarative Transformation
Underlying OCL
rigorous queries / analyzeable memory accesses
Declarative Transformation
limited / analyzeable mutations
global dependency analysis
reliable computation scheduling
reliable selective / incremental re-computation
Manual Java cannot sensibly do this
=> OCL / QVTr Killer Application
16-September-2019 OCL Keynote 50Made available under EPL 2.0
OCL for proofs
Not my field - just my prejudice
need to challenge a specification
is it sensible
is a behaviour guaranteed / impossible
cf. Declarative Model Transformation
metamodel type system very restrictive
eliminates numerous scheduling alternatives
potentially NP complete but O(1) or O(2) in practice
Contradiction finders
transform to existing non-metamodel tools
really really slow for moderate problems
?? remain metamodel aware and exploit OCL ??
16-September-2019 OCL Keynote 51Made available under EPL 2.0
Summary
OCL could have an important future
drastic tool improvements needed
quality
ease-of-use / fun-to-use
documentation / examples
Fast QVTr incremental tooling is happening
OCL-based proof tools needed
pre/post/frame condition / history unification - USE
?? Questions ??

Contenu connexe

Similaire à OCL 2019 Keynote Retrospective and Prospective

Introduction to embedded sql for NonStop SQL
Introduction to embedded sql for NonStop SQLIntroduction to embedded sql for NonStop SQL
Introduction to embedded sql for NonStop SQLFrans Jongma
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?Kenn Hussey
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCLEdward Willink
 
NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)IT Industry
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextEdward Willink
 
IncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagramsIncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagramsÁkos Horváth
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Alexandro Colorado
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queriesIstvan Rath
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]Alex Ershov
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward Willink
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkSuresh Krishna Madhuvarsu
 
Bpmn 2.0 Eclipse OMG/Symposium
Bpmn 2.0 Eclipse OMG/SymposiumBpmn 2.0 Eclipse OMG/Symposium
Bpmn 2.0 Eclipse OMG/SymposiumAntoine Toulme
 
OpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel ProgrammingOpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel ProgrammingAndreas Schreiber
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 

Similaire à OCL 2019 Keynote Retrospective and Prospective (20)

Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
2010 06 22 omg - obeo
2010 06 22   omg - obeo2010 06 22   omg - obeo
2010 06 22 omg - obeo
 
Introduction to embedded sql for NonStop SQL
Introduction to embedded sql for NonStop SQLIntroduction to embedded sql for NonStop SQL
Introduction to embedded sql for NonStop SQL
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?
 
OCL in EMF
OCL in EMFOCL in EMF
OCL in EMF
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCL
 
NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for Xtext
 
IncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagramsIncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagrams
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queries
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse Link
 
Bpmn 2.0 Eclipse OMG/Symposium
Bpmn 2.0 Eclipse OMG/SymposiumBpmn 2.0 Eclipse OMG/Symposium
Bpmn 2.0 Eclipse OMG/Symposium
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 
OpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel ProgrammingOpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel Programming
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 

Plus de Edward Willink

A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TEdward Willink
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit OperatorsEdward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsEdward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of ComputationEdward Willink
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsEdward Willink
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?Edward Willink
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT LanguagesEdward Willink
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCLEdward Willink
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCLEdward Willink
 

Plus de Edward Willink (18)

An OCL Map Type
An OCL Map TypeAn OCL Map Type
An OCL Map Type
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2T
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?
 
OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
 

Dernier

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 

Dernier (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

OCL 2019 Keynote Retrospective and Prospective

  • 1. Made available under EPL 2.0 OCL 2019 Keynote Retrospective and Prospective Edward Willink Willink Transformations Ltd Eclipse Foundation MMT Component co-Lead OCL Project Lead QVTd Project Lead QVTo Committer OMG (Model Driven Solutions) OCL 2.3, 2.4, 2.5 RTF Chair QVT 1.2, 1.3, 1.4 RTF Chair OCL 2019 @ MODELS 2019 16th September 2019
  • 2. 16-September-2019 OCL Keynote 2Made available under EPL 2.0 Overview OCL History OMG process Where is OCL 2.5? OCL Tools / USE / Eclipse OCL History My involvement / vision OCL Problems solved Upbeat OCL Prospective
  • 3. 9-Dec-2015 OCL Roadmap 3Made available under EPL 2.0 Simple Black Box view of OCL OCL specifies computations on model elements Specification exposition imperfect Precise Concrete Syntax Grammar More functionality OCL Concrete Syntax Standard Library Semantics U s e r s
  • 4. 9-Dec-2015 OCL Roadmap 4Made available under EPL 2.0 White Box view of OCL Specification totally inadequate Missing / Unimplementable Rewrite / Design OCL Concrete Syntax Standard Library Semantics U s e r s M o d e l s XMI Saver Loader Abstract Syntax
  • 5. 16-September-2019 OCL Keynote 5Made available under EPL 2.0 OCL 1.x History Early 1990s, Steve Cook + John Daniels @ IBM Syntropy: OMT diagrams + Z formality 1995, Steve Cook + Jos Warmer @ IBM OCL - compromise between Z / programming 1997... OCL 1.x bundled as part of UML 1.x constraints only 1998 Jos Warmer + Anneke Kleppe The Object Constraint Language: Precise Modeling with UML
  • 6. 16-September-2019 OCL Keynote 6Made available under EPL 2.0 OCL 2.0 History 2003-2005 UML 2U/U2P competition draft OCL 2.0 ejected as generally useful expressions too, let, minor syntax evolution 2003 Jos Warmer + Anneke Kleppe The Object Constraint Language: Second Edition Getting Your Models Ready for MDA 2004-2006 8-way QVT competition 7 submissions re-use OCL 2006 OCL 2.0 (still draft) published 2007 QVT 1.0 published
  • 7. 16-September-2019 OCL Keynote 7Made available under EPL 2.0 OCL 2.x 2010 OCL 2.1 .. 2.2 - minor fixes 2010 OCL 2.3 - minor fixes null/invalid clarification 2012 OCL 2.3.1 ISO standard complete with TBDs 2014 OCL 2.4 - minor fixes 2015 OCL 2.5 Request For Proposal bug list
  • 8. 16-September-2019 OCL Keynote 8Made available under EPL 2.0 OMG Process Specifications produced by a Finalization Task Force revised by a Revision Task Force Specification Problems raised by anyone as OMG issues (now JIRA) Task Force membership members represent interested OMG members companies / institutes / ... sometimes paid by the member company
  • 9. 16-September-2019 OCL Keynote 9Made available under EPL 2.0 Specification Process RTF produces a revised specification Adobe FrameMaker preferred RTF produces a report one ballotted resolution per issue resolution responds to an issue (may defer) issue (tided up original text) discussion (condensed email discussions) response (detailed editing instructions) very manual, mixture of source text formats 'Word' preferred
  • 10. 16-September-2019 OCL Keynote 10Made available under EPL 2.0 The Response problem Trivial one word/paragraph change tedious but ok add/replace instructions Changes often impact in multiple places really tedious but ok add/replace instructions often only 95% hit-rate Non-trivial changes often overlap really really tedious edit detail sequencing or fix 1 delegates all edits to fix 2 Non-trivial changes are a mega-pain (unpaid)
  • 11. 16-September-2019 OCL Keynote 11Made available under EPL 2.0 The OCL Response Problem OCL 2.0 was actually still a draft many TBDs for when UML 2.0 exists numerous pervasive overlapping fixes e.g. UML 2.0 changed "Attribute" to "Property" Not enough time/enthusiasm to detail all 'typos' replacement chapter-sized fixes not acceptable OCL specification is referential full of references to model concepts auto-generate from models plus comments cf Eclipse OCL Standard Library help pages UML 2.5 is 50% auto-generated
  • 12. 16-September-2019 OCL Keynote 12Made available under EPL 2.0 OCL Specification way forward OCL 2.5 Request for Proposal Rewrite rather delta edit similar to UML 2.5 rewrite from OMG: (unpaid) solutions from interested parties Need to be coherent with other OMG standards fUML introduces stronger semantics for UML similar approach needed for OCL massive (unpaid) research activity OCL 2.next Request for Comments from interested party to OMG take it => OMG OCL 2.next specification leave it => Eclipse OCL 2.next specification
  • 13. 16-September-2019 OCL Keynote 13Made available under EPL 2.0 OCL specification progress Many of the problems solved prototyped in Eclipse OCL extensively modelled for the models needs a clean-up pass remove Eclipse-isms inadequately modelled for the conversions e.g. Normalization of UML stereotypes needs QVTr Auto-generation currently models + comments to textile using Xtend probably models + comments to latex using QVTr
  • 14. 16-September-2019 OCL Keynote 14Made available under EPL 2.0 Tools Oldest - still active IBM/EMF/MDT/Eclipse OCL USE Others - not active Dresden OCL Kent OCL Octopus Together ...
  • 15. 16-September-2019 OCL Keynote 15Made available under EPL 2.0 UML-based Specification Environment Independent self-contained modeling environment variety of UML-related diagrams (integrated) supports OCL evaluation history (Filmstrips) platform for many research papers mainly OCL 1.x, some OCL 2.x (not Ecore) 2002 "Development of UML Descriptions with USE" 2009 USE 2.4.0 on SourceForge 2019-04 USE 5.1.0 on SourceForge
  • 16. 16-September-2019 OCL Keynote 16Made available under EPL 2.0 IBM OCL ... EMF OCL ... MDT OCL 1995 OCL invented at IBM 2000 OMG OCL 2.0 Request for Proposals 2001 Eclipse Project seeded by IBM 2002 Earliest copyright in Eclipse OCL sources 2003 OMG OCL 2.0 draft 2004 Eclipse Foundation established 2005-09-05 First EMF OCL Bugzilla 2005-10-27 Migration of org.eclipse.emf.ocl plugins <= 2006-06 (1.0.0) (Classic) OCL for Ecore 2007-06 (1.1.0) (Classic) OCL for UML 2.1 Environment<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> 2008-06 (1.2.0) Validation implemented OCL Tools for OCL UI - never progressed
  • 17. 16-September-2019 OCL Keynote 17Made available under EPL 2.0 OCL tooling approach Claas Wilke, Michael Thiele, Christian Wende Extending Variability for OCL Interpretation, OCL 2010 User / 'OCL', metaclasses / instances Dresden OCL adapt User metaclasses to 'OCL' metaclasses adapt User instances to 'OCL' instances Eclipse Ecore / UML OCL re-tool OCL for Ecore / UML metaclasses re-tool OCL for Ecore / UML instances Eclipse Pivot OCL normalize User metaclasses as 'OCL' metaclasses (tens) accommodate Ecore / UML instances (thousands)
  • 18. 16-September-2019 OCL Keynote 18Made available under EPL 2.0 MDT OCL ... Eclipse OCL 2010-06 (3.0.0) EMF delegates Complete OCL / OCLinEcore / OCLstdlib Editors initially LPG2+IMP, then Xtext 2011-06 (3.1.0) Pivot OCL as 'examples' Impact Analyzer (deprecated) - Classic Ecore OCL 2012-06 (4.0.0) Java Code Generator 2014-06 (5.0.0) Debugger, Validity View 2015-06 (6.0.0) Pivot OCL not 'examples' 2018-06 (6.4.0) EMF EAnnotation validators builder + nature 2019-09 (6.9.0) Latest 3-monthly Eclipse release
  • 19. 16-September-2019 OCL Keynote 19Made available under EPL 2.0 Eclipse OCL - not implemented UML States - oclIsInState() parsed but otherwise ignored EMF objects do not have state, need UML objects UML Messages - ^, ^^, hasChanged(), hasSent() parsed but otherwise ignored needs history OCL Evaluation history - oclIsNew(), @pre, pre, post parsed but otherwise ignored major design compromise wrt memory / speed https://bugs.eclipse.org/538468 instrumenting EMF construction is costly pre could be a code generation option Use USE for history support
  • 20. 16-September-2019 OCL Keynote 20Made available under EPL 2.0 Solutions OCL 2.5 RFP identifies many problems Eclipse Pivot OCL free from legacy Ecore/UML OCL compatibility free to prototype solutions
  • 21. 16-September-2019 OCL Keynote 21Made available under EPL 2.0 Pivot OCL solutions 1 Models OMG OCL has a broken Abstract Syntax model Pivot OCL provides extensible (QVTr extends) Abstract Syntax model UML -> Ecore -> Java Well Formedness Rule model Complete OCL -> Ecore -> Java Concrete Syntax models Ecore -> Java Grammars Xtext -> Java Standard Library Model OCLstdlib -> Java Code Generator Model Ecore -> Java Pivot OCL substantially auto-generated from its models many use transformation from UML source
  • 22. 2-Oct-2016 OCL Status 22Made available under EPL 2.0 Specification-to-compiler Automation OCL specification is incomplete Xtext covers large parts of an implementation
  • 23. 16-September-2019 OCL Keynote 23Made available under EPL 2.0 Pivot OCL solutions 2 aValue.aFunction() Overloading / dynamic dispatch OMG OCL uses UML operations UML operations have implementation(OCL)-defined semantics Pivot OCL (and Classic OCL) provides Java-like overloading
  • 24. 16-September-2019 OCL Keynote 24Made available under EPL 2.0 Pivot OCL solutions 3 anObject.oclType().name Reflection OMG OCL excludes MOF reflection OMG OCL specification uses oclType() reflectively OMG OCL oclType() is query / powerset / open enumeration Pivot OCL oclType() returns a reflective OCL metaclass
  • 25. 16-September-2019 OCL Keynote 25Made available under EPL 2.0 Pivot OCL solutions 4 Complex{real=1.0,imag=0.0} Type construction OMG OCL has no type construction Pivot OCL has Shadow objects
  • 26. 16-September-2019 OCL Keynote 26Made available under EPL 2.0 Pivot OCL solutions 5 context Element def: isPersistent() : Boolean[1] = false Open Classes UML has Model, Package, Class, ... no additions => Closed Classes OMG OCL has magic Complete OCL additional features that behave as ordinary features => Open Classes Pivot OCL - CompleteModel, CompletePackage, CompleteClass each is an overlay of UML Model, Package, Class modelled, extensible, has URI
  • 27. 16-September-2019 OCL Keynote 27Made available under EPL 2.0 OCL Complete Model
  • 28. 16-September-2019 OCL Keynote 28Made available under EPL 2.0 Pivot OCL solutions 6 XMI OMG requires AS serialization - many problems Pivot OCL AS is serializable Complete classes for Complete OCL open classes Orphanage package for synthetic types Blindness to Primitive/Collection/Tuple type namespaces OCL standard library has a referenceable model
  • 29. 16-September-2019 OCL Keynote 29Made available under EPL 2.0 Pivot OCL solutions 7 Sequence(String) Templates UML has generic types / templates OMG OCL has e.g. Sequence(T) with magic T Pivot OCL has templated classes / operations UML's TemplateParameterSubstitution etc Sequence(T) - T is a template parameter
  • 30. 16-September-2019 OCL Keynote 30Made available under EPL 2.0 Pivot OCL solutions 8 aCollection->select(e | e.name.size() < 5) Lambdas OMG OCL Iterator body is obviously a lambda expression closure() specification uses text macro exposition an invocation-site-specific helper function synthesized by lexical substitution of Pivot OCL uses lambdas, types and variables
  • 31. 16-September-2019 OCL Keynote 31Made available under EPL 2.0 Pivot OCL solutions 9 Library Model OMG OCL is textual Pivot OCL has standard library model (and editor)
  • 32. 16-September-2019 OCL Keynote 32Made available under EPL 2.0 Pivot OCL solutions 10 anObject.name?.size() Null safety UML has optional multiplicity T[?] Pivot OCL support [?] / [1] multiplicities nullable/non-null Pivot OCL adds ?. and ?-> null safe navigation
  • 33. 16-September-2019 OCL Keynote 33Made available under EPL 2.0 Pivot OCL solutions 11 Map(K, V) see lightning talk
  • 34. 16-September-2019 OCL Keynote 34Made available under EPL 2.0 Pivot OCL solutions 12 Stereotypes UML has Stereotypes UML has a base_xxx, extension_xxx navigation indication OMG OCL ignores Stereotypes Classic OCL relies on Eclipse UML2 Java API Pivot OCL normalizes as regular classes / navigation Association Classes UML has Association Classes OMG OCL has hard to understand special semantics Pivot OCL normalizes as regular classes / navigation
  • 35. 16-September-2019 OCL Keynote 35Made available under EPL 2.0 Pivot OCL not yet solutions 1 Lazy collections lazy can dramatically improve partial evaluation lazy is an overhead for full evaluations Deterministic collections OCL 'should' be deterministic not that hard / inefficient Patterns solves oclIsKindOf/oclAsType redundancies ... if x.oclIsKindOf(Z) then x.oclAsType(Z).f() else null endif must use QVTr syntax grammar is challenging - operation/iteration
  • 36. 16-September-2019 OCL Keynote 36Made available under EPL 2.0 Pivot OCL not yet solutions 2 Modules auto-tooling can support pick and mix discard States, discard Messages, add Temporal blocked by modular grammar tooling Evaluation semantics auto-tooling would be nice awaits academic input
  • 37. 16-September-2019 OCL Keynote 37Made available under EPL 2.0 System Software Vision 1978-2012 Embedded System Engineer Digital Signal Processing - DSP disappointing tools - do better Vision - reliable systems system is composed of sub-systems need a solid composition semantics Waveform Description Language (WDL) need a solid leaf sub-system semantics CAL Action Language
  • 38. 16-September-2019 OCL Keynote 38Made available under EPL 2.0 System Engineering System and sub-systems Traditionally sub-systems (components) are re-used system has to accommodate sub-system eccentricities Sub-systems should satisfy the needs of the system sub-system should be tailored (auto-generated) System concerns scheduling, deployment, precision, .... each can be analyzed / auto-generated Auto-generation gcc should be a 100 transformation chain a PhD could research/rewrite just one
  • 39. 16-September-2019 OCL Keynote 39Made available under EPL 2.0 DSP-specific Tooling 1996-2001 PhD - DSP compiler optimizations meta-compilation for C++ 2001 Reflection - Two worlds DSP world (small community) interesting concurrency ideas Ptolemy@UCB poor tools - inverse CASE law Java world (large community) good tools ad hoc / poor concurrency
  • 40. 16-September-2019 OCL Keynote 40Made available under EPL 2.0 Early Transformation Activities CAL @ UCB - an XSLT transformation cascade Seriously unreadable => NiceXSL CAL - yet another small community language not significantly different to a wrapper around OCL
  • 41. 16-September-2019 OCL Keynote 41Made available under EPL 2.0 Eclipse GMT Activities 2004 Eclipse GMT (Jean Bézivin) UMLX 1 inspired by OOPSLA GME paper Outline NiceXSL transformation design UMLX 2 based on GEF No transformation to executble UMLX 3 based on GMF No transformation to executble
  • 42. 16-September-2019 OCL Keynote 42Made available under EPL 2.0 Early QVT / OCL activities UMLX '4' do execution first, graphics last UMLX and QVTr rather similar alternate graphical/text views Develop/exploit QVTr first UMLX's QVT editors contributed to QVTd OCL extensibility contributed to MDT OCL [2017 UMLX '5' using Sirius+QVTr+OCL+Java] 2008 Eclipse QVTd committer 2009 Eclipse OCL committer
  • 43. 16-September-2019 OCL Keynote 43Made available under EPL 2.0 E.D.Willink Roles/Activities 2 2009 Eclipse OCL project lead 2010 Eclipse QVTd project lead 2012 ----- 'retired' ----- 2012 Eclipse QVTo committer 2012 OMG OCL RTF chair 2013 OMG QVT RTF chair 2014 OCL 2.4 - minor tidy up/clarification 2014 OCL 2.5 RFP - bug list 2015 QVT 1.2 - minor tidy up/clarification 2016 QVT 1.3 - minor tidy up/major clarification
  • 44. 16-September-2019 OCL Keynote 44Made available under EPL 2.0 OCL State of the Art OCL developer base is probably declining no commercial tools - all failed / Open Source many tool failures - Dresden OCL most recently two 'ok' quality implementations OCL has less than ten developers OCL specification is poor OCL specification progress is pitiful OCL user base is perhaps steady many modeling papers use OCL little alternative - OCL is 'right'
  • 45. 16-September-2019 OCL Keynote 45Made available under EPL 2.0 Updated Reflection 2001 Reflection - Two worlds DSP world (small community) Java world (large community) 2019 Reflection - Two worlds OCL world (tiny community) Java world (huge community)
  • 46. 16-September-2019 OCL Keynote 46Made available under EPL 2.0 Java contrast Java etc keeps improving (similar good ideas) generics, lambdas, streams, ... Java has multiple high quality implementations some free Java has thousands of developers, OCL barely ten @Pure is not practical OCL cannot outdo Java on Java's ground find another playing field
  • 47. 16-September-2019 OCL Keynote 47Made available under EPL 2.0 Language Progress as Bye-Byes Assembler bye bye 1's and 0's C bye bye stack/condition code corruption bye bye self-modifying code Object Orientation nearly bye bye global variable corruption nearly bye bye distant variable corruption Java bye bye heap corruption OCL bye bye side effects bye bye memory corruption
  • 48. 16-September-2019 OCL Keynote 48Made available under EPL 2.0 Why OCL? OCL has just one Unique Selling Point left side effect free analyzeable, predictable, reliable, (fast) But OCL is useless side effect free prohibits mutation - no results needs embedding in a model provider OCLinEcore helps Model Transformation really helps
  • 49. 16-September-2019 OCL Keynote 49Made available under EPL 2.0 Incremental (bidirectional) Declarative Transformation Underlying OCL rigorous queries / analyzeable memory accesses Declarative Transformation limited / analyzeable mutations global dependency analysis reliable computation scheduling reliable selective / incremental re-computation Manual Java cannot sensibly do this => OCL / QVTr Killer Application
  • 50. 16-September-2019 OCL Keynote 50Made available under EPL 2.0 OCL for proofs Not my field - just my prejudice need to challenge a specification is it sensible is a behaviour guaranteed / impossible cf. Declarative Model Transformation metamodel type system very restrictive eliminates numerous scheduling alternatives potentially NP complete but O(1) or O(2) in practice Contradiction finders transform to existing non-metamodel tools really really slow for moderate problems ?? remain metamodel aware and exploit OCL ??
  • 51. 16-September-2019 OCL Keynote 51Made available under EPL 2.0 Summary OCL could have an important future drastic tool improvements needed quality ease-of-use / fun-to-use documentation / examples Fast QVTr incremental tooling is happening OCL-based proof tools needed pre/post/frame condition / history unification - USE ?? Questions ??