Commit 7077b7cc authored by Astlo's avatar Astlo
Browse files

Debut Too Many Methods

parent ed17eb88
...@@ -31,9 +31,12 @@ helper def: allMeasures(project : java!Model): Set(smm!Measure) = ...@@ -31,9 +31,12 @@ helper def: allMeasures(project : java!Model): Set(smm!Measure) =
helper def: nbClasses(s:Sequence(java!ClassDeclaration)) : Integer = helper def: nbClasses(s:Sequence(java!ClassDeclaration)) : Integer =
-- Parcours de la séquence des classes -- Parcours de la séquence des classes
s->iterate(i; res : Integer = 0 | s->iterate(i; res : Integer = 0 |
-- Récupération du nombre de FieldDeclaration dans la classe et incrémentation de la métrique de 1 si ça dépasse la limite. -- Récupération du nombre de MethodDeclaration dans la classe et incrémentation de la métrique de 1 si ça dépasse la limite.
-- SUr l'exemple bank.xmi, il suffit de changer la limite. Avec une limite de 10, il y a une classe qui ne respecte pas la règle. Avec une limite de 4, il y a deux classes qui ne la respecte pas. -- Sur l'exemple bank.xmi, il suffit de changer la limite. Avec une limite de 10, il y a deux classes qui ne respecte pas la règle. Avec une limite de 4, il y a quatre classes qui ne la respecte pas.
if (Sequence{i}->collect(e | e.bodyDeclarations)->first() -> select(r | java!FieldDeclaration.allInstances()->includes(r))->size()) > 15 if (Sequence{i}->collect(iterator | iterator.bodyDeclarations)->first() -> select(iterator | java!MethodDeclaration.allInstances()->includes(iterator))
->collect(iterator | iterator.name)
->reject(iterator | iterator->startsWith('get') or iterator->startsWith('set') or iterator->startsWith('is'))->size()) > 4
--get set is
then res + 1 then res + 1
else res else res
endif endif
...@@ -65,7 +68,7 @@ rule tooManyFields() { ...@@ -65,7 +68,7 @@ rule tooManyFields() {
measurements <- measurement measurements <- measurement
), ),
noc: smm!DimensionalMeasure ( noc: smm!DimensionalMeasure (
name <- 'Number of Class with Too Many Fields' name <- 'Number of Class with Too Many Methods'
), ),
measurement: smm!DirectMeasurement ( measurement: smm!DirectMeasurement (
-- Nous récupèrons toutes les classes pour les passes en paramètres de la fonction -- Nous récupèrons toutes les classes pour les passes en paramètres de la fonction
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment