I am currently updating to OpenEdge 10.1C OO ABL the UML model-to-code forward engineering / code-to-model reverse engineering / code-to-model synchronization templates for Enterprise Architect . I've been moving along steadily, conducting a lot of testing, and it's starting to come together. Hopefully, by the time I'm done, we will have a lot more complete solution especially on the reverse engineering / code-to-model synchronization side. To date, the RE / C-to-M sync covered only the basics and tended to fail on more interesting syntax variants and corner cases. There are also couple of niggles with the RE grammar that are proving problematic to solve: 1) fully qualified types before a period at the end of a statement, and 2) the different "END" variations. But I am hopeful I can resolve these in time.
In order to test as many syntax variations as possible, I am putting out a general request for OO ABL code examples from any interested people. Like many of you, I have my own coding style and approach which is in all likelihood too narrow for thorough testing, and try as I might, I know I am not going to come up with all of the variations and corner cases. So if you would like to help me out and you have some OO ABL code examples that you would like to send me, let me know via reply to this thread.
Thanks in advance.
Phil
Phil, we are interested.
Where should we send some of our OO ABL code?
Thanks,
Ariel.
Ariel,
Do you have the right to "Attach Files" when you post messages to this forum? If so, then just attach the OO ABL code examples to this thread.
Or if you want to keep the code examples private, then just send it to my email address: pmagnay@progress.com
Phil
I am presuming that you have already collected my published examples? Is that fair or do I need to give you links?
A little unfair. I don't know much about your examples other than you probably have some on your site. Help me out by posting the links or attaching the files to this thread. I am looking for OO ABL examples either 10.1B and/or 10.1C.
Phil
Exception and Condition Handling Classes http://www.oehive.org/ExceptionClass
Collection and Map Classes http://www.oehive.org/CollectionClasses
Should give you a start.
Hi, here I attach some of our codebase,
actually it's very little but the more representative of the coding style.
Probably there are some missing classes or include files, tell me if that is a problem.
David (I'm writing on behalf of Ariel).
Mensaje editado por:
David Abdala
Sorry, I've removed the attached file, because I was supouse to send it by mail.
Thanks David (and Ariel). I quickly reviewed the code and this is definitely the kind of thing that I am looking for. I also performed an initial reverse engineer on the code and it appears that I still have some work to do to cover the OE 10.1C syntax items but I don't see any big problems getting this done in short order . I'll work on this over the next couple days and send you the result.
Phil Magnay
Hi Phil,
did you already test the sample code from my last years Exchange Session: http://www.psdn.com/library/entry!default.jspa?categoryID=1379&externalID=3279&fromSearchPage=true
It's 10.1B - but that should also be some kind of a test.
Mike
there are some classes using sockets at http://www.oehive.org/node/1205. Good luck understanding them
Oh he doesn't have to understand the code... he just has to be able to round-trip engineer it
Thanks Julian. I'll download your code now. Jamie is correct - I don't need to understand your code per se. It's the reverse engineering grammar that needs to understand your code and as many other code syntax variations as possible. Making that happen is not easy but certainly doable.
Phil
Hell, even I don't understand my code half the time
I just wanted to give you guys a quick update.
First of all, thanks very much for the code examples. They were very helpful in finding and addressing additional ABL syntax variations that I had not thought of.
Currently, I still have a handful of syntax variations which I have yet to address and which I am currently working with Sparx to resolve. A couple of these issues relate to statements which are at the file root level such as include files and ROUTINE-LEVEL error handling. A couple more have to do with the accessors and how they're defined in ABL (ie, part of property definition) as opposed to how they are modeled in a UML class (ie, stereotyped methods detached from the property definition).
Another issue which I am steadily taking care of is the multiple syntax variations of "END." statement on the various block types. And yet another is how to treat proprocessor definitions - within the class block (but outside method blocks) I'm modeling them as constants at the moment, but outside the class block it's not so clear as to where they should be placed inside the model. And there are still some questions as to how these resulting constants should be subsequently substituted at the time of forward code engineering.
Then there is the issue of what to do with include files and their arguments both inside and outside the class block. Everything inside method blocks is reasonably straight forward, this code is just captured as part of the releveant method.
Anyway, I just wanted to keep you posted. More come to come soon.
Phil
Dear Phillip Magnay:
I am sending you a class for your testing.
Regards
Hugo Alberto
Hi Phil,
any news on this? Recently we fell accross the fact that the EA templates are 10.1B, so STATIC members for instance were not present at that time.
It would be very helpfull, to receive an updated version of the templates some time.
Mike
Hi Mike,
I apologize for taking so long to get back to you. I've been crazy busy lately and missed your post.
Yes, there has been some movement on this front. I would like to get a 10.2 version of the code generation/reverse engineering templates posted to PSDN in the next month or so. The new templates would definitely include STATICS. The hold up has not been technical - it has been been more of a bureaucratic obstacle. Sparx released EA 7.5 a few weeks ago and we were hoping to have Sparx include some additional support for OpenEdge in EA 7.5/MDG for Eclipse. But some paperwork took longer than it shoud have, and the additional OpenEdge support didn't make it in. That's been resolved now and we should see the extra OpenEdge stuff in an impending EA 7.5/MDG for Eclipse build. After that, I need to re-test all of the code generation templates and the reverse engineering/code synchronization scripts. Once that is done, the OpenEdge templates/scripts will be posted to PSDN.
Regards,
Phil
Hi Phil,
any news on this? Recently we fell accross the fact
that the EA templates are 10.1B, so STATIC members
for instance were not present at that time.
It would be very helpfull, to receive an updated
version of the templates some time.
Mike
Hi
Thanks Hugo. I will use the code that you submitted in some testing I will be doing soon.
Phil
Hey Phil,
That's good news!
Do you know if that will include a model template including OpenEdge built in and .NET base types like Progress.Lang.Object, Progress.Lang.Error or Progress.Data.BindingSource?
I appreciate you afford in this matter!
Mike