Advertisement

Eclipse OCL Summary

Nov. 4, 2011
Advertisement

More Related Content

Advertisement
Advertisement

Eclipse OCL Summary

  1. Eclipse OCL Summary Edward Willink Eclipse (MDT) OCL Project Lead, Eclipse (M2M) QVTd Project Lead Thales representive to OMG OCL RTF, Thales representive to OMG QVT RTF Modeling Symposium BoF 3rd November 2011
  2. MDT/OCL Project context Ecore Modeling Services in Java UML Modeling Services in Java Ecore, UML Execution Services in Java
  3. Embedded OCL, validation messages
  4. Extended behaviour/OCL execution @Generated NOT manual Java (pre-Helios) EMF Delegates support EAnnotations (Helios) Direct OCL 2 Java (Juno) genmodel run run parse interpret genmodel run call genmodel run
  5. main behaviours obvious
  6. corner cases problematic
  7. accuracy / extensibility
  8. concrete syntax 'unchanged'
  9. Juno Xtext and Pivot Architecture Develop-time: Java code from Xtext editor Run-time: Fast Java execution Pivot Library Feature Bodies Dispatch Tables Dispatch Runtime Ecore BodyCalls genmodel Acceleo Acceleo Acceleo CSG 2 ASG Editor Parser Xtext Acceleo Acceleo ASG Visitors CSG Visitors Acceleo genmodel genmodel OCLstdlib editor OCLinEcore editor Xtext editor CompleteOCL editor Acceleo genmodel OCL Xtext Console Pivot Runtime
  10. OCL evaluation performance Release Compile-time (genmodel) First Run-time Every Run-time Run-time support Helios Text copy OCL parsing Slow Visitor Interpreter Unmodelled library Indigo Text copy OCL parsing Faster Visitor Interpreter Modelled library Faster library Juno OCL parsing Java Body generation Dispatch Table generation Java JIT Fast Inline Polymorphic Dispatcher Modelled library Faster library Polymorphic values
  11. anObject.oclType().name = 'Class'
  12. anObject.eClass().name == "EClass"
  13. full text Ecore compliance Operation/Property bodies XMI 100% whatever KM3 80% no Emfatic 95% no Xcore 95% + Xbase + genmodel interpreted Xbase (Juno) Xbase2Java (Juno) OCLinEcore >99% + OCL (+ some UML) interpreted OCL (Helios) OCL2Java (Juno)
  14. sharing models with OCL specification
  15. foundation for many other modelling specifications
  16. compact iterations/loops
  17. embedded anonymous functions
  18. Ecore OCL Architecture Develop-time: EAnnotation from Text editor Run-time: OCL parsed by old LPG tooling Ecore Library CS 2 AS Parser LPG ASG CST genmodel genmodel Sample Ecore editor Text editor OCL Console Ecore Runtime Ecore genmodel CDATA CS actions EMF Delegate EAnnotations EAnnotations + templates
  19. Helios Xtext Architecture Develop-time: EAnnotation from Xtext editor Run-time: OCL parsed by old LPG tooling Editor Parser Xtext CSG genmodel OCLstdlib editor OCLinEcore editor Xtext editor CompleteOCL editor Ecore genmodel
  20. Indigo Xtext and Pivot Architecture Develop-time: EAnnotation from Xtext editor Run-time: OCL re-parsed by Xtext tooling Pivot Library Ecore CSG 2 ASG Editor Parser Xtext Acceleo Acceleo ASG Visitors CSG Visitors Acceleo genmodel genmodel OCLstdlib editor OCLinEcore editor Xtext editor CompleteOCL editor OCL Xtext Console Pivot Runtime genmodel
  21. Project History Pre-Helios IBM contribution Christian Damus Helios OCL delegates Xtext editors OCLinEcore Essential OCL Complete OCL syntactic validation Indigo Pivot model Impact Analyzer Library model Xtext OCL Console re-use in Papyrus re-use in Xtext Accurate evaluation Faster evaluation semantic validation Juno OCL2Java promotion from examples re-use for QVTd Fast evaluation model-defined model validation
Advertisement