Apache Pig
Components & Dependencies

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 2 logical decompositions:

  • primary (20 components)
  • backend (5 components)
Logical Decomposition #1: PRIMARY
The decompositions is based on folder structure at level 5 (relative to the source code root).
Components
The "primary" logical decomposition has 20 components.
  • 1,278 files, 156,535 lines of code (100.0% vs. main code).
  • "src/org/apache/pig/backend" is biggest, containing 36.93% of code.
  • "src/org/apache/pig/classification" is smallest, containing 0.01% of code.


src/org/apache/pig/backend57804 LOC (36%) 391 files
src/org/apache/pig/newplan18615 LOC (11%) 138 files
src/org/apache/pig/builtin14982 LOC (9%) 189 files
src/org/apache/pig/impl14977 LOC (9%) 134 files
contrib/piggybank/java/src/main12581 LOC (8%) 169 files
src/org/apache/pig/data9988 LOC (6%) 53 files
src/org/apache/pig/tools7825 LOC (4%) 46 files
src/org/apache/pig5019 LOC (3%) 60 files
src/org/apache/pig/scripting4603 LOC (2%) 34 files
src/org/apache/pig/parser3425 LOC (2%) 24 files
src/org/apache/pig/pen3185 LOC (2%) 16 files
lib-src/bzip2/org/apache/tools2154 LOC (1%) 4 files
tutorial/src/org/apache/pig409 LOC (<1%) 7 files
src/org/apache/pig/validator222 LOC (<1%) 3 files
tutorial/scripts216 LOC (<1%) 4 files
lib-src/bzip2/org/apache/pig156 LOC (<1%) 1 files
shims/src/hive3/org/apache148 LOC (<1%) 1 files
shims/src/hive1/org/apache128 LOC (<1%) 1 files
shims/src/hadoop2/org/apache78 LOC (<1%) 1 files
src/org/apache/pig/classification20 LOC (<1%) 2 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 103 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 103 links contain 2470 dependencies.
  • There are 30 places (60 links) with cyclic dependencies (1786 file dependencies).
G tutorial/scripts tutorial/scripts tutorial/src/org/apache/pig tutorial/src/org/apache/pig src/org/apache/pig src/org/apache/pig tutorial/src/org/apache/pig->src/org/apache/pig 6 src/org/apache/pig/impl src/org/apache/pig/impl tutorial/src/org/apache/pig->src/org/apache/pig/impl 5 src/org/apache/pig/data src/org/apache/pig/data tutorial/src/org/apache/pig->src/org/apache/pig/data 6 contrib/piggybank/java/src/main contrib/piggybank/java/src/main shims/src/hadoop2/org/apache shims/src/hadoop2/org/apache contrib/piggybank/java/src/main->shims/src/hadoop2/org/apache 1 lib-src/bzip2/org/apache/pig lib-src/bzip2/org/apache/pig contrib/piggybank/java/src/main->lib-src/bzip2/org/apache/pig 3 contrib/piggybank/java/src/main->src/org/apache/pig 121 contrib/piggybank/java/src/main->src/org/apache/pig/impl 115 src/org/apache/pig/backend src/org/apache/pig/backend contrib/piggybank/java/src/main->src/org/apache/pig/backend 29 src/org/apache/pig/parser src/org/apache/pig/parser contrib/piggybank/java/src/main->src/org/apache/pig/parser 3 contrib/piggybank/java/src/main->src/org/apache/pig/data 124 src/org/apache/pig/builtin src/org/apache/pig/builtin contrib/piggybank/java/src/main->src/org/apache/pig/builtin 12 shims/src/hive3/org/apache shims/src/hive3/org/apache shims/src/hive1/org/apache shims/src/hive1/org/apache lib-src/bzip2/org/apache/pig->src/org/apache/pig/backend 1 lib-src/bzip2/org/apache/tools lib-src/bzip2/org/apache/tools src/org/apache/pig/classification src/org/apache/pig/classification src/org/apache/pig->src/org/apache/pig/classification 38 src/org/apache/pig->src/org/apache/pig/impl 19 src/org/apache/pig/tools src/org/apache/pig/tools src/org/apache/pig->src/org/apache/pig/tools 8 src/org/apache/pig/scripting src/org/apache/pig/scripting src/org/apache/pig->src/org/apache/pig/scripting 2 src/org/apache/pig/validator src/org/apache/pig/validator src/org/apache/pig->src/org/apache/pig/validator 1 src/org/apache/pig->src/org/apache/pig/backend 11 src/org/apache/pig->src/org/apache/pig/parser 4 src/org/apache/pig/pen src/org/apache/pig/pen src/org/apache/pig->src/org/apache/pig/pen 1 src/org/apache/pig/newplan src/org/apache/pig/newplan src/org/apache/pig->src/org/apache/pig/newplan 2 src/org/apache/pig->src/org/apache/pig/data 24 src/org/apache/pig->src/org/apache/pig/builtin 3 src/org/apache/pig/impl->shims/src/hadoop2/org/apache 3 src/org/apache/pig/impl->shims/src/hive3/org/apache 1 src/org/apache/pig/impl->shims/src/hive1/org/apache 1 src/org/apache/pig/impl->src/org/apache/pig 45 src/org/apache/pig/impl->src/org/apache/pig/classification 4 src/org/apache/pig/impl->src/org/apache/pig/tools 2 src/org/apache/pig/impl->src/org/apache/pig/scripting 1 src/org/apache/pig/impl->src/org/apache/pig/backend 46 src/org/apache/pig/impl->src/org/apache/pig/parser 3 src/org/apache/pig/impl->src/org/apache/pig/newplan 2 src/org/apache/pig/impl->src/org/apache/pig/data 53 src/org/apache/pig/impl->src/org/apache/pig/builtin 7 src/org/apache/pig/tools->src/org/apache/pig 21 src/org/apache/pig/tools->src/org/apache/pig/classification 10 src/org/apache/pig/tools->src/org/apache/pig/impl 23 src/org/apache/pig/tools->src/org/apache/pig/validator 2 src/org/apache/pig/tools->src/org/apache/pig/backend 22 src/org/apache/pig/tools->src/org/apache/pig/parser 2 src/org/apache/pig/tools->src/org/apache/pig/newplan 10 src/org/apache/pig/tools->src/org/apache/pig/data 2 src/org/apache/pig/scripting->src/org/apache/pig 16 src/org/apache/pig/scripting->src/org/apache/pig/impl 19 src/org/apache/pig/scripting->src/org/apache/pig/tools 9 src/org/apache/pig/scripting->src/org/apache/pig/backend 14 src/org/apache/pig/scripting->src/org/apache/pig/parser 6 src/org/apache/pig/scripting->src/org/apache/pig/data 16 src/org/apache/pig/scripting->src/org/apache/pig/builtin 2 src/org/apache/pig/validator->src/org/apache/pig 2 src/org/apache/pig/validator->src/org/apache/pig/classification 1 src/org/apache/pig/validator->src/org/apache/pig/impl 3 src/org/apache/pig/validator->src/org/apache/pig/newplan 1 src/org/apache/pig/backend->shims/src/hadoop2/org/apache 12 src/org/apache/pig/backend->src/org/apache/pig 110 src/org/apache/pig/backend->src/org/apache/pig/classification 14 src/org/apache/pig/backend->src/org/apache/pig/impl 273 src/org/apache/pig/backend->src/org/apache/pig/tools 41 src/org/apache/pig/backend->src/org/apache/pig/parser 1 src/org/apache/pig/backend->src/org/apache/pig/pen 17 src/org/apache/pig/backend->src/org/apache/pig/newplan 8 src/org/apache/pig/backend->src/org/apache/pig/data 187 src/org/apache/pig/backend->src/org/apache/pig/builtin 7 src/org/apache/pig/parser->shims/src/hadoop2/org/apache 2 src/org/apache/pig/parser->src/org/apache/pig 6 src/org/apache/pig/parser->src/org/apache/pig/impl 7 src/org/apache/pig/parser->src/org/apache/pig/tools 4 src/org/apache/pig/parser->src/org/apache/pig/validator 2 src/org/apache/pig/parser->src/org/apache/pig/backend 4 src/org/apache/pig/parser->src/org/apache/pig/newplan 5 src/org/apache/pig/parser->src/org/apache/pig/data 1 src/org/apache/pig/parser->src/org/apache/pig/builtin 2 src/org/apache/pig/pen->src/org/apache/pig 2 src/org/apache/pig/pen->src/org/apache/pig/impl 12 src/org/apache/pig/pen->src/org/apache/pig/backend 10 src/org/apache/pig/pen->src/org/apache/pig/newplan 11 src/org/apache/pig/pen->src/org/apache/pig/data 12 src/org/apache/pig/newplan->src/org/apache/pig 34 src/org/apache/pig/newplan->src/org/apache/pig/classification 4 src/org/apache/pig/newplan->src/org/apache/pig/impl 134 src/org/apache/pig/newplan->src/org/apache/pig/validator 1 src/org/apache/pig/newplan->src/org/apache/pig/backend 7 src/org/apache/pig/newplan->src/org/apache/pig/parser 29 src/org/apache/pig/newplan->src/org/apache/pig/pen 1 src/org/apache/pig/newplan->src/org/apache/pig/data 42 src/org/apache/pig/newplan->src/org/apache/pig/builtin 2 src/org/apache/pig/data->src/org/apache/pig 17 src/org/apache/pig/data->src/org/apache/pig/classification 23 src/org/apache/pig/data->src/org/apache/pig/impl 16 src/org/apache/pig/data->src/org/apache/pig/tools 1 src/org/apache/pig/data->src/org/apache/pig/backend 25 src/org/apache/pig/data->src/org/apache/pig/builtin 1 src/org/apache/pig/builtin->shims/src/hive3/org/apache 3 src/org/apache/pig/builtin->shims/src/hive1/org/apache 3 src/org/apache/pig/builtin->lib-src/bzip2/org/apache/pig 2 src/org/apache/pig/builtin->src/org/apache/pig 142 src/org/apache/pig/builtin->src/org/apache/pig/classification 3 src/org/apache/pig/builtin->src/org/apache/pig/impl 133 src/org/apache/pig/builtin->src/org/apache/pig/tools 1 src/org/apache/pig/builtin->src/org/apache/pig/backend 67 src/org/apache/pig/builtin->src/org/apache/pig/parser 2 src/org/apache/pig/builtin->src/org/apache/pig/data 139




Show more details about dependencies...


Logical Decomposition #2: BACKEND
The decompositions is based on folder structure at level 6 (relative to the source code root).
Components
The "backend" logical decomposition has 5 components.
  • 392 files, 57,882 lines of code (37.0% vs. main code).
  • "src/org/apache/pig/backend/hadoop" is biggest, containing 99.32% of code.
  • "src/org/apache/pig/backend" is smallest, containing 0.08% of code.


src/org/apache/pig/backend/hadoop57489 LOC (36%) 381 files
src/org/apache/pig/backend/datastorage160 LOC (<1%) 6 files
src/org/apache/pig/backend/executionengine110 LOC (<1%) 3 files
shims/src/hadoop2/org/apache/pig78 LOC (<1%) 1 files
src/org/apache/pig/backend45 LOC (<1%) 1 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 8 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 8 links contain 187 dependencies.
  • There is 1 place (2 links) with cyclic dependencies (159 file dependencies).
G shims/src/hadoop2/org/apache/pig shims/src/hadoop2/org/apache/pig src/org/apache/pig/backend/executionengine src/org/apache/pig/backend/executionengine src/org/apache/pig/backend src/org/apache/pig/backend src/org/apache/pig/backend/executionengine->src/org/apache/pig/backend 2 src/org/apache/pig/backend/hadoop src/org/apache/pig/backend/hadoop src/org/apache/pig/backend/executionengine->src/org/apache/pig/backend/hadoop 1 src/org/apache/pig/backend/datastorage src/org/apache/pig/backend/datastorage src/org/apache/pig/backend/executionengine->src/org/apache/pig/backend/datastorage 1 src/org/apache/pig/backend/hadoop->shims/src/hadoop2/org/apache/pig 12 src/org/apache/pig/backend/hadoop->src/org/apache/pig/backend/executionengine 158 src/org/apache/pig/backend/hadoop->src/org/apache/pig/backend 5 src/org/apache/pig/backend/hadoop->src/org/apache/pig/backend/datastorage 7 src/org/apache/pig/backend/datastorage->src/org/apache/pig/backend 1




Show more details about dependencies...




2020-09-11 18:13