SlideShare a Scribd company logo
Made available under EPL 1.0
The OCLforUML Profile
Papyrus Summit, Ludwigsburg
3rd November 2015
Edward Willink
(Eclipse MMT co-lead)
Eclipse OCL lead
Eclipse QVTd lead
Eclipse QVTo committer
OMG OCL 2.5 RTF chair
OMG QVT 1.3 RTF chair
3-Nov-2015 OCLforUML Profile 2Made available under EPL 1.0
Overview
UML - quite useful
analysis / structure / behavior
OCL - specifies the hard bits
behavior / function / execution
OCL + UML - some gaps
=> OCLforUML Profile
potentially part of the next OCL specification
3-Nov-2015 OCLforUML Profile 3Made available under EPL 1.0
UML Specification
Specification of everything relevant
Numeric accuracy is very relevant
nearest $1 inadequate for retail banking
nearest $0.000000001 dollar probably excessive
$32767 maximum amount inadequate
what happens to $32769 ? -$32767 !
3-Nov-2015 OCLforUML Profile 4Made available under EPL 1.0
Number specification approaches
Comments
totally informal
Constraints
inv: (0 <= self) and (self <= 255)
requires Constraint reverse engineering
3-Nov-2015 OCLforUML Profile 5Made available under EPL 1.0
Number Specifications
pre UML 2.4 - just Integer (or UnlimitedNatural)
UML 2.4 - Integer or Real (or UnlimitedNatural)
no finer grain control
e.g. 8 bits ??
also DataType behavior
why no default MyInteger operations?
ExecutableUML (Mellor & Balcer 2002)
type Currency is real range [0..100000] precision 0.01
3-Nov-2015 OCLforUML Profile 6Made available under EPL 1.0
Fixing UML
UML has totally failed to support numbers
OCL needs numbers
OCL can fix UML with a Profile
the OCLforUML profile
3-Nov-2015 OCLforUML Profile 7Made available under EPL 1.0
Minimal Numerics for OCL
Principle: User DataType can be
non-numeric
Integer-like
Real-like
Practice: Ecore DataTypes
EInt / EIntegerObject etc etc
SysML, ... Primitive Types
3-Nov-2015 OCLforUML Profile 8Made available under EPL 1.0
Numeric Stereotypes
3-Nov-2015 OCLforUML Profile 9Made available under EPL 1.0
Integer, Real stereotypes
<<Integer>> stereotype: DataType is Integer
<<Real>> stereotype: DataType is Real
OCL Integer/Real operations may be used
interchange uses string serialization
3-Nov-2015 OCLforUML Profile 10Made available under EPL 1.0
Basic Integer specification
12 bit unsigned integer
3-Nov-2015 OCLforUML Profile 11Made available under EPL 1.0
Basic Real specification
1% accuracy up to +/-10
3-Nov-2015 OCLforUML Profile 12Made available under EPL 1.0
BoundedInteger specification
8 bit signed integer with no overflows
3-Nov-2015 OCLforUML Profile 13Made available under EPL 1.0
FixedPoint Real specification
16 bit number with 8 bit fractional precision
3-Nov-2015 OCLforUML Profile 14Made available under EPL 1.0
FloatingPoint Real specification
16 bit number with 8 bit exponent
3-Nov-2015 OCLforUML Profile 15Made available under EPL 1.0
Validation
UML - mostly class / state / activity diagrams
no real objects, just their classes
But also object diagrams
'real' objects
test environment for constraints
3-Nov-2015 OCLforUML Profile 16Made available under EPL 1.0
Validation dilemma
Object diagram of a stable state
constraints should be satisfied
Objects diagram illustrating a transient state
constraints may not apply
pre-Luna - no object diagram validation
Luna - object diagrams must be valid
Mars - configurable (default no validation)
3-Nov-2015 OCLforUML Profile 17Made available under EPL 1.0
Validation configuration
No UML ability to configure validation
OCLforUML Profile provides stereotypes
Validation::validate
configures an individual InstanceSpecification
Validations::validateInstanceSpecifications
configures default for all InstanceSpecifications in a Package
3-Nov-2015 OCLforUML Profile 18Made available under EPL 1.0
Null
Source of numerous program failures
null has many but not all behaviors of an object
Navigating from null fails
NPE in Java
invalid in OCL
self.parent.name.toUpper()
two / three hazards
3-Nov-2015 OCLforUML Profile 19Made available under EPL 1.0
Null mitigation
C++ references - int&
works
Java annotations - @NonNull,@Nullable
works locally, fails globally (no system annotations)
Groovy, Python, Xbase - safe navigation - x?.y
moves the problem sideways
3-Nov-2015 OCLforUML Profile 20Made available under EPL 1.0
Eclipse OCL for Mars
prototyping OCL 2.5/...
add safe navigation x?.y x?->y
yet another two operators - no added value
almost everything can-be null
need non-null object declarations
already defined by UML MultiplicityElement::lower
x : X[?] -- is nullable
x : X[1] -- is non-null
3-Nov-2015 OCLforUML Profile 21Made available under EPL 1.0
Null-free Collections
In OCL
collection can contain null elements
iterators may be null
OCL's collection operations are all hazardous
In practice
very few collections contain null elements
need null-free collections
textual syntax extension
type[collection-multiplicity | element-multiplicity]
e.g. Set(String)[2..4|1] -- Set of two to four non-null Strings
3-Nov-2015 OCLforUML Profile 22Made available under EPL 1.0
Null-free configuration
No UML ability support for null-free
OCLforUML Profile provides stereotypes
Collection::isNullFree
configures an individual MultiplicityElement
Collections::isNullFree
configures default for all MultiplicityElements in a Class/Package
3-Nov-2015 OCLforUML Profile 23Made available under EPL 1.0
Post-OCL 2015 workshop
In UML, no null elements in multi-values
declaring null-free/null-full is redundant
OCL could move to null-free by default
just declare the rare null-full cases
matches universal practice
But null-full Collections are needed
e.g. Map.values()
UML / OCL conflict needs resolution
3-Nov-2015 OCLforUML Profile 24Made available under EPL 1.0
Oops - not supported by Papyrus
Open with UML Model Editor
select Model/Package then
UML Model Editor->Package->Apply Profile
3-Nov-2015 OCLforUML Profile 25Made available under EPL 1.0
Summary
UML deficient wrt OCL tooling
Remedied by the OCLforUML profile
DataType behavior / numeric precision
Validation enable / disable
Collections null-free / null-full

More Related Content

What's hot

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
 
Java 8 new features
Java 8 new featuresJava 8 new features
Java 8 new features
Aniket Thakur
 
JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014
Noopur Gupta
 
Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013
Noopur Gupta
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLang
Antonio García-Domínguez
 
What every Eclipse developer should know about EMF - Tutorial at EclipseCon
What every Eclipse developer should know about EMF - Tutorial at EclipseConWhat every Eclipse developer should know about EMF - Tutorial at EclipseCon
What every Eclipse developer should know about EMF - Tutorial at EclipseConJonasHelming
 
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
melbats
 
Pure functions and usage in Angular
Pure functions and usage in AngularPure functions and usage in Angular
Pure functions and usage in Angular
MA Jiangfan
 
Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014
Noopur Gupta
 
Swift, a quick overview
Swift, a quick overviewSwift, a quick overview
Swift, a quick overview
Julian Król
 
The Joy Of Functional Programming
The Joy Of Functional ProgrammingThe Joy Of Functional Programming
The Joy Of Functional Programming
jasondew
 
Java 8 - An Overview
Java 8 - An OverviewJava 8 - An Overview
Java 8 - An Overview
Indrajit Das
 
Chapter 11 Function
Chapter 11 FunctionChapter 11 Function
Chapter 11 FunctionDeepak Singh
 
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
Haim Michael
 
Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
Scilab
 
Introduction to c first week slides
Introduction to c first week slidesIntroduction to c first week slides
Introduction to c first week slides
luqman bawany
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1Todor Kolev
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1Todor Kolev
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1Todor Kolev
 

What's hot (20)

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?
 
Java 8 new features
Java 8 new featuresJava 8 new features
Java 8 new features
 
JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014
 
Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLang
 
What every Eclipse developer should know about EMF - Tutorial at EclipseCon
What every Eclipse developer should know about EMF - Tutorial at EclipseConWhat every Eclipse developer should know about EMF - Tutorial at EclipseCon
What every Eclipse developer should know about EMF - Tutorial at EclipseCon
 
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!
 
Pure functions and usage in Angular
Pure functions and usage in AngularPure functions and usage in Angular
Pure functions and usage in Angular
 
Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014Eclipse Tips & Tricks - EclipseCon North America 2014
Eclipse Tips & Tricks - EclipseCon North America 2014
 
Swift, a quick overview
Swift, a quick overviewSwift, a quick overview
Swift, a quick overview
 
The Joy Of Functional Programming
The Joy Of Functional ProgrammingThe Joy Of Functional Programming
The Joy Of Functional Programming
 
Java 8 - An Overview
Java 8 - An OverviewJava 8 - An Overview
Java 8 - An Overview
 
Chapter 11 Function
Chapter 11 FunctionChapter 11 Function
Chapter 11 Function
 
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
 
Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
 
Introduction to c first week slides
Introduction to c first week slidesIntroduction to c first week slides
Introduction to c first week slides
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1
 
Java findamentals1
Java findamentals1Java findamentals1
Java findamentals1
 

Viewers also liked

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
 
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
 
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)
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
Edward Willink
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
Edward Willink
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
Edward Willink
 
What fUML can bring to MBSE?
What fUML can bring to MBSE?What fUML can bring to MBSE?
What fUML can bring to MBSE?
RealTime-at-Work (RTaW)
 
OCCIware
OCCIwareOCCIware
OCCIware
OCCIware
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
OCCIware
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
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
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
Etienne Juliot
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
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
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
Salma ES-Salmani
 
mis
mismis
misISIG
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
bharati k
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
Erradi Mohamed
 
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)

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
 
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
 
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
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
What fUML can bring to MBSE?
What fUML can bring to MBSE?What fUML can bring to MBSE?
What fUML can bring to MBSE?
 
OCCIware
OCCIwareOCCIware
OCCIware
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
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...
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
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...
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
mis
mismis
mis
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 

Similar to The OCLforUML Profile

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
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
Edward Willink
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
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
 
Enriching your models with OCL
Enriching your models with OCLEnriching your models with OCL
Enriching your models with OCLUniversity of York
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
Edward Willink
 
O caml2014 leroy-slides
O caml2014 leroy-slidesO caml2014 leroy-slides
O caml2014 leroy-slides
OCaml
 
Review of c_sharp2_features_part_iii
Review of c_sharp2_features_part_iiiReview of c_sharp2_features_part_iii
Review of c_sharp2_features_part_iii
Nico Ludwig
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
Edward Willink
 
Java one 2011 monitoring a large-scale infrastructure with clojure
Java one 2011   monitoring a large-scale infrastructure with clojureJava one 2011   monitoring a large-scale infrastructure with clojure
Java one 2011 monitoring a large-scale infrastructure with clojureDennis Rowe
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
Pranab Dasgupta
 
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
ankit482504
 
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
 
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
 
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISEBehavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
IOSR Journals
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
Edward Willink
 
ANTLR Conference - OpenSpotLight driven by ANTLR
ANTLR Conference - OpenSpotLight driven by ANTLRANTLR Conference - OpenSpotLight driven by ANTLR
ANTLR Conference - OpenSpotLight driven by ANTLRAlexandre Porcelli
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗Macpaul Lin
 
Ocl
OclOcl

Similar to The OCLforUML Profile (20)

OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
OCL in EMF
OCL in EMFOCL in EMF
OCL in EMF
 
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
 
Enriching your models with OCL
Enriching your models with OCLEnriching your models with OCL
Enriching your models with OCL
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
 
O caml2014 leroy-slides
O caml2014 leroy-slidesO caml2014 leroy-slides
O caml2014 leroy-slides
 
Review of c_sharp2_features_part_iii
Review of c_sharp2_features_part_iiiReview of c_sharp2_features_part_iii
Review of c_sharp2_features_part_iii
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
Java one 2011 monitoring a large-scale infrastructure with clojure
Java one 2011   monitoring a large-scale infrastructure with clojureJava one 2011   monitoring a large-scale infrastructure with clojure
Java one 2011 monitoring a large-scale infrastructure with clojure
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
 
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdf
 
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
 
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
 
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISEBehavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISE
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
ANTLR Conference - OpenSpotLight driven by ANTLR
ANTLR Conference - OpenSpotLight driven by ANTLRANTLR Conference - OpenSpotLight driven by ANTLR
ANTLR Conference - OpenSpotLight driven by ANTLR
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
 
Ocl
OclOcl
Ocl
 

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
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
Edward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
Edward Willink
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
Edward Willink
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
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 (8)

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
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
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

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 

The OCLforUML Profile

  • 1. Made available under EPL 1.0 The OCLforUML Profile Papyrus Summit, Ludwigsburg 3rd November 2015 Edward Willink (Eclipse MMT co-lead) Eclipse OCL lead Eclipse QVTd lead Eclipse QVTo committer OMG OCL 2.5 RTF chair OMG QVT 1.3 RTF chair
  • 2. 3-Nov-2015 OCLforUML Profile 2Made available under EPL 1.0 Overview UML - quite useful analysis / structure / behavior OCL - specifies the hard bits behavior / function / execution OCL + UML - some gaps => OCLforUML Profile potentially part of the next OCL specification
  • 3. 3-Nov-2015 OCLforUML Profile 3Made available under EPL 1.0 UML Specification Specification of everything relevant Numeric accuracy is very relevant nearest $1 inadequate for retail banking nearest $0.000000001 dollar probably excessive $32767 maximum amount inadequate what happens to $32769 ? -$32767 !
  • 4. 3-Nov-2015 OCLforUML Profile 4Made available under EPL 1.0 Number specification approaches Comments totally informal Constraints inv: (0 <= self) and (self <= 255) requires Constraint reverse engineering
  • 5. 3-Nov-2015 OCLforUML Profile 5Made available under EPL 1.0 Number Specifications pre UML 2.4 - just Integer (or UnlimitedNatural) UML 2.4 - Integer or Real (or UnlimitedNatural) no finer grain control e.g. 8 bits ?? also DataType behavior why no default MyInteger operations? ExecutableUML (Mellor & Balcer 2002) type Currency is real range [0..100000] precision 0.01
  • 6. 3-Nov-2015 OCLforUML Profile 6Made available under EPL 1.0 Fixing UML UML has totally failed to support numbers OCL needs numbers OCL can fix UML with a Profile the OCLforUML profile
  • 7. 3-Nov-2015 OCLforUML Profile 7Made available under EPL 1.0 Minimal Numerics for OCL Principle: User DataType can be non-numeric Integer-like Real-like Practice: Ecore DataTypes EInt / EIntegerObject etc etc SysML, ... Primitive Types
  • 8. 3-Nov-2015 OCLforUML Profile 8Made available under EPL 1.0 Numeric Stereotypes
  • 9. 3-Nov-2015 OCLforUML Profile 9Made available under EPL 1.0 Integer, Real stereotypes <<Integer>> stereotype: DataType is Integer <<Real>> stereotype: DataType is Real OCL Integer/Real operations may be used interchange uses string serialization
  • 10. 3-Nov-2015 OCLforUML Profile 10Made available under EPL 1.0 Basic Integer specification 12 bit unsigned integer
  • 11. 3-Nov-2015 OCLforUML Profile 11Made available under EPL 1.0 Basic Real specification 1% accuracy up to +/-10
  • 12. 3-Nov-2015 OCLforUML Profile 12Made available under EPL 1.0 BoundedInteger specification 8 bit signed integer with no overflows
  • 13. 3-Nov-2015 OCLforUML Profile 13Made available under EPL 1.0 FixedPoint Real specification 16 bit number with 8 bit fractional precision
  • 14. 3-Nov-2015 OCLforUML Profile 14Made available under EPL 1.0 FloatingPoint Real specification 16 bit number with 8 bit exponent
  • 15. 3-Nov-2015 OCLforUML Profile 15Made available under EPL 1.0 Validation UML - mostly class / state / activity diagrams no real objects, just their classes But also object diagrams 'real' objects test environment for constraints
  • 16. 3-Nov-2015 OCLforUML Profile 16Made available under EPL 1.0 Validation dilemma Object diagram of a stable state constraints should be satisfied Objects diagram illustrating a transient state constraints may not apply pre-Luna - no object diagram validation Luna - object diagrams must be valid Mars - configurable (default no validation)
  • 17. 3-Nov-2015 OCLforUML Profile 17Made available under EPL 1.0 Validation configuration No UML ability to configure validation OCLforUML Profile provides stereotypes Validation::validate configures an individual InstanceSpecification Validations::validateInstanceSpecifications configures default for all InstanceSpecifications in a Package
  • 18. 3-Nov-2015 OCLforUML Profile 18Made available under EPL 1.0 Null Source of numerous program failures null has many but not all behaviors of an object Navigating from null fails NPE in Java invalid in OCL self.parent.name.toUpper() two / three hazards
  • 19. 3-Nov-2015 OCLforUML Profile 19Made available under EPL 1.0 Null mitigation C++ references - int& works Java annotations - @NonNull,@Nullable works locally, fails globally (no system annotations) Groovy, Python, Xbase - safe navigation - x?.y moves the problem sideways
  • 20. 3-Nov-2015 OCLforUML Profile 20Made available under EPL 1.0 Eclipse OCL for Mars prototyping OCL 2.5/... add safe navigation x?.y x?->y yet another two operators - no added value almost everything can-be null need non-null object declarations already defined by UML MultiplicityElement::lower x : X[?] -- is nullable x : X[1] -- is non-null
  • 21. 3-Nov-2015 OCLforUML Profile 21Made available under EPL 1.0 Null-free Collections In OCL collection can contain null elements iterators may be null OCL's collection operations are all hazardous In practice very few collections contain null elements need null-free collections textual syntax extension type[collection-multiplicity | element-multiplicity] e.g. Set(String)[2..4|1] -- Set of two to four non-null Strings
  • 22. 3-Nov-2015 OCLforUML Profile 22Made available under EPL 1.0 Null-free configuration No UML ability support for null-free OCLforUML Profile provides stereotypes Collection::isNullFree configures an individual MultiplicityElement Collections::isNullFree configures default for all MultiplicityElements in a Class/Package
  • 23. 3-Nov-2015 OCLforUML Profile 23Made available under EPL 1.0 Post-OCL 2015 workshop In UML, no null elements in multi-values declaring null-free/null-full is redundant OCL could move to null-free by default just declare the rare null-full cases matches universal practice But null-full Collections are needed e.g. Map.values() UML / OCL conflict needs resolution
  • 24. 3-Nov-2015 OCLforUML Profile 24Made available under EPL 1.0 Oops - not supported by Papyrus Open with UML Model Editor select Model/Package then UML Model Editor->Package->Apply Profile
  • 25. 3-Nov-2015 OCLforUML Profile 25Made available under EPL 1.0 Summary UML deficient wrt OCL tooling Remedied by the OCLforUML profile DataType behavior / numeric precision Validation enable / disable Collections null-free / null-full