apache / datafu
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
pig
properties
xsl
builder
txt
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main17158 LOC (52%) 225 files
test11141 LOC (34%) 78 files
generated0 LOC (0%) 0 files
build and deployment851 LOC (2%) 15 files
other3381 LOC (10%) 42 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pig
xsl
builder
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 225 files match defined criteria (17,158 LOC, 100.0% vs. main code):
    • 186 *.java files (14,614 LOC)
    • 7 *.scala files (982 LOC)
    • 1 *.css files (340 LOC)
    • 9 *.erb files (323 LOC)
    • 6 *.pig files (265 LOC)
    • 3 *.groovy files (168 LOC)
    • 1 *.xsl files (153 LOC)
    • 4 *.py files (107 LOC)
    • 3 *.rb files (100 LOC)
    • 1 *.less files (53 LOC)
    • 1 *.rdf files (35 LOC)
    • 1 *.builder files (14 LOC)
    • 1 *.html files (3 LOC)
    • 1 *.js files (1 LOC)
  • " *.java" is biggest, containing 85.17% of LOC.
  • " *.js" is smallest, containing 0.01% of LOC.


*.java14614 LOC (85%) 186 files
*.scala982 LOC (5%) 7 files
*.css340 LOC (1%) 1 file
*.erb323 LOC (1%) 9 files
*.pig265 LOC (1%) 6 files
*.groovy168 LOC (<1%) 3 files
*.xsl153 LOC (<1%) 1 file
*.py107 LOC (<1%) 4 files
*.rb100 LOC (<1%) 3 files
*.less53 LOC (<1%) 1 file
*.rdf35 LOC (<1%) 1 file
*.builder14 LOC (<1%) 1 file
*.html3 LOC (<1%) 1 file
*.js1 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/test[.].*".
  • 78 files match defined criteria (11,141 LOC, 64.9% vs. main code):
    • 68 *.java files (10,234 LOC)
    • 5 *.scala files (799 LOC)
    • 3 *.py files (100 LOC)
    • 2 *.sh files (8 LOC)
  • " *.java" is biggest, containing 91.86% of LOC.
  • " *.sh" is smallest, containing 0.07% of LOC.


*.java10234 LOC (91%) 68 files
*.scala799 LOC (7%) 5 files
*.py100 LOC (<1%) 3 files
*.sh8 LOC (<1%) 2 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
  • 15 files match defined criteria (851 LOC, 5.0% vs. main code):
    • 14 *.gradle files (772 LOC)
    • 1 *.sh files (79 LOC)
  • " *.gradle" is biggest, containing 90.72% of LOC.
  • " *.sh" is smallest, containing 9.28% of LOC.


*.gradle772 LOC (90%) 14 files
*.sh79 LOC (9%) 1 file
Other Code
pig
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]markdown".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]properties".
  • 42 files match defined criteria (3,381 LOC, 19.7% vs. main code):
    • 21 *.markdown files (1,775 LOC)
    • 6 *.java files (862 LOC)
    • 9 *.md files (539 LOC)
    • 3 *.pig files (138 LOC)
    • 2 *.properties files (53 LOC)
    • 1 *.rb files (14 LOC)
  • " *.markdown" is biggest, containing 52.5% of LOC.
  • " *.rb" is smallest, containing 0.41% of LOC.


*.markdown1775 LOC (52%) 21 files
*.java862 LOC (25%) 6 files
*.md539 LOC (15%) 9 files
*.pig138 LOC (4%) 3 files
*.properties53 LOC (1%) 2 files
*.rb14 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:38