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)
Interesting. How is this different from Hismo?
Doru
On Wed, Jul 31, 2013 at 11:02 AM, Nicolas Anquetil < Nicolas.Anquetil@inria.fr> wrote:
announcing version 0.9 of FamixDiff:
MCHttpRepository location: 'http://www.smalltalkhub.com/**mc/Moose/FamixDiff/mainhttp://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 Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/**mailman/listinfo/moose-devhttps://www.iam.unibe.ch/mailman/listinfo/moose-dev
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 <Nicolas.Anquetil@inria.fr mailto:Nicolas.Anquetil@inria.fr> 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 Moose-dev@iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com http://www.tudorgirba.com
"Every thing has its own flow"
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
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 <Nicolas.Anquetil@inria.fr
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 < Nicolas.Anquetil@inria.fr> 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 Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"Every thing has its own flow"
Moose-dev mailing listMoose-dev@iam.unibe.chhttps://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- Nicolas Anquetil -- RMod research team (Inria)
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
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 <Nicolas.Anquetil@inria.fr mailto:Nicolas.Anquetil@inria.fr> 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 <Nicolas.Anquetil@inria.fr <mailto:Nicolas.Anquetil@inria.fr>> 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 Moose-dev@iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch> https://www.iam.unibe.ch/mailman/listinfo/moose-dev -- www.tudorgirba.com <http://www.tudorgirba.com> "Every thing has its own flow" _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- Nicolas Anquetil -- RMod research team (Inria) _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com http://www.tudorgirba.com
"Every thing has its own flow"
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev