On Jul 25, 2012, at 3:42 PM, Andrea Caracciolo wrote:
Hi Stef,
I read your replies in the mailing list and i wanted to clarify some doubts.
As I understand, your points are the following:
- extend the FAMIX meta-model adding new meta-data to make the concept of "project
version" and "project" explicit.
not necessarily.
First the moose infrastructure.
- supporting the exchange of partial models
Yes.
To me it seems that both of the mentioned ideas
contradict the purpose of the MSE format.
MSE is good for packaging structural information about one single project snapshot.
If you want to represent a project and all of its versions as a whole, you need to come
up with a new representation format.
no :)
mse is a format to exchange data.
Also shrinking models looks quite hard. You end up
with a lot of broken dependencies and you need to generate a file which fits your personal
analysis requirements.
Not really. Have a look at MooseImportingContext it is there to manage that you always
save and load a coherent model. In fact I use it to import
coherent Smalltalk models. So loading is the same. You look at the graph dependencies and
pay attention that if you remove attributes you do not use something that requires it.
This is the job of the ImportingContext to manage that for you.
We should ask cyrille because I think that I remember that he worked on partial loading.
Now at the end some graph dependencies where
expressed in FAME and I lost track.
In my opinion, the best option would be to transition
to relational database as an intermediate representation medium.
Give a try and let
us know but I have some doubts.
Instead of exchanging models through mse files, you
replicate a certain set of DB entires.
Saving to relational databases graphs is not easy and simple.
For the moment imagine that we want to build a dashboard where we monitor some metrics.
you can write a script that
checkout source code
launch verveineJ
generate a new version in use
then you load the use file (filtering information if you can = make sense)
compute your metrics
save a strip down version of your model that fit the purpose of your analysis
now
since you want to do a trend analysis you load following the strategies developed by
andre
all the stripped versions, or just 10 of them and the latest….
and you compute your dashboard data.
To me a project: an entity managing files and sources, versions on a disk or whatever it
is stored .
After a project could have different loading strategies but well encapsulated.
Parsing of MSE is replaced by recursively exploring
the newly created database entries.
This would also allow to have different strategies for loading famix objects in memory.
Cheers
_____________________________
Andrea Caracciolo -- caracciolo(a)iam.unibe.ch
Software Composition Group
University of Bern