Questions about the Famix Metamodel

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Questions about the Famix Metamodel

Anne Etien
Hi,

I have studied the Famix metamodel and I have some questions / remarks:
- There is a reference (I think even a composition) between ScopingEntities and Function. It thus means that by inheritance, a Module, a Namespace or a Package refer to function. Does it make sense for Namespace or Package?
- Furthermore, there also exist a reference (I think even a composition) between Module and Function. In Module, how the distinction is done between the functions collection inherited from ScopingEntitiy and the specific one?
- There is a reference between ImplicitVariable and BehaviouralEntity (parentBehaviouralEntity) whose opposite reference is named localVariables. However, in BehaviouralEntity, the reference named localVariables points to LocalVariables. And there is no inheritance between ImplicitVariable and LocalVariable.
- There is a reference (globalVariables) (I think even a composition) between ScopingEntities and GlobalVariable with an opposite reference. There is also a reference between GlobalVariable and Module (parentModule) but without any opposite reference. Is this later an easy way to determine the module as a ScopingEntity to which a GlobalVariable belongs to or does it add something from the reference between GlobalVariable and ScopingEntities.

It would be nice if someone can give me explanations.

Anne
PS: Sorry, if the questions have been already asked, I am new on the list.


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Questions about the Famix Metamodel

Nicolas Anquetil

We found other strange things:

For example, a Comment is a SourcedEntity, and a SourceEntity may have a
Comment, so a Comment may have a Comment ...

By the way, associations also are SourcedEntities, so they also are
eligible to have comments too ...
Continuing in the same line, Associations as SourcedEntities also have a
'declaredSourceLanguage' which seems superfluous.

nicolas

On 27/11/12 17:21, Anne Etien wrote:

> Hi,
>
> I have studied the Famix metamodel and I have some questions / remarks:
> - There is a reference (I think even a composition) between ScopingEntities and Function. It thus means that by inheritance, a Module, a Namespace or a Package refer to function. Does it make sense for Namespace or Package?
> - Furthermore, there also exist a reference (I think even a composition) between Module and Function. In Module, how the distinction is done between the functions collection inherited from ScopingEntitiy and the specific one?
> - There is a reference between ImplicitVariable and BehaviouralEntity (parentBehaviouralEntity) whose opposite reference is named localVariables. However, in BehaviouralEntity, the reference named localVariables points to LocalVariables. And there is no inheritance between ImplicitVariable and LocalVariable.
> - There is a reference (globalVariables) (I think even a composition) between ScopingEntities and GlobalVariable with an opposite reference. There is also a reference between GlobalVariable and Module (parentModule) but without any opposite reference. Is this later an easy way to determine the module as a ScopingEntity to which a GlobalVariable belongs to or does it add something from the reference between GlobalVariable and ScopingEntities.
>
> It would be nice if someone can give me explanations.
>
> Anne
> PS: Sorry, if the questions have been already asked, I am new on the list.
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Questions about the Famix Metamodel

Tudor Girba-2
In reply to this post by Anne Etien
Hi,

First of all: welcome! And thanks for the questions.

On 27 Nov 2012, at 17:21, Anne Etien <[hidden email]> wrote:

> Hi,
>
> I have studied the Famix metamodel and I have some questions / remarks:
> - There is a reference (I think even a composition) between ScopingEntities and Function. It thus means that by inheritance, a Module, a Namespace or a Package refer to function. Does it make sense for Namespace or Package?

Yes. In C++, you can have a function in a namespace.

> - Furthermore, there also exist a reference (I think even a composition) between Module and Function. In Module, how the distinction is done between the functions collection inherited from ScopingEntitiy and the specific one?

I do not understand.

> - There is a reference between ImplicitVariable and BehaviouralEntity (parentBehaviouralEntity) whose opposite reference is named localVariables. However, in BehaviouralEntity, the reference named localVariables points to LocalVariables. And there is no inheritance between ImplicitVariable and LocalVariable.

This seems to be a problem. Please open an issue.

> - There is a reference (globalVariables) (I think even a composition) between ScopingEntities and GlobalVariable with an opposite reference. There is also a reference between GlobalVariable and Module (parentModule) but without any opposite reference.

The missing reference is a problem. As for Module, it has a different intent from a Namespace in that the Module is more of a physical packaging entity more specific to C++. But, just for reference, Module is not really mature.

> Is this later an easy way to determine the module as a ScopingEntity to which a GlobalVariable belongs to or does it add something from the reference between GlobalVariable and ScopingEntities.
>
> It would be nice if someone can give me explanations.
>
> Anne
> PS: Sorry, if the questions have been already asked, I am new on the list.

No problem. Keep the questions coming.

Cheers,
Doru



>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Live like you mean it."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Questions about the Famix Metamodel

Anne Etien

Le 27 nov. 2012 à 20:39, Tudor Girba a écrit :

> Hi,
>
> First of all: welcome! And thanks for the questions.
>
> On 27 Nov 2012, at 17:21, Anne Etien <[hidden email]> wrote:
>
>> Hi,
>>
>> I have studied the Famix metamodel and I have some questions / remarks:
>> - There is a reference (I think even a composition) between ScopingEntities and Function. It thus means that by inheritance, a Module, a Namespace or a Package refer to function. Does it make sense for Namespace or Package?
>
> Yes. In C++, you can have a function in a namespace.
>
>> - Furthermore, there also exist a reference (I think even a composition) between Module and Function. In Module, how the distinction is done between the functions collection inherited from ScopingEntitiy and the specific one?
>
> I do not understand.

I will try to better explain.
There exists a reference named functions from ScopingEntity to Function. So Module as a ScopingEntity inherits from this reference. But there also exists a reference named functions from Module to Function. So my question is: Is there two references named functions in Module (and if it is the case, how we can distinguish them) or it is a kind of overloading, but in ten years I never saw it in metamodel.

>
>> - There is a reference between ImplicitVariable and BehaviouralEntity (parentBehaviouralEntity) whose opposite reference is named localVariables. However, in BehaviouralEntity, the reference named localVariables points to LocalVariables. And there is no inheritance between ImplicitVariable and LocalVariable.
>
> This seems to be a problem. Please open an issue.
I will do it.

>
>> - There is a reference (globalVariables) (I think even a composition) between ScopingEntities and GlobalVariable with an opposite reference. There is also a reference between GlobalVariable and Module (parentModule) but without any opposite reference.
>
> The missing reference is a problem. As for Module, it has a different intent from a Namespace in that the Module is more of a physical packaging entity more specific to C++. But, just for reference, Module is not really mature.

If the missing reference is a problem, it means that once again in Module, there are two references named globalVariables (one inherited from ScopingEntity and the other is specific to Module). Is it an overloading or something else?
Since for reference, Module is not really mature, I hope my remarks will help.

Anne

>
>> Is this later an easy way to determine the module as a ScopingEntity to which a GlobalVariable belongs to or does it add something from the reference between GlobalVariable and ScopingEntities.
>>
>> It would be nice if someone can give me explanations.
>>
>> Anne
>> PS: Sorry, if the questions have been already asked, I am new on the list.
>
> No problem. Keep the questions coming.
>
> Cheers,
> Doru
>
>
>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Live like you mean it."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev