facebook / openbmc-qemu
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 (47 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 47 components.
  • 4,052 files, 1,068,297 lines of code (100.0% vs. main code).
  • "hw" is biggest, containing 48.39% of code.
  • "storage-daemon" is smallest, containing 0.03% of code.


hw516911 LOC (48%) 1375 files
include75034 LOC (7%) 1024 files
block60153 LOC (5%) 90 files
disas51661 LOC (4%) 36 files
linux-user35247 LOC (3%) 311 files
tcg34573 LOC (3%) 52 files
ROOT31076 LOC (2%) 31 files
ui28200 LOC (2%) 71 files
util21708 LOC (2%) 96 files
migration19861 LOC (1%) 46 files
scripts19274 LOC (1%) 128 files
softmmu14599 LOC (1%) 26 files
accel12226 LOC (1%) 46 files
net11123 LOC (1%) 40 files
crypto9896 LOC (<1%) 60 files
linux-headers9427 LOC (<1%) 56 files
qga9231 LOC (<1%) 23 files
audio8764 LOC (<1%) 24 files
contrib8449 LOC (<1%) 37 files
subprojects8343 LOC (<1%) 42 files
tools8183 LOC (<1%) 20 files
chardev6501 LOC (<1%) 25 files
bsd-user6374 LOC (<1%) 67 files
libdecnumber6255 LOC (<1%) 5 files
monitor6163 LOC (<1%) 9 files
pc-bios5382 LOC (<1%) 40 files
fpu5209 LOC (<1%) 4 files
backends4573 LOC (<1%) 24 files
io4095 LOC (<1%) 13 files
nbd3593 LOC (<1%) 6 files
python3237 LOC (<1%) 26 files
qapi3138 LOC (<1%) 15 files
qom2904 LOC (<1%) 7 files
qobject2248 LOC (<1%) 16 files
dump1915 LOC (<1%) 4 files
fsdev1880 LOC (<1%) 13 files
scsi1798 LOC (<1%) 7 files
replay1767 LOC (<1%) 13 files
gdb-xml1384 LOC (<1%) 36 files
semihosting1231 LOC (<1%) 4 files
trace1057 LOC (<1%) 11 files
plugins1033 LOC (<1%) 4 files
stubs668 LOC (<1%) 49 files
authz657 LOC (<1%) 6 files
ebpf568 LOC (<1%) 5 files
po449 LOC (<1%) 8 files
storage-daemon279 LOC (<1%) 1 files
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.



2022-04-15 00:49