On 18 mars 09, at 09:28, Bergel, Alexandre wrote:
I have always encountered troubles understanding the maelstrom famix2/famix3/fame. Shame on me, I probably did not spend enough time on reading paper and trying them out. I removed FAMIXFunction since Simon told me that the core was meant to not be manually reprogrammed. Since I have no idea how to describes FAMIXFunction in Fame, I am playing on the safe side.
Actually having FAMIXFunction in the Core is not a problem, as long as it only contains metadescribed attributes and classes. As Doru says, the goal is to have a generative and auto-testing core through Fame export/generation. Then, for example, methods belonging to FAMIXFunction but not metadescribed should be class extensions defined in their own package.
However, I would like to keep the FAMIX-Core minimal as I believe it is quite complete.
Here is the current structure of Famix3 packages
Famix-Core: meta-described entities and attributes Famix-Implementation: mostly generic class extensions, like helper methods, which can not be meta-described Famix-Extensions: quite generic stuff, but does not belong to core, like metrics, the Visitor... Famix-Smalltalk: class extensions and classes specific to Smalltalk model (for example, FAMIXMethod is extended with a #categories attribute) Famix-Java: class extensions and classes specific to Java model Famix-File: an extension to describe a file structure etc.
My recommendation: do your stuff in your own package, dont think about the metadescriptions, you can integrate them later once your model has settled. It will be easier.
Cheers, Alexandre
On 17 Mar 2009, at 23:46, Tudor Girba wrote:
Hi Alex,
I saw that you removed FAMIXFunction from FAMIX-Core. Is there a particular reason for this?
But, there is a larger issue here. FAMIX-Core is not meant to be programmed, but instead it should be generate-able from the MSE specification of FAMIX. So, basically a test should be to create an MSE from the descriptions from FAMIX-Core and then regenerate exactly the same classes back.
Like this, we can make sure that it remains portable and in sync (via Fame) with implementations in other languages.
To deal with the implementation details, there is a Famix- Implementation package.
Cheers, Doru
-- www.tudorgirba.com
"Not knowing how to do something is not an argument for how it cannot be done."
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- Simon