Good evening,
I have just pushed a new version of the FamixGenerator tool to my website.
So if you want to give it a try:
http://www.sharpmetrics.net/index.php/famix-generator
I have added a couple of features, like
* export of method invocations for FAMIX 3.0 models
* export of local variable and parameter access.
* several bug fixes
* and last but not least: export of generated C#-like code, which can be
"attached" inside MOOSE
(more is written in the readme file inside the zip file.)
The tools does still export Famix 2 and 3.0 models, but currently I am struggling with the
Famix 2.1 models for CodeCity. I think this relates to "analysis" and export of
generic classes and generic type instances. This feature is not yet complete, so this
might be the reason. I will investigate that issue in the next weeks.
If you want to view a city inside MOOSE, you can try the following script (if you have the
new CodeCity for MOOSE installed):
| models builder |
models := MooseModel root allModels.
builder := CCBuilder new.
models notEmpty
ifTrue: [
| packages classes classNormalizer packageNormalizer |
builder packingLayout.
packages := models first allModelNamespaces.
classes := packages flatCollect: #classes.
packageNormalizer := CCColorNormalizer new
low: (Color gray: 0.6);
high: (Color gray: 0.95);
transformation: #numberOfClasses;
population: packages.
builder shapeBuilder platform color: packageNormalizer.
builder nodes: packages.
classNormalizer := CCColorNormalizer new
low: (Color gray: 0.25);
high: Color blue;
transformation: #weightedMethodCount;
population: classes.
builder shapeBuilder box
color: classNormalizer;
height: #numberOfMethods;
width: #numberOfAttributes;
depth: #numberOfAttributes.
builder nodes: classes.
builder nest: packages node: #yourself in: #parentScope.
builder nest: classes node: #yourself in: #namespaceScope ].
builder open
As you can see this script uses Famixnamespaces ('allModelNamespaces' and
'namespaceScope'). This is because the FamixGenerator currently does not export
FamixPackages. This is also on my agenda...
Good night and take care,
Thomas