FamixDiff

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

FamixDiff

Nicolas Anquetil

announcing version 0.9 of FamixDiff:

MCHttpRepository
     location: 'http://www.smalltalkhub.com/mc/Moose/FamixDiff/main'
     user: ''
     password: ''

With Anne, we have been working on a diffing algorithm between Famix models.
The idea is that having models of two versions of the same system, you
can generate the list of changes (add/delete/move/rename) that bring the
first model to the second.

Still work in progress, but we are dealing with the main entities:
package/namespaces, classes, methods, variables

Nicolas (& Anne)

--
Nicolas Anquetil -- RMod research team (Inria)

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

Re: FamixDiff

Tudor Girba-2
Interesting. How is this different from Hismo?

Doru


On Wed, Jul 31, 2013 at 11:02 AM, Nicolas Anquetil <[hidden email]> wrote:

announcing version 0.9 of FamixDiff:

MCHttpRepository
    location: 'http://www.smalltalkhub.com/mc/Moose/FamixDiff/main'
    user: ''
    password: ''

With Anne, we have been working on a diffing algorithm between Famix models.
The idea is that having models of two versions of the same system, you can generate the list of changes (add/delete/move/rename) that bring the first model to the second.

Still work in progress, but we are dealing with the main entities: package/namespaces, classes, methods, variables

Nicolas (& Anne)

--
Nicolas Anquetil -- RMod research team (Inria)

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



--

"Every thing has its own flow"

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

Re: FamixDiff

Nicolas Anquetil

I don't know :-)

I always thought of hismo as comparing metrics values between two models
Does it compare the model entity by entity?
Trying to define what entities were
- added
- deleted
- renamed
- moved

please don't tell me we did all this for nothing :-(

nicolas


On 07/31/2013 11:17 AM, Tudor Girba wrote:
Interesting. How is this different from Hismo?

Doru


On Wed, Jul 31, 2013 at 11:02 AM, Nicolas Anquetil <[hidden email]> wrote:

announcing version 0.9 of FamixDiff:

MCHttpRepository
    location: 'http://www.smalltalkhub.com/mc/Moose/FamixDiff/main'
    user: ''
    password: ''

With Anne, we have been working on a diffing algorithm between Famix models.
The idea is that having models of two versions of the same system, you can generate the list of changes (add/delete/move/rename) that bring the first model to the second.

Still work in progress, but we are dealing with the main entities: package/namespaces, classes, methods, variables

Nicolas (& Anne)

--
Nicolas Anquetil -- RMod research team (Inria)

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



--

"Every thing has its own flow"


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

-- 
Nicolas Anquetil -- RMod research team (Inria)

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

Re: FamixDiff

Tudor Girba-2
By what you say, it sounds like a particular case of Hismo.

What Hismo does is to create a history model at entity level. So, you will have a ClassHistory with multiple ClassVersions corresponding to actual FAMIXClasses from different versions. Based on this information, you can aggregate historical properties based on version properties. But, you can also ask a ClassHistory if it is isRemoved or isLateBorn.

By manufacturing histories out of individual snapshots, you need a heuristic for identifying the identity of an entity. Right now, Hismo uses the mooseName for entities. Thus, moving a class between namespaces will not be captured in this way, but it can be identified after the main model has been built by applying heuristics that compare classes that died in one version with classes that appeared in the next version.

Cheers,
Doru


On Wed, Jul 31, 2013 at 2:03 PM, Nicolas Anquetil <[hidden email]> wrote:

I don't know :-)

I always thought of hismo as comparing metrics values between two models
Does it compare the model entity by entity?
Trying to define what entities were
- added
- deleted
- renamed
- moved

please don't tell me we did all this for nothing :-(

nicolas



On 07/31/2013 11:17 AM, Tudor Girba wrote:
Interesting. How is this different from Hismo?

Doru


On Wed, Jul 31, 2013 at 11:02 AM, Nicolas Anquetil <[hidden email]> wrote:

announcing version 0.9 of FamixDiff:

MCHttpRepository
    location: 'http://www.smalltalkhub.com/mc/Moose/FamixDiff/main'
    user: ''
    password: ''

With Anne, we have been working on a diffing algorithm between Famix models.
The idea is that having models of two versions of the same system, you can generate the list of changes (add/delete/move/rename) that bring the first model to the second.

Still work in progress, but we are dealing with the main entities: package/namespaces, classes, methods, variables

Nicolas (& Anne)

--
Nicolas Anquetil -- RMod research team (Inria)

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



--

"Every thing has its own flow"


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

-- 
Nicolas Anquetil -- RMod research team (Inria)

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




--

"Every thing has its own flow"

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

Re: FamixDiff

Nicolas Anquetil

OK, so it seems we did not work in vain after all.

What FamixDiff does seems to be an extension of Hismo as you describe in the end of your mail:
- first it matches entities by their names in a way similar to Hismo
- second it applies heuristics to match entities that have been moved (something Hismo does not do if I understand correctly)
- third, applying similar heuristics, it matches entities that have been renamed

From this, it generates a list of changes describing what happened between the 2 models (all identical matches, rename, move, addition, deletion).

Currently moving and renaming heuristics are based on exact match between all incoming and outgoing associations of the entity, as well as its "children entities".

But we plan to allow for a little bit of variation so that a method that was moved to another class and gained one new parameter in the process could still be accepted.

So in the end, may be FamixDiff can be used to  improve Hismo?

FamixDiff also works with Orion model that allow to keep several versions of a model in a memory efficient way.
So once we computed the diff between two models, we will be able to express it in terms of Orion changes, and we can have many versions of big models.
That is to say instead of keeping in memory two Famix models, we will have one Orion model + the deltas that transform it into the second model.

nicolas

On 07/31/2013 05:14 PM, Tudor Girba wrote:
By what you say, it sounds like a particular case of Hismo.

What Hismo does is to create a history model at entity level. So, you will have a ClassHistory with multiple ClassVersions corresponding to actual FAMIXClasses from different versions. Based on this information, you can aggregate historical properties based on version properties. But, you can also ask a ClassHistory if it is isRemoved or isLateBorn.

By manufacturing histories out of individual snapshots, you need a heuristic for identifying the identity of an entity. Right now, Hismo uses the mooseName for entities. Thus, moving a class between namespaces will not be captured in this way, but it can be identified after the main model has been built by applying heuristics that compare classes that died in one version with classes that appeared in the next version.

Cheers,
Doru


On Wed, Jul 31, 2013 at 2:03 PM, Nicolas Anquetil <[hidden email]> wrote:

I don't know :-)

I always thought of hismo as comparing metrics values between two models
Does it compare the model entity by entity?
Trying to define what entities were
- added
- deleted
- renamed
- moved

please don't tell me we did all this for nothing :-(

nicolas



On 07/31/2013 11:17 AM, Tudor Girba wrote:
Interesting. How is this different from Hismo?

Doru


On Wed, Jul 31, 2013 at 11:02 AM, Nicolas Anquetil <[hidden email]> wrote:

announcing version 0.9 of FamixDiff:

MCHttpRepository
    location: 'http://www.smalltalkhub.com/mc/Moose/FamixDiff/main'
    user: ''
    password: ''

With Anne, we have been working on a diffing algorithm between Famix models.
The idea is that having models of two versions of the same system, you can generate the list of changes (add/delete/move/rename) that bring the first model to the second.

Still work in progress, but we are dealing with the main entities: package/namespaces, classes, methods, variables

Nicolas (& Anne)

--
Nicolas Anquetil -- RMod research team (Inria)

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



--

"Every thing has its own flow"


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

-- 
Nicolas Anquetil -- RMod research team (Inria)

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




--

"Every thing has its own flow"


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

-- 
Nicolas Anquetil -- RMod research team (Inria)

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