Defect¶ ↑
-
also find as dependency a class inside an annotation. This is likely a
String
, still could find it @IdClass(ChangeHistoryDetailPK.class) class …
Tools¶ ↑
-
find boundaries of my own code, i.e. find leafs of my dependency hull
-
find all without dependency on my code
-
find all with one dependency to these
-
etc.
-
Classpath (JavaClass::Classpath
)¶ ↑
-
WARs and EARs contain JARs and a folder
Class File Format (JavaClass::ClassFile
)¶ ↑
-
implement byte code awareness
-
add the byte code sequences to the methods so it can be analysed later (see JVM spec)
-
scanning of byte code for numbers, which methods loaded, which fields loaded
-
-
see what similar project by unageanu has to offer ;-)
Class Analysis, on a single class (JavaClass::ClassScanner
)¶ ↑
-
count outgoing references (usage) per method, similar to general imported types
-
display graph of fields and methods per class and which methods use/call which (as seen in “Code Blindness”)
Metrics/Analysis across a whole classpath (JavaClass::Analyse
)¶ ↑
-
add collecting of incoming references (mark my interfaces, mark my referenced classes)
-
can calculate stability
-
find interfaces with only 1 implementation (smell?)
-
-
“Greed Detector” = “metric” if all referencing classes of a class is another package, propose moving it there.
-
count outgoing references (usage) per method
-
which signatures are called how often
-
maybe move current method there?
-
-
Evolutionary architecture and emergent design: Emergent design through metrics
Test¶ ↑
-
test with a large set of classes
-
use all classes of all JDKs against javap (compileTheWorld)
-
use the Quality Corpus
-
-
improve test coverage