Brief summary of the OCL and Textual Modeling Workshop (co-located with MoDELS 2010). Notes taken live during the workshop (so apologies for all the mistakes, misunderstandings and incomplete information; so please if you think that what the authors are proposing is nonsense check the paper because maybe what it is nonsense, by mistake, is my summary of it) . Check the papers for more complete information.
(the workshop is happening right now so refresh the page to get the summaries of new presentations as they go on)
09.15-09.30 Introductions
Around 30 participants introduce themselves.
09.30-10.30 Session: OCL Integration and Tooling
- 09.30-09.50 Re-engineering Eclipse MDT/OCL for Xtext. Edward Willink. PDF
Eclipse OCL evolution to use Xtext (before it was using IMP project but that was an incubation project and could not be used to release MDT/OCL). Contrast old LPG+IMP with new Xtext approach. OCL is complex so there is a lot of difference between the concrete syntax tree and the abstract syntax graph. Xtext helped a lot with that since it generates lexer, LL parser, editor,
The paper contains a comparison between both implementations (Xtext and LPG+Java). For instance, Xtext implementation is at least 5 fives smaller regarding the source code but Xtest is 10 times larger regarding the classes sizes and about 11 times slower.
- 09.50-10.10 Integrating OCL and Textual Modelling Languages. Florian Heidenreich, Jendrik Johannes, Mirko Seifert, Michael Thiele, Christian Wende and Claas Wilke. PDF
Appropriate front end tooling to apply OCL to different languages is missing. They target integration of OCL into editors for textual modeling languages. Two possible generic strategies: external OCL definitions (OCL expressions provided in a separate file) and embedded definitions (ocl syntax mixed with the own textual modeling syntax). There are use cases for both alternatives.
Proposed integration process consists in five steps: metamodel integration, concrete syntax integration, metamodel adaptation, static semantics integration and dynamic semantics integration. The external OCL strategy only requires two of these steps. All of them are challenging. For instance, concrete syntax integration difficult because OCL and the textual language may contain overlapping reserved words (possibility of having both grammars at the same time and switching from one to the other depending on the presence of a given token).
- 10.10-10.30 A Feature Model for an IDE4OCL. Joanna Chimiak-Opoka and Birgit Demuth. PDF
(Nice) Using the business motivation model (OMG) to motivate and explain the paper.
Vision: OCL be the supplementary language in practice. Goal: provide an IDE4OCL framework to improve usability of OCL tools. Mission: develop IDE4OCL with partners. Presented what should be the OCL tool landscape with IDE4OCL focused on the specification, evaluation and verification of OCL expressions and other tools (testing tools, modeling tools) built on top of it. The specific features for IDE4OCL have been decided after analyzing the answers to a survey they started last year (see the paper and the survey from last year). The paper presents a feature model describing all the selected features. Further input is asked to help them prioritize these features and decide which ones are mandatory.
10.30-11.00 Coffee
11.00-12.30 Session: OCL Foundations and Applications
12.30-14.00 Lunch
14.00-15.30 Session: Textual Modelling
- 14.00-14.20 Verified Visualisation of Textual Modelling Languages. Fintan Fairmichael and Joseph Kiniry. PDF
When a language has textual and graphical aspects consistency between them is important. Research question: can we allow simultaneous editing both without worrying about consistency?
Uses BON as example modeling language. BON has both textual and graphical representation (one-to-one mapping between them). Their approach is to formalize the relationship between the two (they use PVS). Given this relationship they can determine if one corresponds to the other and provide one from the other. In the case of BON, this is a bijective relationship. (Incremental) model evolution can also be dealt with in a similar way (defining relationships between the diffs).
Not sure why this is not done relying on the abstract syntax representation of the model (e.g. defining equivalence between a textual and a graphical representation in terms of whether they generate the same metamodel representation?).
- 14.20-14.40 Support for Bidirectional Model-to-Text Transformations. Anthony Anjorin, Marius Lauder, Michael Schlereth and Andy Schürr. PDF
The title is self-explanatory (especially if you add the using Triple Graph Grammars at the end). This problem can be solved using tools like TCS or XText but not if you want to use your own parser, metamodel, and editor (as requested by their industrial partners). Additional requirements:homogeneous, declarative and bidirectional. Their solution: extend TGG to support bidirectional model-to-text transformations. You can use an arbitrary parser as long as it generates a simple tree that they can use as input for the TGG.
- 14.40-15.00 An Overview of F-OML: An F-Logic Based Object Modeling Language. Mira Balaban and Michael Kifer. PDF
Intended usage: extending UML (like OCL), reasoning, testing, meta-modeling. Features of the language: polymorphism, multi-level modeling and definition of model instantiations. F-OML is a semantic layer on top of PathLP (small language of guarded path expressions) formulating two main OO concepts: class and property plus several class constructors (e.g. to create a class of objects as intersection of two classes), property reification and transitive closure operations. F-OML has the expressive power of Logic programming and captures a part of second-order logic.
- 15.00-15.10 On the Need of User-defined Libraries in OCL. Thomas Baar. PDF
A lot of libraries in Java. Easier to download and immediately use in your Java programs. Also, libraries are organized in bundles. Why cannot we do the same in OCL? Right now, OCL has just one library (the standard one). User-defined libraries in OCL would contribute to a more active community in OCL.
Showing an example of how to solve the same problem (isOrphan method in a graph node) in Java and OCL. In Java easy to solve by reusing a user-defined Java Graph library. In OCL such thing does not exist. Next, it is shown how to resolve the problem for OCL assuming that a library mechanism for OCL is possible. Looks nice but not free of challenges: no import statement for OCL, different import-statements in UML and no mechanisms for customization.
15.30-16.00 Tea
16:00-17:30 Discussion session
- 16.00-16.30 Invited Presentation: Evolution of the OCL OMG Specification. Mariano Belaunde. PDF
Mariano (Chairman of the OCL finalization and revision task force) talks about the evolution of the OCL and of the process for evolving it.
In 2003 OCL becomes a stand-alone specification. In 2005 people from the QVT standard takes over the OCL standardization process (that was kind of orphan at the moment) and finalize OCL 2.0 (which was only partially aligned with UML 2.0). In 2009, the alignment was completed. In 2011, OCL 2.3 (or 2.4) to come.
About the maintenance process. Aim of the OMG: to be open (everybody can submit issues), fair (voting procedure but only for OMG members) and transparent (all changes to the specification tracked). This makes it very time-consuming.
Problems in the OCL spec maintenance:1- Not enough man power (companies interested in creating new standards not to maintain existing ones).2- Too formal (wrt to the tools available for validating/verifying this formality) and several partial formal representaions that are not always synchronized. Audience does not agree. Most important problem is that there are several partial formal representations that do not always coincide.
Novelties in OCL 2.3: Enhancing the OCL library, OCL collections as plain objects, continuing UML2 alignment. Still many other future challenges (e.g. OCL reflection, support of stereotypes,..)
Collaboration from the attendees is welcome to help fixing all the problems with the specification (instead of just pointing to them
).
If you enjoyed this post you can subscribe to this Software Modeling blog , to the portal’s mailing list , follow me ON twitter AND/OR CHECK the most popular posts . AND if you really liked it help me pass it ON TO others by bookmarking AND sharing the post USING the links below: