Hi Sergio,
Nice to hear from you.
We use MOF as a meta-meta-model. FAMIX is an instance of MOF and it
is used as a meta-model. So, when you analyze a program you will get
a model that conforms to FAMIX.
FAMIX is a language independent meta-model, meaning that it is
basically a common denominator of various languages. For example, you
will not get all details of the AST in it, but you will get
invocations (calls between methods) and accesses (from methods to
variables).
A UML-like diagram of the current FAMIX 2.2 can be found at:
http://smallwiki.unibe.ch/moose/famixcore2.2metamodel/
So, if you want to define transformations and generate code, you will
probably need a more detailed model than FAMIX. But, if you just want
to reason about the code without caring much about the AST, than
FAMIX is more suitable.
However, given that Moose works at the level of the meta-meta-model,
it can accommodate other meta-models as well. For example, we have a
meta-model for analyzing dynamic information (Dynamix), historical
information (Hismo) or CVS information (Chronia).
We are now working on FAMIX 3.0. With this occasion we will redefine
some terms. For example, what is now known as FAMIX will become FAMIX-
Core, and we will explicitly define extensions to this Core.
For further questions, we strongly advise to join our moose-dev
mailing list at:
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Cheers,
Doru
On Oct 22, 2007, at 10:57 AM, Sergio Castro wrote:
Dear MOOSE team,
I am interested in understanding if I can used MOOSE for my research,
but I am currently a bit confused about a couple of things.
My idea was to use a language independent model of an object oriented
program, and querying this model for obtaining Intensional Views of
the
software. After, I would like to make transformations on this model
if I
detect that some constraints over these software views do not hold,
and
finally generate source code that reflect the transformations
accomplished in the model.
My question is if the program representation used by MOOSE is rich
enough to define over it any kind of software views based on the
structural relationships of the source code elements the model was
built
from. Or in other words, which information from the source code I lost
when I build my model in MOOSE?
Another issue that confuses me is about FAMIX, from the "The Story of
Moose" paper written by Nierstrasz, Ducasse and G?rba, it seemed to me
that the FAMIX model was replaced with a MOF like meta model, but I
found in the Moose wiki (
http://smallwiki.unibe.ch/moose) a comment
about the development of Famix 3.0. Is then FAMIX still part of MOOSE?
or I misunderstood and the new MOF like meta model is a reengineered
version of FAMIX?
thanks in advance for any comment or orientation,
Sergio Castro
_______________________________________________
Moose mailing list
Moose(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose
--
www.iam.unibe.ch/~girba
www.iam.unibe.ch/~girba/blog/
"Being happy is a matter of choice."