Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » UML2 » C# implementation of the UML2 metamodel?
C# implementation of the UML2 metamodel? [message #667880] Mon, 02 May 2011 14:51 Go to next message
Joel Greenyer is currently offline Joel Greenyer
Messages: 170
Registered: July 2009
Senior Member
Hi,
we're planning a tool integration where a C#-based tool shall export a UML2-compliant model. Does anyone know whether
there is a C#-based implementation of the UML2-API that provides something like an automatic serializer that produces an
adequate XMI file? Otherwise I guess we'll have to develop an exporter "by hand" that creates such a file.

Any hints, ideas or tipps?

Thanks a lot

Joel
Re: C# implementation of the UML2 metamodel? [message #667882 is a reply to message #667880] Mon, 02 May 2011 15:04 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 26138
Registered: July 2009
Senior Member
Joel,

I've never heard of one, so I doubt it.


Joel Greenyer wrote:
> Hi,
> we're planning a tool integration where a C#-based tool shall export a
> UML2-compliant model. Does anyone know whether there is a C#-based
> implementation of the UML2-API that provides something like an
> automatic serializer that produces an adequate XMI file? Otherwise I
> guess we'll have to develop an exporter "by hand" that creates such a
> file.
>
> Any hints, ideas or tipps?
>
> Thanks a lot
>
> Joel
(no subject) [message #671540 is a reply to message #667880] Wed, 18 May 2011 08:42 Go to previous messageGo to next message
Eclipse User
Originally posted by: Stefan Sobernig

Joel,

> Any hints, ideas or tipps?

I haven't tried myself, but I would take this shot first: Integrate with
EMF/UML2 directly from your C#/CIL app by using the
http://www.ikvm.net/, a robust JVM implementation for .NET.

You can choose from different integration recipes:
http://www.ikvm.net/devguide/net2java.html

Pls. report back for us to know whether this is a viable option.

//stefan
c# to UML 2 standard OMG specifications inside Eclipse [message #671877 is a reply to message #671540] Thu, 19 May 2011 08:55 Go to previous messageGo to next message
Vlad Varnica is currently offline Vlad Varnica
Messages: 546
Registered: July 2009
Location: Milton Keynes - UK
Senior Member
It would not be such a big project to do it but would require at least about 6 months with 3 full time developers in order to be perfect.
I would recommend not to use any transformation framework but directly identify in the UML2 metamodel each c# object. The trick could be to see how it is saved in Java then find the equivalent in C# and copy the piece of code.

If you are totally stuck we can do the job for you.

Do you a reverse engineering mapper ? I mean that you also need to be able to read all c# code and extract model information from it. The this the reverse engineering core code. If you don't have any reverse code then it would require about 5 months for 3 developers to do it.

Once the information has been extracted from the code you will have to to identify each c# equivalent to Ecore and then use EMF to generate the UML 2.3 serialization. This export would work with all open source tools (e.g Topcased, Papyrus) and commercial tools (e.g; RSA IBM and Omondo).
This integration job is about 3 months for a team of 3 developers.

Total cost is: 8 months * 21 days * $300 per day * 3 = $ 151 200



Come back to me if you are interested. This solution only works with Visual studio export to UML 2.3 but is not an Eclipse Visual studio plugin. The cost for such a plugin would be about 12 months for 3 full time developers.
Good luck for your project.

Vlad,

[Updated on: Thu, 19 May 2011 23:22]

Report message to a moderator

Re: (no subject) [message #672119 is a reply to message #671877] Fri, 20 May 2011 00:22 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 26138
Registered: July 2009
Senior Member
Vlad,

Comments below.

Vlad Varnica wrote:
> It would not be such a big project to do it but would require about 6
> months with 3 full time developers in order to be perfect.
Perfection is rarely achieved in software...
> I would recommend not to use any transformation framework
Such as?
> but directly identify in the UML2 metamodel each c# object.
You're talking about which types of c# objects map to which types of
instances of UML?
> The trick could be to see how it is saved in Java then find the
> equivalent in C# and copy the piece of code.
It's not much of a trick. All code to do with XMI serialization is in
org.eclipse.ecore.xmi. It's all done reflectively, so you won't see a
speck of something that's specific to UML. Copying such code produces
derivative work and, with the provisions of the EPL, the result would
also be EPL. Of course you'd make that publicly available?
>
> If you are totally stuck we can do the job for you but you will have
> to pay each $300 * 3 developers * 120 days = $ 108 000 and add on the
> top my 25% commission.
Commission?! I'd talk to Kenn Hussey first!!
> Come back to me if you are interested.
Given that the guy has his email address in the posting, perhaps you
might use a little more discretion and propose a contract privately.
> Good luck,
>
> Vlad,
Re: (no subject) [message #672192 is a reply to message #672119] Fri, 20 May 2011 09:15 Go to previous messageGo to next message
Vlad Varnica is currently offline Vlad Varnica
Messages: 546
Registered: July 2009
Location: Milton Keynes - UK
Senior Member
Yes, I have seen the email but prefer to let know on google that a C# portage to the latest UML 2.3 is possible if using a Java JVM and EMF.
Google is now so strong !! Any intelligent company before deciding to invest in a technology companies will I suppose google with keywords such as "UML, c#, model etc..."
This forum is permanently googled therefore my answer would be found.

If investors refuse to have a JVM, then a new EMF for dotnet would have to be written but this would be a 2 years job. What would be great is to create a platform independent Ecore not just Java which would be portable to any platform or language. A kind of real MDA MOF and not a Java MOF !!
This job could also be done for very reasonable pricing.

Vlad,
(no subject) [message #672194 is a reply to message #667880] Fri, 20 May 2011 09:15 Go to previous messageGo to next message
Carsten Reckord is currently offline Carsten Reckord
Messages: 139
Registered: July 2009
Senior Member
Hi Joel,

I don't know if that's an acceptable solution in your scenario, but it would
probably be easier to leave the UML2-compliant serialization with the
Eclipse UML2 implementation instead of reimplementing it in C#.

I'd use the simplest text or XML serialization you have available in your
C#-based software (or build a very simple one yourself), import that with a
custom Importer into Eclipse UML2 and reserialize it as UML2 XMI. This way,
you'd avoid having to take care about every last pitfall of XMI
serialization and UML standard compliance.

To that end, since you are afaik already using UML Lab, you could save
yourself the trouble of writing the UML2 importer in Java by using UML Lab's
reverse engineering with a small set of custom XPand templates.


Best regards,
Carsten

On 02.05.2011 16:51, Joel Greenyer wrote:
> Hi,
> we're planning a tool integration where a C#-based tool shall export a UML2-compliant model. Does anyone know whether
> there is a C#-based implementation of the UML2-API that provides something like an automatic serializer that produces an
> adequate XMI file? Otherwise I guess we'll have to develop an exporter "by hand" that creates such a file.
>
> Any hints, ideas or tipps?
>
> Thanks a lot
>
> Joel
Re: (no subject) [message #672232 is a reply to message #672194] Fri, 20 May 2011 12:03 Go to previous messageGo to next message
Vlad Varnica is currently offline Vlad Varnica
Messages: 546
Registered: July 2009
Location: Milton Keynes - UK
Senior Member
Hi Carsten,

Your solution seems to me pretty good for simple modeling project because with a text or an xml parser you can not create dynamic ID.
What is the dynamic Id in the model. Even if almost nobody use it this is one of the most advanced piece of modeling software which has ever been developped.
It is a value which is given to each object of your model. It means that once created an object keep the same Id for the entire life of the project. It is really important because you can create views of the same element in more than one diagram. You can also trace the object. You can rename your element and it will renamed everywhere, you can refactor and all diagrams will be updated etc...Very powerful and superb technology.

The UML modeling without the dynamic Id creation is for me like White tea without milk Smile
Re: (no subject) [message #672280 is a reply to message #672192] Fri, 20 May 2011 13:47 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 26138
Registered: July 2009
Senior Member
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Vlad,<br>
<br>
There is an EMF4Net project.  <br>
<blockquote><a href="http://wiki.eclipse.org/EMF4Net">http://wiki.eclipse.org/EMF4Net</a>
<br>
</blockquote>
Unfortunately they've been dormant for quite some time, but it might
cut a year out of the 2 year job...<br>
<br>
No doubt an EMF for C# would be a C# EMOF and just as Ecore today is a
Java EMOF.  One would be able to exchange EMOF instances, and in the
end UML2 instances, assuming one also implemented the UML2 model in
C#.  I think that's what makes MDA real.  I don't really understand
your disparaging swipe at "Java MOF" when it's a necessary part of a
real story and the only part that's very real today.<br>
<br>
It would be very interesting to see you ranting about C# EMF the way
you rant about Java EMF.  You'd no doubt tell people not to use it, but
to use UML2 instead, because UML is a panacea to cure all the ills of
the world...<br>
<br>
<br>
Vlad Varnica wrote:
<blockquote cite="mid:ir5b09$mve$1@news.eclipse.org" type="cite">Yes, I
have seen the email but prefer to let know on google that a C# portage
to the latest UML 2.3 is possible if using a Java JVM and EMF. Google
is now so strong !! Any intelligent company before deciding to invest
in a technology  companies will I suppose google with keywords such as
"UML, c#, model etc..."
<br>
This forum is permanently googled therefore my answer would be found.
<br>
<br>
If investors refuse to have a JVM, then a new EMF for dotnet would have
to be written but this would be a 2 years job. What would be great is
to create a platform independent Ecore not just Java which would be
portable to any platform or language. A kind of real MDA MOF and not a
Java MOF !!
<br>
This job could also be done for very reasonable pricing.
<br>
<br>
Vlad,
<br>
</blockquote>
</body>
</html>
Re: (no subject) [message #672281 is a reply to message #672232] Fri, 20 May 2011 13:51 Go to previous message
Ed Merks is currently offline Ed Merks
Messages: 26138
Registered: July 2009
Senior Member
Vlad,

Comments below.

Vlad Varnica wrote:
> Hi Carsten,
>
> Your solution seems to me pretty good for simple modeling project
> because with a text or an xml parser you can not create dynamic ID.
I've never heard of that.
> What is the dynamic Id in the model.
Indeed a good question.
> Even if almost nobody use it this is one of the most advanced piece of
> modeling software which has ever been developped.
Wow, another panacea!
> It is a value which is given to each object of your model.
Like a UUID?
> It means that once created an object keep the same Id for the entire
> life of the project.
Oh yes, much like a UUID.
> It is really important because you can create views of the same
> element in more than one diagram. You can also trace the object. You
> can rename your element and it will renamed everywhere, you can
> refactor and all diagrams will be updated etc...Very powerful and
> superb technology.
Why do you call it a dynamic ID. I sounds like it should be very
static, i.e., it can never ever be changed...
>
> The UML modeling without the dynamic Id creation is for me like White
> tea without milk :)
I have no idea why you think some form of UUID can't be supported with
the suggested approach (which sounds quite good). No doubt it's just
another opportunity for you to rant and thereby raise your Google search
ranking...
Previous Topic:MOF Profiling
Next Topic:MarteProfile
Goto Forum:
  


Current Time: Fri Oct 24 09:38:57 GMT 2014

Powered by FUDForum. Page generated in 0.03113 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software