Described is a system and method for identifying dependency relationships
between components in a group of software components. Given a group of
software components, a set of direct dependencies between each of the
components and any other component is identified. The direct dependencies
are indicated in a square matrix where each component in the group of
components has a corresponding row and column. A particular component has
the same row number as column number in the matrix. Multiplying that the
matrix by itself identifies second-order dependencies. Higher order
dependencies are identified by repeating the multiplication of the
resultant matrix by the first-order dependency matrix. In other words,
multiplying the third-order matrix by the first-order matrix achieves the
fourth-order matrix, and so on.