Skip to main content



      Home
Home » Archived » M2M (model-to-model transformation) » [ATL] Merging ATL transformations?
[ATL] Merging ATL transformations? [message #24312] Sun, 18 March 2007 19:36 Go to next message
Eclipse UserFriend
Hi all,

I have several small re-usable ATL transformations which I'd like to
combine into one large transformation. The combined transformation
should have the union of all metamodels in the "create" list and
helpers in the "uses" list and the union of all transformation rules.

Is this possible? Maybe, with an ATL transformation on the ATL
metamodel itself, using several ASM files as input and one large ASM
file as output?

Cheers
Matthias Bohlen at andromda.org
Re: [ATL] Merging ATL transformations? [message #24435 is a reply to message #24312] Mon, 19 March 2007 06:59 Go to previous messageGo to next message
Eclipse UserFriend
Matthias Bohlen schreef:
> Hi all,
>
> I have several small re-usable ATL transformations which I'd like to
> combine into one large transformation. The combined transformation
> should have the union of all metamodels in the "create" list and helpers
> in the "uses" list and the union of all transformation rules.

Hi Matthias,

(This is probably starting to bore you:) you can write several small
transformation modules and then superimpose them in any order, provided
that there's no rule overlap.

The resulting transformation will be the union of all transformation
rules, helpers, input and output models and meta-models. You only need
to make sure you provide all the parts in your launch configuration.

>
> Is this possible? Maybe, with an ATL transformation on the ATL metamodel
> itself, using several ASM files as input and one large ASM file as output?

This approach will probably work as well, but is more difficult to
implement ;-). It also creates more compiler overhead, since it requires
transforming the affected transformation modules and then recompile them
as one single module.

>
> Cheers
> Matthias Bohlen at andromda.org
>


--
Regards,
Dennis
Re: [ATL] Merging ATL transformations? [message #24600 is a reply to message #24435] Mon, 19 March 2007 12:41 Go to previous messageGo to next message
Eclipse UserFriend
On 2007-03-19 11:59:59 +0100, Dennis Wagelaar <dennis.wagelaar@vub.ac.be> said:

> Matthias Bohlen schreef:
>> Hi all,
>>
>> I have several small re-usable ATL transformations which I'd like to
>> combine into one large transformation. The combined transformation
>> should have the union of all metamodels in the "create" list and
>> helpers in the "uses" list and the union of all transformation rules.
>
> Hi Matthias,
>
> (This is probably starting to bore you:) you can write several small
> transformation modules and then superimpose them in any order, provided
> that there's no rule overlap.

No, it is not boring me at all. :-)

Example: When I have transformations A, B and C, can I really have a
transformation D which simply contains the following additional line:

uses A, B, C;

This would be really easy! Should this work today, already?

Cheers,
Matthias at andromda.org
Re: [ATL] Merging ATL transformations? [message #24720 is a reply to message #24600] Tue, 20 March 2007 02:44 Go to previous messageGo to next message
Eclipse UserFriend
Matthias Bohlen schreef:
> On 2007-03-19 11:59:59 +0100, Dennis Wagelaar
> <dennis.wagelaar@vub.ac.be> said:
>
>> Matthias Bohlen schreef:
>>> Hi all,
>>>
>>> I have several small re-usable ATL transformations which I'd like to
>>> combine into one large transformation. The combined transformation
>>> should have the union of all metamodels in the "create" list and
>>> helpers in the "uses" list and the union of all transformation rules.
>>
>> Hi Matthias,
>>
>> (This is probably starting to bore you:) you can write several small
>> transformation modules and then superimpose them in any order,
>> provided that there's no rule overlap.
>
> No, it is not boring me at all. :-)
>
> Example: When I have transformations A, B and C, can I really have a
> transformation D which simply contains the following additional line:
>
> uses A, B, C;

Well, you won't have a physical transformation "D", but the result of
superimposing A, B and C on top of eachother is equivalent.

I suppose it's best to experiment a bit with superimposition, just to
get to know what it can do...

EMF meta-models can be "merged", or rather linked, by defining a new
meta-model that references elements from the other meta-models. For
example, you can make an "Import" abstract meta-class, that inherits
from at least one meta-class from each meta-model you want to reference.
ATL then loads the whole network of linked EMF meta-models whenever you
load the top-level meta-model.

Combine that with the solution I previously wrote about of referring to
your meta-model with always the same symbolic name (e.g. "MM"), and you
can combine rules on different (parts of the) meta-models within one
transformation.

>
> This would be really easy! Should this work today, already?

It should work with ATL as it sits in CVS, yes.

>
> Cheers,
> Matthias at andromda.org
>

--
Regards,
Dennis
Re: [ATL] Merging ATL transformations? [message #24758 is a reply to message #24720] Tue, 20 March 2007 04:30 Go to previous messageGo to next message
Eclipse UserFriend
On 2007-03-20 07:44:10 +0100, Dennis Wagelaar <dennis.wagelaar@vub.ac.be> said:

>>
>> Example: When I have transformations A, B and C, can I really have a
>> transformation D which simply contains the following additional line:
>>
>> uses A, B, C;
>
> Well, you won't have a physical transformation "D", but the result of
> superimposing A, B and C on top of eachother is equivalent.

What do you mean by "I won't have D"? You mean, I should not write a
transformation D which superimposes A, B, and C? What would be the
correct way to do it?

Cheers
Matthias
Re: [ATL] Merging ATL transformations? [message #24794 is a reply to message #24758] Tue, 20 March 2007 06:22 Go to previous message
Eclipse UserFriend
Matthias Bohlen schreef:
> On 2007-03-20 07:44:10 +0100, Dennis Wagelaar
> <dennis.wagelaar@vub.ac.be> said:
>
>>>
>>> Example: When I have transformations A, B and C, can I really have a
>>> transformation D which simply contains the following additional line:
>>>
>>> uses A, B, C;
>>
>> Well, you won't have a physical transformation "D", but the result of
>> superimposing A, B and C on top of eachother is equivalent.
>
> What do you mean by "I won't have D"? You mean, I should not write a
> transformation D which superimposes A, B, and C? What would be the
> correct way to do it?
>
> Cheers
> Matthias
>

Superimposition is part of your launch configuration. In the "Advanced"
tab of your "Run..." dialog, you can choose to superimpose
transformation modules. Example: in the launch configuration of A, you
can choose to superimpose B and C. When you run that launch
configuration, you will run the combination of A, B and C.

--
Regards,
Dennis
Previous Topic:[ATL] ATL use case: Transformation language for AndroMDA
Next Topic:[ATL] UML to RDBMS
Goto Forum:
  


Current Time: Sat May 10 07:31:32 EDT 2025

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

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

Back to the top