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(a)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(a)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(a)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(a)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(a)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(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Nicolas Anquetil -- RMod research team (Inria)