Through aggregation, Sokrates generates new summary views on data.

The input for aggregations and are:

  • the file-level measurements (lines of code, history of charges, file age)
  • unit-level measurements (lines of code, conditional complexity)
  • a list of duplicates within and among the files
  • the logical decompositions (each logical decomposition consists of components, and each component of lasts of files in that component)
  • concerns (each concern contains the list of files)
  • a list of dependencies among components (per logical decompo­sition)

Sokrates performs aggregation at three levels:

  • the overall project level
  • the file type level (based on file extension)
  • the logical decomposition level

Project-Level Aggregation

Project level aggregations show how data look overall, for all files and units (Figure 1).

Figure 1: An example of system level aggregations.

File-Type Aggregation

File-type level aggregations show how data look for each file extension (Figure 2).

Figure 2: Examples of file extension level aggregations.

Logical-Decomposition Aggregations

Logical-decomposition level aggregations show how data look for each logical decomposition and each component in a logical decomposition (Figure 2).

Figure 3: Examples of logical decomposition level aggregations.