SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
research:cultivate:smelldetectorsandmetrics [2009/09/17 20:37]
127.0.0.1 external edit
research:cultivate:smelldetectorsandmetrics [2018/05/09 01:59] (current)
Line 1: Line 1:
  
 +====== Detectors in the final 0.3 version ======
 +
 +
 +
 +==== Metric detectors ====
 +
 +
 +Structure detectors evaluate certain structures and return a numeric value in a metric specific range for them, if they can be calculated (sometimes division by zero prevents calculation).
 +
 +
 +
 +Test are contained in prolog-tests/​org/​cs3/​cultivate/​pl/​metrics/​
 +
 +
 +
 +
 +
 +
 +^Metric^Granularity^Description^Test Case| 
 +|abstractness|package|number of abstract classes in category ÷ total number of classes in category|AbstractnessTest.java| ​
 +|afferent couplings (Ac)|package|number of classes outside this package that depend upon classes within this package|AfferentCouplingTest.java| ​
 +|depth of inheritance tree|class|number of steps up to Object in the inheritance tree|DepthOfInheritanceTreeTest.java| ​
 +|distance (normalized)|package|Dn = abs(Abstractness + Instability - 1)|DistanceTest.java| ​
 +|efferent couplings (Ec)|package|number of classes outside this package that classes within this package depend upon|EfferentCouplingTest.java| ​
 +|instability|package|Ec / (Ac + Ec) if Ac + Ec != 0 \\  0 otherwise|InstabilityTest.java| ​
 +|lcom2|class|lack of cohesion of methods \\  (excluding all trivial getters) \\  \\ 1 - (NumberOfMethodsAccessingFields/​(NumberOfMethods*NumberOfFields))|LCOM2Test.java| ​
 +|noc|class|number of children (number of direct subclasses)|NOCTest.java| ​
 +|number of abstract classes|package|number of abstract classes|NumberOfAbstractClassesTest.java| ​
 +|number of classes|package|number of classes, abstract classes and interfaces in a package|NumberOfClassesTest.java| ​
 +|number of descendants|class|nod = number of descendants (direct and indirect subclasses)|NumberOfDescendantsTest.java| ​
 +|number of interfaces|package|number of interfaces in a package|NumberOfInterfacesTest.java| ​
 +|number of overridden methods|class|norm = number of overridden methods|NumberOfOverriddenMethodsTest.java| ​
 +|six|class|specialization index \\  \\ (depthOfInheritanceTree*NumberOfOverriddenMethods)/​NumberOfMethods|SIXTest.java| ​
 +|static test coverage|class|percentage of public methods called by tests|StaticTestCoverageTest.java| ​
 +==== Smell Detectors ====
 +
 +
 +Structure detectors detect structures that are bad smells.
 +
 +
 +
 +Test are contained in prolog-tests/​org/​cs3/​cultivate/​pl/​smells/​
 +
 +
 +
 +
 +
 +
 +^Smell^Granularity^Description^Test Case| 
 +|no operation (nop)|statement|empty statements|NopSmellTest.java| ​
 +|misnamed testclass|class|test class that's name does not end with "​Test"​|MisnamedTestclassTest.java| ​
 +|sideeffects in getters|method|getters do more than calculate results and return them \\  \\  proposal: categories no side effects, possible side effects, known side effects|SideEffectInGetterTest.java| ​
 +|for testers only|method|finds methods that are only used by tests|ForTestersOnlyTest.java| ​
 +|package circularity|package|finds all strongly connected package components with more than one package in the package dependency graph| | 
 +==== Structure Detectors ====
 +
 +
 +Structure detectors detect structures like inheritance or package dependencies. Their results
 +are used in different diagrams.
 +
 +
 +
 +Test are contained in prolog-tests/​org/​cs3/​cultivate/​pl/​structures/​
 +
 +
 +
 +
 +
 +
 +^Structure^Granularity^Description^Test Case| 
 +|class dependency|class|checks whether on class depends on another or not|ClassDependencyTest.java| ​
 +|package dependency|package| | | 
 +|inheritance|class|checks if one class extends another|InheritanceTest.java| ​
 +==== Queries ====
 +
 +
 +Queries allow further investigation on certain PEFs from special views, sophisticated java analyzers etc.
 +
 +
 +
 +Test are contained in prolog-tests/​org/​cs3/​cultivate/​pl/​queries/​
 +
 +
 +
 +
 +
 +
 +^Query^Granularity^Description^Test Case| 
 +|full qualified name| | | | 
 +|location| | | | 
research/cultivate/smelldetectorsandmetrics.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019