facebookincubator / Battery-Metrics
Components & Dependencies

An overview of source code logical components.

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 1 logical decomposition:

  • primary (45 components)

Logical Decomposition #1: PRIMARY

The decompositions is based on the folder structure (relative to the source code root), with automatically defined folder depth to have at least 12 components.

Bubble Chart | Tree Map
Components
The "primary" logical decomposition has 45 components.
  • 85 files, 5,690 lines of code (100.0% vs. main code).
  • "metrics/src/main/java/com/facebook/battery/metrics/network" is biggest, containing 12.99% of code.
  • "sample/src/main/res/values" is smallest, containing 0.07% of code.


metrics/src/main/java/com/facebook/battery/metrics/network739 LOC (12%) 11 files
metrics/src/main/java/com/facebook/battery/metrics/cpu504 LOC (8%) 5 files
metrics/src/main/java/com/facebook/battery/metrics/healthstats469 LOC (8%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/sensor370 LOC (6%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/wakelock363 LOC (6%) 3 files
metrics/src/main/java/com/facebook/battery/metrics/core332 LOC (5%) 7 files
metrics/src/main/java/com/facebook/battery/metrics/composite272 LOC (4%) 4 files
sample/src/main/java/com/facebook/battery/sample272 LOC (4%) 3 files
metrics/src/main/java/com/facebook/battery/metrics/disk227 LOC (3%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/appwakeup223 LOC (3%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/devicebattery206 LOC (3%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/camera195 LOC (3%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/memory181 LOC (3%) 2 files
metrics/src/main/java/com/facebook/battery/metrics/bluetooth171 LOC (3%) 2 files
serializers/src/main/java/com/facebook/battery/serializer/healthstats147 LOC (2%) 1 files
metrics/src/main/java/com/facebook/battery/metrics/time84 LOC (1%) 2 files
serializers/src/main/java/com/facebook/battery/serializer/composite80 LOC (1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/cpu75 LOC (1%) 2 files
reporters/src/main/java/com/facebook/battery/reporter/network55 LOC (<1%) 2 files
serializers/src/main/java/com/facebook/battery/serializer/wakelock49 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/appwakeup48 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/disk44 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/cpu43 LOC (<1%) 2 files
serializers/src/main/java/com/facebook/battery/serializer/disk40 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/wakelock38 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/memory34 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/memory32 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/devicebattery30 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/network30 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/bluetooth30 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/composite30 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/core28 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/sensor28 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/camera26 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/bluetooth25 LOC (<1%) 1 files
serializers/src/main/java/com/facebook/battery/serializer/time24 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/healthstats22 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/sensor22 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/appwakeup21 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/camera18 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/time18 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/devicebattery16 LOC (<1%) 1 files
reporters/src/main/java/com/facebook/battery/reporter/core15 LOC (<1%) 1 files
sample/src/main/res/mipmap-anydpi-v2610 LOC (<1%) 2 files
sample/src/main/res/values4 LOC (<1%) 1 files
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.



2022-04-15 01:22