SlideShare a Scribd company logo
Made available under EPL 1.0
OCL Specification Status
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 2016 @ MODELS 2016
2nd October 2016
2-Oct-2016 OCL Status 2Made available under EPL 1.0
Overview
What we have
How we got here
Where we go now
2-Oct-2016 OCL Status 3Made available under EPL 1.0
Simple Black Box view of OCL
Specification exposition imperfect
Precise Concrete Syntax Grammar
More functionality
OCL
Concrete Syntax
Standard Library
Semantics
U
s
e
r
s
2-Oct-2016 OCL Status 4Made available under EPL 1.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
2-Oct-2016 OCL Status 5Made available under EPL 1.0
OCL History
OCL evolved from Syntropy
OCL 1.3 specified as part of UML 1.3
specifies the parts that need formal words
'OCL 2.0' split off from UML 2.0 (Sept 2003 FAS)
OCL useable in its own right
No resources available to complete specification
QVT 1.0 (Jul 2007 FAS) specified as an OCL extension
(May 2006) OCL 2.0 draft approved TBDs and all
OCL 2.1/2.2, 2.3, 2.4 provides limited improvements
2-Oct-2016 OCL Status 6Made available under EPL 1.0
OCL 2.2
84 resolved issues
and/or/xor have distinct precedence
oclAsType() returns a 'power set'
Collection conforms to OclAny
String::+()
2-Oct-2016 OCL Status 7Made available under EPL 1.0
OCL 2.3
27 resolved issues
oclAsType() returns a Classifier
arbitrary characters in Strings/names - _'n'
no case conversion for implicit opposites
forAll etc are not reserved words
eliminate 'undefined' - use 'null' / 'invalid'
3.5-valued Booleans
4-valued inputs - true, false, null, invalid
3-valued outputs - true, false, invalid
closure()
2-Oct-2016 OCL Status 8Made available under EPL 1.0
OCL 2.4
58 resolved issues
oclAsSet() longform of object->name
=,<> compare DataType by value/Class by identity
idempotent
4-valued Booleans
4-valued inputs - true, false, null, invalid
4-valued outputs - true, false, null, invalid
selectByKind, selectByType
2-Oct-2016 OCL Status 9Made available under EPL 1.0
OCL 2.5?
206 issues to resolve
easy typo issues done in 2.2, 2.4
systemic pre-UML 2.0 faults
2-Oct-2016 OCL Status 10Made available under EPL 1.0
OCL 2.3.1 / ISO/IEC 19507 (2012)
2-Oct-2016 OCL Status 11Made available under EPL 1.0
OCL Specification Progress
OCL 2.5 RFP (Feb 2014)
OMG requests, consortia respond with submission(s)
initial submission deadline Dec 2014 - extended
extended deadline Aug 2015 - lapsed
RFP blocks RTF usage of JIRA
OCL 2.5 RTF (chartered Sep 2015)
Issues maintained in JIRA
OCL xxx RFC
consortium submits, OMG adopts/iterates/rejects
2-Oct-2016 OCL Status 12Made available under EPL 1.0
OCL Specification Slow Progress
Mostly just EDW, 4 jobs
OCL @ OMG => fully modeled OCL '2.5'
OCL @ Eclipse => protototype of OCL '2.5'
ASBH working on CS2AS automation
QVT @ OMG => fully modeled QVT '2.0'
QVTd @ Eclipse => protototype of QVT '2.0'
HHR working on advanced optimizations
June 2016 goals: OCL 2.5, QVTr execution
September 2015: QVTc/QVTr scheduling failing
focus on Eclipse QVTc/QVTr: see EXE 2016 paper
2-Oct-2016 OCL Status 13Made available under EPL 1.0
OCL specification
OCL 2.0 ... 2.4
best / rushed human endeavours
numerous inconsistencies
OCL '2.5'
auto-generated from the models
no inconsistencies
2-Oct-2016 OCL Status 14Made available under EPL 1.0
Model-to-specification Automation
Currently error prone manual FrameMaker
autogenerate from models
MOFM2T (Acceleo) to FrameMaker MIF
Xtend to FrameMaker MIF
Xtend to Textile => Eclipse Help / HTML / PDF
Xtend to Latex => Next OMG specification
Latex in use for Isabelle academic exposition
replaces semi-formal Annex
2-Oct-2016 OCL Status 15Made available under EPL 1.0
Specification-to-compiler Automation
OCL specification is incomplete
Xtext covers large parts of an implementation
2-Oct-2016 OCL Status 16Made available under EPL 1.0
OCL 2.0 ... 2.4 Models
Model
Abstract Syntax (AS) - inaccurate / unuseable
Text
Language Grammar - fragmented
Concrete Syntax (CS) - implied
CS to AS - semi-formal text
Name lookup - semi-formal text
Disambiguation - informal hints
Standard Library - informal text
Execution semantics - informal text / annex
2-Oct-2016 OCL Status 17Made available under EPL 1.0
OCL '2.5' Models
Models
Abstract Syntax (AS) - OCL.uml + UML.uml
Language Grammar - OCL.xtext (AEBNF)
Concrete Syntax (CS) - OCLCS.uml
CS to AS - OCLCS2AS.ocl
Name lookup - OCLNameResolution.ocl
Disambiguation - OCLDisambiguation.ocl
Standard Library - OCLstdlib.oclstdlib
Text
Execution semantics - informal text / Isabelle
2-Oct-2016 OCL Status 18Made available under EPL 1.0
Grammar
Concrete
Syntax
Disambiguation
Rules
CS2AS
Rules
Name Lookup
Rules
Abstract
Syntax
WF
Rules
Modules, Merging
AEBNF
(Xtext)
UML 'OCL' 'OCL' 'OCL' UML OCL
DSL
UML core
QVT
Time
States
Messages
OCL core
2-Oct-2016 OCL Status 19Made available under EPL 1.0
Model-to-compiler Automation
Today:
QVTo from UML models to internal Ecore/Java
Xtext from 'AEBNF' grammars to internal Ecore/Java
Imminent:
OCL CS2AS + name lookup + disambiguation
Close: QVTr to Java
UML2AS,
2-Oct-2016 OCL Status 20Made available under EPL 1.0
Metamodels, Models
Metamodels: UML, Ecore, XSD, Java, ...
Enhance each with OCL support
Migrate to a normalized OCL metamodel
Relatively few metamodel objects
specify e.g. UML2AS normalization
Models: EObject, XMLElement, java Object, ...
Enhance each with OCL support
Migrate to a normalized OCL Object
Many model objects
specify effective execution
2-Oct-2016 OCL Status 21Made available under EPL 1.0
Model-to-executor Automation
Today:
Hand coded Java interpreter
Hand coded Java code generator
Isabelle semantics exposition
What abstraction defines execution?
constructive supports
autogenerated interpreter
autogenerated code generator
? reverse engineer manual code
2-Oct-2016 OCL Status 22Made available under EPL 1.0
New ?interesting ?fundable work
lambdas
patterns
comprehensions
semantics - Isabelle
constructive semantics - ?
2-Oct-2016 OCL Status 23Made available under EPL 1.0
Old necessary unfundable work
Open classes
Library model
XMI
UML alignment, templates, stereotypes
Grammar, Models
Sub-language/library modules
Specification consistency
2-Oct-2016 OCL Status 24Made available under EPL 1.0
Summary
Major deficiencies in OCL specification
'Re'-design being prototyped in Eclipse OCL
some parts good
some parts bad / too-Eclipse
extended by Eclipse QVTc / QVTr
EDW distracted by Eclipse QVTr pressures
Help wanted

More Related Content

Viewers also liked

Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
Edward Willink
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
Edward Willink
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
bharati k
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
RealTime-at-Work (RTaW)
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
Jordi Cabot
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
Erradi Mohamed
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
Salma ES-Salmani
 
mis
mismis
misISIG
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
RealTime-at-Work (RTaW)
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
Erradi Mohamed
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
Tom Mens
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
Edward Willink
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
Edward Willink
 

Viewers also liked (20)

Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
mis
mismis
mis
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 

Similar to OCL Specification Status

OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
Edward Willink
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
Edward Willink
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
Edward Willink
 
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
Edward Willink
 
Owl2 rl
Owl2 rlOwl2 rl
Owl2 rl
STIinnsbruck
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
Edward Willink
 
2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin
Giovanni Ciatto
 
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
National Information Standards Organization (NISO)
 
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
 
Owl 2.0 Overview
Owl 2.0 OverviewOwl 2.0 Overview
Owl 2.0 Overview
GUANGYUAN PIAO
 
ORC improvement in Apache Spark 2.3
ORC improvement in Apache Spark 2.3ORC improvement in Apache Spark 2.3
ORC improvement in Apache Spark 2.3
DataWorks Summit
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
Edward Willink
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
Pranab Dasgupta
 
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
OSTHUS
 
eureka09
eureka09eureka09
eureka09
tutorialsruby
 
eureka09
eureka09eureka09
eureka09
tutorialsruby
 
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
Frans Jongma
 
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Semantic Web Company
 
Pg big fast ugly acid
Pg big fast ugly acidPg big fast ugly acid
Pg big fast ugly acid
Federico Campoli
 
Vu Semantic Web Meeting 20091123
Vu Semantic Web Meeting 20091123Vu Semantic Web Meeting 20091123
Vu Semantic Web Meeting 20091123
Rinke Hoekstra
 

Similar to OCL Specification Status (20)

OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
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
 
Owl2 rl
Owl2 rlOwl2 rl
Owl2 rl
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
 
2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin
 
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
Norman and McCraken, "OpenURL Implementation: Link Resolution That Users Will...
 
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.
 
Owl 2.0 Overview
Owl 2.0 OverviewOwl 2.0 Overview
Owl 2.0 Overview
 
ORC improvement in Apache Spark 2.3
ORC improvement in Apache Spark 2.3ORC improvement in Apache Spark 2.3
ORC improvement in Apache Spark 2.3
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
 
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
Semantics for Integrated Analytical Laboratory Processes – the Allotrope Pers...
 
eureka09
eureka09eureka09
eureka09
 
eureka09
eureka09eureka09
eureka09
 
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
 
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
 
Pg big fast ugly acid
Pg big fast ugly acidPg big fast ugly acid
Pg big fast ugly acid
 
Vu Semantic Web Meeting 20091123
Vu Semantic Web Meeting 20091123Vu Semantic Web Meeting 20091123
Vu Semantic Web Meeting 20091123
 

More from Edward Willink

An OCL Map Type
An OCL Map TypeAn OCL Map Type
An OCL Map Type
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 M2T
Edward Willink
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
Edward Willink
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
Edward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
Edward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
Edward 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 results
Edward 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 Opposites
Edward Willink
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
Edward 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
 
OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)
Edward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
Edward Willink
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
Edward Willink
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
Edward Willink
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
Edward Willink
 

More from Edward Willink (16)

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
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
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)
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
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
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

OCL Specification Status

  • 1. Made available under EPL 1.0 OCL Specification Status 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 2016 @ MODELS 2016 2nd October 2016
  • 2. 2-Oct-2016 OCL Status 2Made available under EPL 1.0 Overview What we have How we got here Where we go now
  • 3. 2-Oct-2016 OCL Status 3Made available under EPL 1.0 Simple Black Box view of OCL Specification exposition imperfect Precise Concrete Syntax Grammar More functionality OCL Concrete Syntax Standard Library Semantics U s e r s
  • 4. 2-Oct-2016 OCL Status 4Made available under EPL 1.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. 2-Oct-2016 OCL Status 5Made available under EPL 1.0 OCL History OCL evolved from Syntropy OCL 1.3 specified as part of UML 1.3 specifies the parts that need formal words 'OCL 2.0' split off from UML 2.0 (Sept 2003 FAS) OCL useable in its own right No resources available to complete specification QVT 1.0 (Jul 2007 FAS) specified as an OCL extension (May 2006) OCL 2.0 draft approved TBDs and all OCL 2.1/2.2, 2.3, 2.4 provides limited improvements
  • 6. 2-Oct-2016 OCL Status 6Made available under EPL 1.0 OCL 2.2 84 resolved issues and/or/xor have distinct precedence oclAsType() returns a 'power set' Collection conforms to OclAny String::+()
  • 7. 2-Oct-2016 OCL Status 7Made available under EPL 1.0 OCL 2.3 27 resolved issues oclAsType() returns a Classifier arbitrary characters in Strings/names - _'n' no case conversion for implicit opposites forAll etc are not reserved words eliminate 'undefined' - use 'null' / 'invalid' 3.5-valued Booleans 4-valued inputs - true, false, null, invalid 3-valued outputs - true, false, invalid closure()
  • 8. 2-Oct-2016 OCL Status 8Made available under EPL 1.0 OCL 2.4 58 resolved issues oclAsSet() longform of object->name =,<> compare DataType by value/Class by identity idempotent 4-valued Booleans 4-valued inputs - true, false, null, invalid 4-valued outputs - true, false, null, invalid selectByKind, selectByType
  • 9. 2-Oct-2016 OCL Status 9Made available under EPL 1.0 OCL 2.5? 206 issues to resolve easy typo issues done in 2.2, 2.4 systemic pre-UML 2.0 faults
  • 10. 2-Oct-2016 OCL Status 10Made available under EPL 1.0 OCL 2.3.1 / ISO/IEC 19507 (2012)
  • 11. 2-Oct-2016 OCL Status 11Made available under EPL 1.0 OCL Specification Progress OCL 2.5 RFP (Feb 2014) OMG requests, consortia respond with submission(s) initial submission deadline Dec 2014 - extended extended deadline Aug 2015 - lapsed RFP blocks RTF usage of JIRA OCL 2.5 RTF (chartered Sep 2015) Issues maintained in JIRA OCL xxx RFC consortium submits, OMG adopts/iterates/rejects
  • 12. 2-Oct-2016 OCL Status 12Made available under EPL 1.0 OCL Specification Slow Progress Mostly just EDW, 4 jobs OCL @ OMG => fully modeled OCL '2.5' OCL @ Eclipse => protototype of OCL '2.5' ASBH working on CS2AS automation QVT @ OMG => fully modeled QVT '2.0' QVTd @ Eclipse => protototype of QVT '2.0' HHR working on advanced optimizations June 2016 goals: OCL 2.5, QVTr execution September 2015: QVTc/QVTr scheduling failing focus on Eclipse QVTc/QVTr: see EXE 2016 paper
  • 13. 2-Oct-2016 OCL Status 13Made available under EPL 1.0 OCL specification OCL 2.0 ... 2.4 best / rushed human endeavours numerous inconsistencies OCL '2.5' auto-generated from the models no inconsistencies
  • 14. 2-Oct-2016 OCL Status 14Made available under EPL 1.0 Model-to-specification Automation Currently error prone manual FrameMaker autogenerate from models MOFM2T (Acceleo) to FrameMaker MIF Xtend to FrameMaker MIF Xtend to Textile => Eclipse Help / HTML / PDF Xtend to Latex => Next OMG specification Latex in use for Isabelle academic exposition replaces semi-formal Annex
  • 15. 2-Oct-2016 OCL Status 15Made available under EPL 1.0 Specification-to-compiler Automation OCL specification is incomplete Xtext covers large parts of an implementation
  • 16. 2-Oct-2016 OCL Status 16Made available under EPL 1.0 OCL 2.0 ... 2.4 Models Model Abstract Syntax (AS) - inaccurate / unuseable Text Language Grammar - fragmented Concrete Syntax (CS) - implied CS to AS - semi-formal text Name lookup - semi-formal text Disambiguation - informal hints Standard Library - informal text Execution semantics - informal text / annex
  • 17. 2-Oct-2016 OCL Status 17Made available under EPL 1.0 OCL '2.5' Models Models Abstract Syntax (AS) - OCL.uml + UML.uml Language Grammar - OCL.xtext (AEBNF) Concrete Syntax (CS) - OCLCS.uml CS to AS - OCLCS2AS.ocl Name lookup - OCLNameResolution.ocl Disambiguation - OCLDisambiguation.ocl Standard Library - OCLstdlib.oclstdlib Text Execution semantics - informal text / Isabelle
  • 18. 2-Oct-2016 OCL Status 18Made available under EPL 1.0 Grammar Concrete Syntax Disambiguation Rules CS2AS Rules Name Lookup Rules Abstract Syntax WF Rules Modules, Merging AEBNF (Xtext) UML 'OCL' 'OCL' 'OCL' UML OCL DSL UML core QVT Time States Messages OCL core
  • 19. 2-Oct-2016 OCL Status 19Made available under EPL 1.0 Model-to-compiler Automation Today: QVTo from UML models to internal Ecore/Java Xtext from 'AEBNF' grammars to internal Ecore/Java Imminent: OCL CS2AS + name lookup + disambiguation Close: QVTr to Java UML2AS,
  • 20. 2-Oct-2016 OCL Status 20Made available under EPL 1.0 Metamodels, Models Metamodels: UML, Ecore, XSD, Java, ... Enhance each with OCL support Migrate to a normalized OCL metamodel Relatively few metamodel objects specify e.g. UML2AS normalization Models: EObject, XMLElement, java Object, ... Enhance each with OCL support Migrate to a normalized OCL Object Many model objects specify effective execution
  • 21. 2-Oct-2016 OCL Status 21Made available under EPL 1.0 Model-to-executor Automation Today: Hand coded Java interpreter Hand coded Java code generator Isabelle semantics exposition What abstraction defines execution? constructive supports autogenerated interpreter autogenerated code generator ? reverse engineer manual code
  • 22. 2-Oct-2016 OCL Status 22Made available under EPL 1.0 New ?interesting ?fundable work lambdas patterns comprehensions semantics - Isabelle constructive semantics - ?
  • 23. 2-Oct-2016 OCL Status 23Made available under EPL 1.0 Old necessary unfundable work Open classes Library model XMI UML alignment, templates, stereotypes Grammar, Models Sub-language/library modules Specification consistency
  • 24. 2-Oct-2016 OCL Status 24Made available under EPL 1.0 Summary Major deficiencies in OCL specification 'Re'-design being prototyped in Eclipse OCL some parts good some parts bad / too-Eclipse extended by Eclipse QVTc / QVTr EDW distracted by Eclipse QVTr pressures Help wanted