Clique


Rationale: It is widely accepted that cyclic dependencies should be avoided. We define Clique as a set of files whose structural relations form a strongly connected graph so that changes to any files can be propagated to any other files within the group. 

Description: If a subset of files forms a strongly connected component based on their structural relations, this file group is identified as a Clique instance. 

Visualization: In a DSM, the dependencies that form cycles can be shown as symmetric, non-empty cells, as shown below: 

Fig.: An example of Clique: the highlighted cells are symmetric.

dp: depend

The figure above shows an instance of Clique. Files in this example are highly coupled with each other through multiple dependency cycles, such as, ActivityRules.java <->  Process-Rules.java, ActivityRules.java -> TimeExpression java -> TemporalRule.java -> ActivityRules.java, etc. 

To visualize an instance of Clique, using the DV8 GUI, select "Analysis-> Load Issue File", and choose a ".dv8-issue" file. DV8 will automatically order the files for a Clique issue so that dependencies that form cycles are arranged into symmetric cells, as shown above.