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

research:cultivate:smelldetectorsandmetrics_v0_3m2 [2018/05/09 01:59]
research:cultivate:smelldetectorsandmetrics_v0_3m2 [2018/05/09 01:59] (current)
Line 1: Line 1:
  
 +===== Smell Detectors and Metrics for Cultivate 0.3 Milestone 2 =====
 +
 +==== 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_v0_3m2.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019