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-tp4692748.html
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



--
www.tudorgirba.com

"Every thing has its own flow"