On 12/09/2017 11:58, Stéphane Ducasse wrote:
HiWe had the problem at Synectique and it is a complex issue
for certain metrics we need to compute the total amount of lines of code for the complete project.
FAMIXClass >> calculateARLCOMUnderstand"Class LCOM LOCC1 12 1000C2 2 50For C1 1000/1050 * 12For C2 50/1050 * 2"
self halt.^ self TR_LoC / self mooseModel TR_totalNumberOfLinesOfCode * self TR_LCOM
Now I have a question because totalNumberOfLinesOfCode does exist on Model but on TypeGroup
I wrote it like that on FAMIXTypeGroup
TR_totalNumberOfLinesOfCode<MSEProperty: #TR_totalNumberOfLinesOfCode type: #Number><derived><MSEComment: 'Total number of lines of code from Understand'>^ selflookUpPropertyNamed: #TR_totalNumberOfLinesOfCodecomputedAs: [ (self sumNumbers: [ :each | each TR_LoC ]) asFloat ]
How can I access for example totalNumberOfLinesOfCode at the model level?
(and no, we did not find a satisfactory solution)
For LOC specifically, in Smalltalk your solution can work, but not in Java, since classes and methods can contain inner/anonymous classes and you don't want to count them twice
The problem also exist in Ada (not with classes)
Second, there is also the larger problem of aggregation of a metric at some higher abstraction level
- some times you want to sum (e.g. LOC) ;
- sometimes it seems more reasonable to average (e.g. cyclomatic complexity at the level of classes) ;
- sometimes you want to recompute (e.g. coupling between 2 classes can often not be aggregated from the results of couplings between their methods) ;
- and also averaging is not always a good solution in itself and you want something more sophisticated (http://dx.doi.org/10.1002/smr.1558 )
nicolas
-- Nicolas Anquetil -- MCF (HDR) Project-Team RMod
_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev