Hi,
Hismo aims to offer you the possibility to navigate both in space and in time. To this end, you need to always know where you are.
referenceVersion is similar to mooseModel in FAMIX entities. From any FAMIX entity you can quickly navigate to the model object. In the same way, from any version entity you can navigate to the top-most version (usually a version corresponding to a MooseModel instance).
Let's take an example. Imagine you have a history of 5 models (instances of MooseModel) holding FAMIX objects.
And now, imagine that the version of a class A in your hand, and you would want to know that it exists in the version 2. So, you would get the object corresponding to system version 2 and then use existsInReferenceVersion: to check your version object (see below):
existsInReferenceVersion: aReferenceVersion "answers if the history has a version in aReferenceVersion" ^(self versions select: [:each | each referenceVersion = aReferenceVersion]) isEmpty not
referenceVersion is supposed to be immutable (so you should not change it dynamically).
Does it answer the question?
Cheers, Doru
On Tue, Jun 11, 2013 at 11:10 AM, badja alan.mcnamara@badja.com wrote:
In the description of Girba, 2005, "Modeling History to understand Software Evolution", there is a small statement on "referenceVersion" in the Hismo metamodel:
"Each Version has a reference to the so called referenceVersion which provides a fixed point in the historical space."
This is implemented in Moose Hismo, but there is little description of its relevence to modelling. What is meant by "fixed point in the historical space"? In fact, there is an interface to set it to easily set it to nil!! (HismoEntityVersion class >> with:inHistory:)
Can Tudor or someone else able to describe why referenceVersion would be important in time based analysis?
Could this be, for example, the "baseline" to which other copies are compared? Can we have a different referenceVersions in different HismoHistoryGroups? Can we change the referenceVersion on the fly during analysis? I can see hints in the names of methods (e.g. isBornPriorToOrInReferenceVersion), but I can't quite catch the semantics.
Can you give some guidelines on which version should be selected as the referenceVersion, and why?
As I've described earlier, I'm trying to analyse different versions of system development schedules. I'm trying to use the Hismo framework to its best advantage, so I'm trying to understand the semantics as well as the code.
Alan.
-- View this message in context: http://forum.world.st/What-is-the-relevence-of-referenceVersion-in-Hismo-tp4... Sent from the Moose mailing list archive at Nabble.com. _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev