SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Made available under EPL 2.0
OCL Visualization
A Reality Check
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 Visualization - A Reality Check 2Made available under EPL 2.0
Overview
Background
Traditional AST visualization
vOCL 2018 problems
Fixed vOCL
Eclipse QVTs visualization
Constraint Diagram
Visual OCL
Summary / Conclusion
16-September-2019 OCL Visualization - A Reality Check 3Made available under EPL 2.0
Background
Text can be good
Pictures can be good
Text can be better
Pictures can be better
Text dominant for expressions (except SDL)
UML graphical – why no graphical OCL ?
OCL 2018 => vOCL paper worth discussion
reviewer's / audience criticisms not rebutted
16-September-2019 OCL Visualization - A Reality Check 4Made available under EPL 2.0
Running Example
Example constraint
context Hospital
inv uniquePatientId:
self.patients->forAll(p1, p2 |
p1 <> p2 implies p1.id <> p2.id)
Equivalent to
context Hospital
inv uniquePatientId:
self.patients->isUnique(id)
16-September-2019 OCL Visualization - A Reality Check 5Made available under EPL 2.0
Traditional AST
Visualization
UML-like
solid containment
dashed references
18 nodes, 22 edges
16-September-2019 OCL Visualization - A Reality Check 6Made available under EPL 2.0
vOCL
Traditional AST is instance-based
instances of OCL metamodel
requires knowledge of OCL internals
references by name to user metamodel
vOCL is class-based
re-uses user metamodel to define variables
mnemonic icons for common OCL operations
vOCL constraint is a doodle on the class diagram
new doodling semantics
16-September-2019 OCL Visualization - A Reality Check 7Made available under EPL 2.0
vOCL example from 2018 paper
blob is the self instance of the not-grayed class
ellipses use Class-typed reference properties
rounded rectangles use DataType properties
additional icons for OCL operations
arrows denote 'reading order'
vague semantics
16-September-2019 OCL Visualization - A Reality Check 8Made available under EPL 2.0
AST visualization
of vOCL example
green reading order
markup
blob - self - ok
....patients - ok
....size() - ok
....<= - lhs ok
<= ... - rhs inverted
pragmatic
self.beds backwards
16-September-2019 OCL Visualization - A Reality Check 9Made available under EPL 2.0
Fixed vOCL example
Multiple paths for multiple instances/evaluations
Blob now starts two paths
black path as in original paper to read the LHS
self.patients.size() <=
new green path to read the RHS
self.beds >=
both paths read towards the binary <= operation
16-September-2019 OCL Visualization - A Reality Check 10Made available under EPL 2.0
AST visualization
of fixed vOCL example
two blobs
two bottom-up paths
'reading order' is
now AST evaluation
blob defines 'self' value
edge passes value
node computes value
16-September-2019 OCL Visualization - A Reality Check 11Made available under EPL 2.0
Running example using Fixed vOCL
Blobs identify three variables starting five paths
self.patients
self.patients.id <> implies
self.patients.id <> implies
self.patients <> implies
self.patients <> implies
Nested rounded rectangles for multiple uses
9 nodes + 12 edges (AST: 18 nodes, 22 edges)
16-September-2019 OCL Visualization - A Reality Check 12Made available under EPL 2.0
Eclipse QVTs OCL visualization
AST visualization
Object Diagram: instances of OCL metamodel
vOCL
Class Diagram: doodle on user metamodel
Eclipse QVTs patterns
Object Diagram: instances of user metamodel
auto-generated debug aid for matching schedule
example embedded in QVTr
16-September-2019 OCL Visualization - A Reality Check 13Made available under EPL 2.0
Running Example using Eclipse QVTs
Rectangles
=> class instances
Rounded rectangles
=> DataType values
Ellipses
=> OCL operations
edges have <<roles>>
Solid edges
=> unit value matching
Dashed edges
=> [0..*] values matching
11 nodes and 15 edges
16-September-2019 OCL Visualization - A Reality Check 14Made available under EPL 2.0
Constraint Diagrams
Stuart Kent, OOPSLA 1997
Constraint Diagrams: Visualizing Invariants in Object-Oriented Models.
Visual Set membership
blobs for members
shapes for types
blobs within shapes for membership
edges for relationships
... Venn Diagrams
Not OCL
related concepts ... better perspective
16-September-2019 OCL Visualization - A Reality Check 15Made available under EPL 2.0
Running example - Constraint Diagram
Ellipses - user metamodel types
Blobs - distinct instances typed by background
Edges - metamodel relationships
Powerful set concepts align well to OCL
some OCL concepts hard to represent
8 nodes, 4 edges
16-September-2019 OCL Visualization - A Reality Check 16Made available under EPL 2.0
Visual OCL
Christiane Kiesner, Gabriele Taentzer, Jessica
Winkelmann TU Berlin Technical Report 2002/23
Visual OCL: A Visualization of the Object Constraint Language
A new 'UML' diagram
re-uses statechart idioms
hierachy of decorated compartments
16-September-2019 OCL Visualization - A Reality Check 17Made available under EPL 2.0
Running Example - Visual OCL
? Draw as:
12 nodes /
compartments
3 edges
10 text tokens
16-September-2019 OCL Visualization - A Reality Check 18Made available under EPL 2.0
Summary / Comparison
Naive AST - verbose, uses OCL metamodel
vOCL - user-friendly, may become cluttered
QVTs - patterns, variables avoid clutter
Constraint Diagram - can be very good
beware: running example hits a 'sweet spot'
Visual OCL - adequate
16-September-2019 OCL Visualization - A Reality Check 19Made available under EPL 2.0
Summary / Reality
Text can be better, Pictures can be better
Text dominant for expressions
Complex expressions need the 'best' exposition
patterns
Text tooling unavoidable - ASCII compatibility
Visual tooling specialized - UMLDI is a 'future'
AST / QVTs visualization - a helpful debug aid
Other Visual OCL editors unlikely to happen
16-September-2019 OCL Visualization - A Reality Check 20Made available under EPL 2.0
Future Work ?
Eclipse QVTs - adequate, complete
node => metamodel instance / operation
edge => metamodel relationship / operation role
Constraint Diagram - compact, partial
node => metamodel instance
edge => metamodel relationship
background => set membership / typing
?? Merge the two ??
?? Questions ??

Mais conteúdo relacionado

Semelhante a OCL Visualization A Reality Check

OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of ComputationEdward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsEdward 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
 
Scilab On Cloud : OSI Days Presentation
Scilab On Cloud : OSI Days PresentationScilab On Cloud : OSI Days Presentation
Scilab On Cloud : OSI Days PresentationSaket Choudhary
 
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
 
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
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCLEdward 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 XtextEdward Willink
 
Enriching your models with OCL
Enriching your models with OCLEnriching your models with OCL
Enriching your models with OCLUniversity of York
 
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
 

Semelhante a OCL Visualization A Reality Check (16)

OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
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
 
Scilab On Cloud : OSI Days Presentation
Scilab On Cloud : OSI Days PresentationScilab On Cloud : OSI Days Presentation
Scilab On Cloud : OSI Days Presentation
 
NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)NL to OCL Transformation (EDOC 2010)
NL to OCL Transformation (EDOC 2010)
 
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...
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCL
 
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
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
BYO3D 2011: Interlacing
BYO3D 2011: InterlacingBYO3D 2011: Interlacing
BYO3D 2011: Interlacing
 
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
 

Mais 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
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward 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 Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward 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
 

Mais de Edward Willink (14)

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 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)
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
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
 

Último

APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityamy56318795
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024Shane Coughlan
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionMohammed Fazuluddin
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 

Último (20)

APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 

OCL Visualization A Reality Check

  • 1. Made available under EPL 2.0 OCL Visualization A Reality Check 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 Visualization - A Reality Check 2Made available under EPL 2.0 Overview Background Traditional AST visualization vOCL 2018 problems Fixed vOCL Eclipse QVTs visualization Constraint Diagram Visual OCL Summary / Conclusion
  • 3. 16-September-2019 OCL Visualization - A Reality Check 3Made available under EPL 2.0 Background Text can be good Pictures can be good Text can be better Pictures can be better Text dominant for expressions (except SDL) UML graphical – why no graphical OCL ? OCL 2018 => vOCL paper worth discussion reviewer's / audience criticisms not rebutted
  • 4. 16-September-2019 OCL Visualization - A Reality Check 4Made available under EPL 2.0 Running Example Example constraint context Hospital inv uniquePatientId: self.patients->forAll(p1, p2 | p1 <> p2 implies p1.id <> p2.id) Equivalent to context Hospital inv uniquePatientId: self.patients->isUnique(id)
  • 5. 16-September-2019 OCL Visualization - A Reality Check 5Made available under EPL 2.0 Traditional AST Visualization UML-like solid containment dashed references 18 nodes, 22 edges
  • 6. 16-September-2019 OCL Visualization - A Reality Check 6Made available under EPL 2.0 vOCL Traditional AST is instance-based instances of OCL metamodel requires knowledge of OCL internals references by name to user metamodel vOCL is class-based re-uses user metamodel to define variables mnemonic icons for common OCL operations vOCL constraint is a doodle on the class diagram new doodling semantics
  • 7. 16-September-2019 OCL Visualization - A Reality Check 7Made available under EPL 2.0 vOCL example from 2018 paper blob is the self instance of the not-grayed class ellipses use Class-typed reference properties rounded rectangles use DataType properties additional icons for OCL operations arrows denote 'reading order' vague semantics
  • 8. 16-September-2019 OCL Visualization - A Reality Check 8Made available under EPL 2.0 AST visualization of vOCL example green reading order markup blob - self - ok ....patients - ok ....size() - ok ....<= - lhs ok <= ... - rhs inverted pragmatic self.beds backwards
  • 9. 16-September-2019 OCL Visualization - A Reality Check 9Made available under EPL 2.0 Fixed vOCL example Multiple paths for multiple instances/evaluations Blob now starts two paths black path as in original paper to read the LHS self.patients.size() <= new green path to read the RHS self.beds >= both paths read towards the binary <= operation
  • 10. 16-September-2019 OCL Visualization - A Reality Check 10Made available under EPL 2.0 AST visualization of fixed vOCL example two blobs two bottom-up paths 'reading order' is now AST evaluation blob defines 'self' value edge passes value node computes value
  • 11. 16-September-2019 OCL Visualization - A Reality Check 11Made available under EPL 2.0 Running example using Fixed vOCL Blobs identify three variables starting five paths self.patients self.patients.id <> implies self.patients.id <> implies self.patients <> implies self.patients <> implies Nested rounded rectangles for multiple uses 9 nodes + 12 edges (AST: 18 nodes, 22 edges)
  • 12. 16-September-2019 OCL Visualization - A Reality Check 12Made available under EPL 2.0 Eclipse QVTs OCL visualization AST visualization Object Diagram: instances of OCL metamodel vOCL Class Diagram: doodle on user metamodel Eclipse QVTs patterns Object Diagram: instances of user metamodel auto-generated debug aid for matching schedule example embedded in QVTr
  • 13. 16-September-2019 OCL Visualization - A Reality Check 13Made available under EPL 2.0 Running Example using Eclipse QVTs Rectangles => class instances Rounded rectangles => DataType values Ellipses => OCL operations edges have <<roles>> Solid edges => unit value matching Dashed edges => [0..*] values matching 11 nodes and 15 edges
  • 14. 16-September-2019 OCL Visualization - A Reality Check 14Made available under EPL 2.0 Constraint Diagrams Stuart Kent, OOPSLA 1997 Constraint Diagrams: Visualizing Invariants in Object-Oriented Models. Visual Set membership blobs for members shapes for types blobs within shapes for membership edges for relationships ... Venn Diagrams Not OCL related concepts ... better perspective
  • 15. 16-September-2019 OCL Visualization - A Reality Check 15Made available under EPL 2.0 Running example - Constraint Diagram Ellipses - user metamodel types Blobs - distinct instances typed by background Edges - metamodel relationships Powerful set concepts align well to OCL some OCL concepts hard to represent 8 nodes, 4 edges
  • 16. 16-September-2019 OCL Visualization - A Reality Check 16Made available under EPL 2.0 Visual OCL Christiane Kiesner, Gabriele Taentzer, Jessica Winkelmann TU Berlin Technical Report 2002/23 Visual OCL: A Visualization of the Object Constraint Language A new 'UML' diagram re-uses statechart idioms hierachy of decorated compartments
  • 17. 16-September-2019 OCL Visualization - A Reality Check 17Made available under EPL 2.0 Running Example - Visual OCL ? Draw as: 12 nodes / compartments 3 edges 10 text tokens
  • 18. 16-September-2019 OCL Visualization - A Reality Check 18Made available under EPL 2.0 Summary / Comparison Naive AST - verbose, uses OCL metamodel vOCL - user-friendly, may become cluttered QVTs - patterns, variables avoid clutter Constraint Diagram - can be very good beware: running example hits a 'sweet spot' Visual OCL - adequate
  • 19. 16-September-2019 OCL Visualization - A Reality Check 19Made available under EPL 2.0 Summary / Reality Text can be better, Pictures can be better Text dominant for expressions Complex expressions need the 'best' exposition patterns Text tooling unavoidable - ASCII compatibility Visual tooling specialized - UMLDI is a 'future' AST / QVTs visualization - a helpful debug aid Other Visual OCL editors unlikely to happen
  • 20. 16-September-2019 OCL Visualization - A Reality Check 20Made available under EPL 2.0 Future Work ? Eclipse QVTs - adequate, complete node => metamodel instance / operation edge => metamodel relationship / operation role Constraint Diagram - compact, partial node => metamodel instance edge => metamodel relationship background => set membership / typing ?? Merge the two ?? ?? Questions ??