GoogleCloudPlatform / fda-mystudies
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
plist
properties
project
cmd
storyboard
txt
hcl
editorconfig
pro
fsh
eslintignore
tern-project
gitattributes
vsh
policy
pb
prettierignore
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.

main347867 LOC (62%) 2,600 files
test24245 LOC (4%) 166 files
generated140059 LOC (24%) 1,231 files
build and deployment4234 LOC (<1%) 35 files
other44540 LOC (7%) 573 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
hcl
policy
fsh
vsh
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2600 files match defined criteria (347,867 LOC, 100.0% vs. main code):
    • 1,205 *.java files (146,905 LOC)
    • 299 *.m files (51,061 LOC)
    • 62 *.jsp files (45,294 LOC)
    • 177 *.swift files (34,668 LOC)
    • 74 *.html files (16,671 LOC)
    • 149 *.xml files (14,116 LOC)
    • 20 *.css files (7,290 LOC)
    • 12 *.js files (7,045 LOC)
    • 122 *.ts files (6,316 LOC)
    • 357 *.h files (6,184 LOC)
    • 41 *.scss files (4,170 LOC)
    • 19 *.sql files (2,842 LOC)
    • 17 *.tf files (2,086 LOC)
    • 38 *.yaml files (1,723 LOC)
    • 2 *.hcl files (1,157 LOC)
    • 1 *.policy files (219 LOC)
    • 1 *.fsh files (40 LOC)
    • 1 *.vsh files (36 LOC)
    • 2 *.tfvars files (35 LOC)
    • 1 *.bash files (9 LOC)
  • " *.java" is biggest, containing 42.23% of LOC.
  • " *.bash" is smallest, containing 0% of LOC.


*.java146905 LOC (42%) 1,205 files
*.m51061 LOC (14%) 299 files
*.jsp45294 LOC (13%) 62 files
*.swift34668 LOC (9%) 177 files
*.html16671 LOC (4%) 74 files
*.xml14116 LOC (4%) 149 files
*.css7290 LOC (2%) 20 files
*.js7045 LOC (2%) 12 files
*.ts6316 LOC (1%) 122 files
*.h6184 LOC (1%) 357 files
*.scss4170 LOC (1%) 41 files
*.sql2842 LOC (<1%) 19 files
*.tf2086 LOC (<1%) 17 files
*.yaml1723 LOC (<1%) 38 files
*.hcl1157 LOC (<1%) 2 files
*.policy219 LOC (<1%) 1 file
*.fsh40 LOC (<1%) 1 file
*.vsh36 LOC (<1%) 1 file
*.tfvars35 LOC (<1%) 2 files
*.bash9 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 ".*[-]tests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/karma[.]conf[.]js".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[.]spec[.]ts".
    • files with paths like ".*/protractor[.]conf[.]js".
    • files with paths like ".*/e2e/.*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/src/androidTest/.*".
  • 166 files match defined criteria (24,245 LOC, 7.0% vs. main code):
    • 115 *.java files (19,956 LOC)
    • 46 *.ts files (4,033 LOC)
    • 2 *.xml files (198 LOC)
    • 2 *.js files (51 LOC)
    • 1 *.sql files (7 LOC)
  • " *.java" is biggest, containing 82.31% of LOC.
  • " *.sql" is smallest, containing 0.03% of LOC.


*.java19956 LOC (82%) 115 files
*.ts4033 LOC (16%) 46 files
*.xml198 LOC (<1%) 2 files
*.js51 LOC (<1%) 2 files
*.sql7 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
plist
txt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/Pods/.*".
  • 1231 files match defined criteria (140,059 LOC, 40.3% vs. main code):
    • 267 *.hpp files (42,827 LOC)
    • 229 *.m files (30,494 LOC)
    • 166 *.swift files (20,555 LOC)
    • 36 *.mm files (11,179 LOC)
    • 414 *.h files (10,969 LOC)
    • 36 *.cpp files (10,316 LOC)
    • 45 *.plist files (3,499 LOC)
    • 22 *.md files (3,339 LOC)
    • 6 *.sh files (2,799 LOC)
    • 6 *.c files (2,031 LOC)
    • 2 *.markdown files (2,011 LOC)
    • 1 *.json files (25 LOC)
    • 1 *.txt files (15 LOC)
  • " *.hpp" is biggest, containing 30.58% of LOC.
  • " *.txt" is smallest, containing 0.01% of LOC.


*.hpp42827 LOC (30%) 267 files
*.m30494 LOC (21%) 229 files
*.swift20555 LOC (14%) 166 files
*.mm11179 LOC (7%) 36 files
*.h10969 LOC (7%) 414 files
*.cpp10316 LOC (7%) 36 files
*.plist3499 LOC (2%) 45 files
*.md3339 LOC (2%) 22 files
*.sh2799 LOC (1%) 6 files
*.c2031 LOC (1%) 6 files
*.markdown2011 LOC (1%) 2 files
*.json25 LOC (<1%) 1 file
*.txt15 LOC (<1%) 1 file
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 ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]bat".
  • 35 files match defined criteria (4,234 LOC, 1.2% vs. main code):
    • 21 *.xml files (3,651 LOC)
    • 10 *.sh files (394 LOC)
    • 3 *.gradle files (128 LOC)
    • 1 *.bat files (61 LOC)
  • " *.xml" is biggest, containing 86.23% of LOC.
  • " *.bat" is smallest, containing 1.44% of LOC.


*.xml3651 LOC (86%) 21 files
*.sh394 LOC (9%) 10 files
*.gradle128 LOC (3%) 3 files
*.bat61 LOC (1%) 1 file
Other Code
storyboard
plist
properties
txt
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 ".*[.]properties".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]markdown".
    • files with paths like ".*[.]storyboard".
    • files with paths like ".*[.]xib".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]pb".
  • 573 files match defined criteria (44,540 LOC, 12.8% vs. main code):
    • 329 *.json files (16,727 LOC)
    • 6 *.storyboard files (7,155 LOC)
    • 24 *.svg files (6,072 LOC)
    • 122 *.plist files (5,355 LOC)
    • 47 *.md files (5,227 LOC)
    • 2 *.markdown files (2,011 LOC)
    • 28 *.properties files (978 LOC)
    • 11 *.xib files (963 LOC)
    • 4 *.txt files (52 LOC)
  • " *.json" is biggest, containing 37.56% of LOC.
  • " *.txt" is smallest, containing 0.12% of LOC.


*.json16727 LOC (37%) 329 files
*.storyboard7155 LOC (16%) 6 files
*.svg6072 LOC (13%) 24 files
*.plist5355 LOC (12%) 122 files
*.md5227 LOC (11%) 47 files
*.markdown2011 LOC (4%) 2 files
*.properties978 LOC (2%) 28 files
*.xib963 LOC (2%) 11 files
*.txt52 LOC (<1%) 4 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-04 15:16