Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mdt-ocl.dev] General question regarding bugs in existing impl vs. Pivot impl

Hi Axel

It's more than a couple. At least 50%, perhaps 90%, of the bugs I have RESOLVED against M5, M6 are resolved by the pivot model in the examples. They cannot be CLOSED until the resolved functionality is acceptably available to existing users.

It was the breadth of the problems in the current implementation and the incompatibilities of the Xtext ANTLR front end that forced me to pursue the pivot approach. I regard solving problems such as making the standard library extensible as alamost insoluble in the old code, where library definitions occur not always consistently in at least seven, perhaps nine, places. Identifying where OCL semantics such as implicit collect, implicit as-set, conformance to OclAny, etc etc are coded is very difficult; just look at the number of bugs related to stupid malfunctions, particularly cast failures on numeric inequivalences. If you want to try fixing these problems in situ, good luck, and don't forget to do UML too. You will be in major one step forwards, five steps sideways, half a step back country. I gave up and the pivot is the result.

If you use Acceleo and QVTo you will find a surprising number of facilities that work correctly, even though the old code doesn't. They have layered fixes and workarounds on top, all as part of re-using a semi-extensible code base. When OMG recast OCL as an extensible language and reused it, OCL implementations were left lacking. Eclipse OCL has been very much behind the curve in supporting extensibility. My UMLX/QVTd work pushed the grammar extensibility, but the library has been a nightmare.

The pivot model gives us an opportunity to provide an extensible code base with shared infrastructure for other projects. I hope you can help me to bridge the analyzer/parser gaps between the new and the old.

Realistically, I would expect that an attempt to upgrade the old code will involve at least a man year's effort with API compatibility fights every step of the way. You can of course do a day here and a day there and each is a small improvement but it ignores the big issues. This seems to be what you're doing. I don't find it very helpful, because by the time all the documentation and review and discussion are done, that day costs me half a day. I would much prefer to regard the old code as mature.

Alternatively, the pivot code is now useable, the major activities are:
- UML profiles so that the Pivot works on UML as well as Ecore (maybe M7)
- pedantically accurate rather than pragmatic UML alignment
- use of OCL rather than manual code to define scoping and CST/AST mapping
- OCL code generation
- clean clear APIs with strong similarities to the old APIs
- good documentation
- activation of the old unit tests on the new code

The third activity closes the gap with the OCL specification, so that OMG OCL defines
- scoping (Inherited/synthesized attributes),
- CST/AST mapping the CST well-formedness
- AST validation overall well-formedness rules

With the specification gap closed, QVT will become easy as a demonstration of extensibility.

We probably want to do some serious project planning at EclipseCon. I will be about on the Sunday and Friday.

    Regards

        Ed


On 14/03/2011 22:17, Axel Uhl wrote:
Hi all,

we have a couple of occasions where a bug was reported against the existing implementation, e.g., using the Ecore binding. Obviously, some of them either don't apply in the Pivot implementation or have explicitly been fixed there already.

The Pivot implementation is under examples/ for Indigo. We have to see how promotion will work and how the deprecation process for the currently active implementations with the uml/ecore bindings will happen. This may also depend on the feedback on and adoption of the Pivot implementation.

I feel that for some important aspects we should be doing some---admittedly unpleasant---double maintenance and not simply close bugzillas by saying they don't apply to or are already fixed in the Pivot implementation.

I'd like to learn about your opinions on this.

Thanks and best,
-- Axel
_______________________________________________
mdt-ocl.dev mailing list
mdt-ocl.dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mdt-ocl.dev


-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1204 / Virus Database: 1498/3506 - Release Date: 03/14/11





Back to the top