sevntu-checkstyle / dsm-maven-plugin

Maven plugin to create HTML report to show dependecies in DSM view.
14 stars 5 forks source link

DSM correctness #14

Closed sabaka closed 10 years ago

sabaka commented 10 years ago

Compare matrix with DSM from Sonar and check it correctness of dsm-maven.

sabaka commented 10 years ago

It's not correct (matrix not same with Sonar DSM for same code). Trying to find bug.

romani commented 10 years ago

Please provide 3 pictures/links: sonar, dtangler and dsm plugin for the same case. i need to see diff.

sabaka commented 10 years ago

dsm_dtangler dsm_site dsm_sonar

Looks like it's dtangler fail..

(look at checks->filters; grammars->api, grammars->checkstyle; api->filters, api->checks)

romani commented 10 years ago

is it due to generated sources, but in this case number have to be "3": checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaLexer.java checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaRecognizer.java checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/GeneratedJavaTokenTypes.java

or Dtangler treated ANTLR config checkstyle/src/checkstyle/com/puppycrawl/tools/checkstyle/grammars/java.g as Java source ? any way skip it?

can you test only other project ?

Please discuss with Daniil Yaroslavtsev the way to recheck correctness of Dtangler in Eclipse vs Sonar (to be able sort packages lines/colums in same way as Sonar to ease testing).

sabaka commented 10 years ago

About grammars: Dtangler requires compiled sources and analyzes class files (therefore we have '4' in grammars package). Another project: I've done it with log4j and get differencies too dsmm dsms

Now I counting it manually.

sabaka commented 10 years ago

After counting learned, that we are more correct than sonar! More: Lets try analize checkstyle project (few screenshots on the begining of issue). Now we have a bit different results (project is growing up). Our plugin: dsm_maven_test

Sonar: dsm_sonar_test1

As we can see - our project has found cycle dependence between com.puppycrawl.tools.checkstyle.api and com.puppycrawl.tools.checkstyle.grammars, but sonar has't found it. Let me prove our correctness: grammars - generated sources, that let us to use java grammars (it located into checkstyle/target/generated-sources). $ pwd ~/git/checkstyle/target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars $ grep -iranH "import com.puppycrawl.tools.checkstyle.api" * GeneratedJavaLexer.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST; GeneratedJavaRecognizer.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST; GeneratedJavaTokenTypes.java:5:import com.puppycrawl.tools.checkstyle.api.DetailAST;

Ok, we have one package dependence to api, let try find cycle. $ pwd ~/git/checkstyle/src/checkstyle/com/puppycrawl/tools/checkstyle/api $ grep -iranlH "import com.puppycrawl.tools.checkstyle.grammars" * FileContents.java TokenTypes.java And we have it!

Sometimes (it might depend on weather on the Mars) sonar considers dependencies from test classes, but i'm sure they doesn't show useful information about project complexity.

romani commented 8 years ago

This image is uploaded just be referenced in README.md file screenshot-dsm-maven-plugin-in-package