apache / nifi-minifi-cpp
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
txt
patch
feature
properties
cfg
lua
in
ll
gitattributes
yy
pri
gitmodules
clang-tidy
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.

main103309 LOC (59%) 1,153 files
test57963 LOC (33%) 572 files
generated0 LOC (0%) 0 files
build and deployment2358 LOC (1%) 22 files
other9826 LOC (5%) 161 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
yy
ll
in
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1153 files match defined criteria (103,309 LOC, 100.0% vs. main code):
    • 416 *.cpp files (51,916 LOC)
    • 599 *.h files (40,404 LOC)
    • 84 *.cmake files (6,045 LOC)
    • 16 *.c files (2,336 LOC)
    • 18 *.java files (1,802 LOC)
    • 5 *.py files (388 LOC)
    • 1 *.yy files (188 LOC)
    • 1 *.ll files (89 LOC)
    • 2 *.xml files (76 LOC)
    • 2 *.in files (42 LOC)
    • 5 *.cfg files (13 LOC)
    • 1 *.yml files (6 LOC)
    • 3 *.dockerignore files (4 LOC)
  • " *.cpp" is biggest, containing 50.25% of LOC.
  • " *.dockerignore" is smallest, containing 0% of LOC.


*.cpp51916 LOC (50%) 416 files
*.h40404 LOC (39%) 599 files
*.cmake6045 LOC (5%) 84 files
*.c2336 LOC (2%) 16 files
*.java1802 LOC (1%) 18 files
*.py388 LOC (<1%) 5 files
*.yy188 LOC (<1%) 1 file
*.ll89 LOC (<1%) 1 file
*.xml76 LOC (<1%) 2 files
*.in42 LOC (<1%) 2 files
*.cfg13 LOC (<1%) 5 files
*.yml6 LOC (<1%) 1 file
*.dockerignore4 LOC (<1%) 3 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
feature
lua
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[.]feature".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*[-]tests/.*".
  • 572 files match defined criteria (57,963 LOC, 56.1% vs. main code):
    • 267 *.cpp files (41,031 LOC)
    • 49 *.h files (5,642 LOC)
    • 145 *.py files (5,163 LOC)
    • 58 *.yml files (2,900 LOC)
    • 31 *.feature files (2,653 LOC)
    • 9 *.xml files (246 LOC)
    • 4 *.java files (160 LOC)
    • 1 *.bat files (64 LOC)
    • 1 *.yaml files (36 LOC)
    • 1 *.sh files (34 LOC)
    • 4 *.lua files (29 LOC)
    • 2 *.cfg files (5 LOC)
  • " *.cpp" is biggest, containing 70.79% of LOC.
  • " *.cfg" is smallest, containing 0.01% of LOC.


*.cpp41031 LOC (70%) 267 files
*.h5642 LOC (9%) 49 files
*.py5163 LOC (8%) 145 files
*.yml2900 LOC (5%) 58 files
*.feature2653 LOC (4%) 31 files
*.xml246 LOC (<1%) 9 files
*.java160 LOC (<1%) 4 files
*.bat64 LOC (<1%) 1 file
*.yaml36 LOC (<1%) 1 file
*.sh34 LOC (<1%) 1 file
*.lua29 LOC (<1%) 4 files
*.cfg5 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 ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*/[.]gitattributes".
  • 22 files match defined criteria (2,358 LOC, 2.3% vs. main code):
    • 18 *.sh files (1,981 LOC)
    • 2 *.bat files (220 LOC)
    • 2 *.xml files (157 LOC)
  • " *.sh" is biggest, containing 84.01% of LOC.
  • " *.xml" is smallest, containing 6.66% of LOC.


*.sh1981 LOC (84%) 18 files
*.bat220 LOC (9%) 2 files
*.xml157 LOC (6%) 2 files
Other Code
txt
properties
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like ".*[.]patch".
  • 161 files match defined criteria (9,826 LOC, 9.5% vs. main code):
    • 88 *.txt files (4,088 LOC)
    • 20 *.md files (3,389 LOC)
    • 23 *.yml files (936 LOC)
    • 12 *.properties files (734 LOC)
    • 6 *.c files (269 LOC)
    • 1 *.xml files (155 LOC)
    • 8 *.py files (129 LOC)
    • 1 *.json files (94 LOC)
    • 2 *.lua files (32 LOC)
  • " *.txt" is biggest, containing 41.6% of LOC.
  • " *.lua" is smallest, containing 0.33% of LOC.


*.txt4088 LOC (41%) 88 files
*.md3389 LOC (34%) 20 files
*.yml936 LOC (9%) 23 files
*.properties734 LOC (7%) 12 files
*.c269 LOC (2%) 6 files
*.xml155 LOC (1%) 1 file
*.py129 LOC (1%) 8 files
*.json94 LOC (<1%) 1 file
*.lua32 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2023-08-10 16:42