You are right. They work fine on the Java models.
The only one that crashes is FAMIXClass>>isBrainClass.
After looking at the information the debugger gave me, it seems that
the #F_NOBM (what does the F stand for?) is evaluated to nil.
Although there is a #numberOfBrainMethods methods in the "properties"
protocol of FAMIXClass, it is not defined using the property-pragma
and probably that's why the strategies are not able to find it. I
tried modifying the method, and it seemed to work fine like this:
longName: 'Number of Brain Methods'
description: 'The number of brain methods'>
^self lookUpPropertyNamed: #F_NOBM
computedAs: [(self methods select: #isBrainMethod) size]
I also noticed another method which also lacked the pragma:
On Oct 10, 2007, at 5:33 PM, Tudor Girba wrote:
I just implemented the detection strategies as they are in the book
of Michele and Radu, and these strategies use the metrics that are
implemented in iPlasma. However, I did not get the chance to
implement the metrics yet, but I just use them from the iPlasma
That is why, at the moment the strategies only work with models
exported by iPlasma.