nitc :: MIFC :: defaultinit
# Module metric: proportion of abstract, concrete and extern Class Inherited From
#
# Count classes that have at least a child
class MIFC
super MModuleMetric
super FloatMetric
redef fun name do return "mifc"
redef fun desc do return "proportion of class_kind inherited from"
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
var nb = 0
for mclass in mmodule.intro_mclasses do
if mclass.kind == abstract_kind or mclass.kind == concrete_kind or mclass.kind == extern_kind then
if mclass.in_hierarchy(mainmodule).direct_smallers.length > 0 then count += 1
end
nb += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / nb.to_f
end
end
end
end
src/metrics/inheritance_metrics.nit:210,1--236,3