Dependency-Structure Analysis Toolbox


The dependency-structure analysis toolbox allows the 'structure' of a CAM model to be processed and analysed. For instance, it allows the pattern of nodes and edges in a diagram or DSM view to be studied to generate different views on the data and identify 'critical features'. The toolbox provides two sets of related functionality: structural filtering and structural profiling.

Using the toolbox

Open the worksheet which contains a model on which you want to apply structural analysis. Under the analysis menu, two new options will appear: Structural filtering and Structural profiling. Use the menu items (or the corresponding buttons located on the top toolbar) to select the desired functionality.

Instructions for setting up the analysis are given in the respective sections below.

Structural filtering

The structural filtering functionality uses a graph grammar/set-based approach to modify the structure of a CAM model. For instance, it may find and remove all nodes having a certain type. This allows different perspectives to be generated on the data. Presently, the results of a structural filter are shown as a new DSM that is not coupled to the original model. In future releases, we plan to allow filters to be applied directly to a view, such that coupling is maintained in case the original data is later changed. Presently, all structures are treated as 'binary' - either a connection exists or it does not. We plan to extend the functionality to operate on relations that are characterised by additional properties (eg. including dependency strength, likelihood and impact, etc)

A set of 'default' filters are included allowing many standard operations to filter an ASM process model. For instance, these allow an ASM process model to be viewed as a DSM showing interconnections between tasks (not showing deliverables or milestones), between milestones (indirectly through the workflow), between resources (indirectly if they must share information due to the workflow sequence) and so on.

It is also possible to create 'custom' filters suitable for other modelling notations, or for flitering DSM models according to the sets defined by their clustering (logically similar to Maurer's method of calculating indirect dependencies in an MDM; in this case the clusters will represent domains).


A structural filter in CAM comprises a sequence of stages. These are listed when a filter is selected in the structural filtering dialog, that appears after selecting the menu item:

The sequence in which stages are applied may determine the result. Each stage comprises the following elements:

  • An action
  • A set definition

The following actions are currently available:

  • Remove nodes in set.
  • Remove edges in set.
  • Create edge complements. This ensures a complement exists for every edge in the specified set (in a DSM these edges will appear symmetric, or in a diagram view they will appear bidirectional)
  • Collapse node set. This removes all nodes in the specified set and then replaces them with a single node representing the set. Any edges that had connected to or from nodes in the set are replaced by edges connecting to/from the node representing the collapsed set.
  • Remove nodes in set, replacing paths. Consider a structure having two defined sets, A and B, and four nodes connected 'in sequence' - A1->B1->B2->A2. In this case, removing nodes in set B, replacing paths would give the structure: A1->A2.

These operations provide very flexible filtering functionality when combined in different ways, nevertheless we expect that the list of operations will be extended in future releases.

The following set definitions are currently provided:

  • Nodes in a DSM cluster. All nodes within a particular cluster in a DSM view (the clusters are extracted from the DSM when the analysis is started)
  • Node class: All nodes having a specified class, eg. all tasks, all deliverables, etc.


  • Edge class: All edges having a specified class
  • Edge direction: All edges having a specified direction (this can be forward, backward or unspecified. All edges are unspecified except for those emerging from an ASM iteration construct, which are forward if 'continue process' or backward if 'iterate again'.
  • Edge having specific source and sink node classes: All edges that connect between nodes having given classes - eg. edges connecting Tasks to Parameters.
  • Edges having source and sink nodes in specific DSM clusters: All edges that connect between nodes that are located in specific clusters. Eg. all edges connecting nodes in a cluster called 'Teams' to nodes in a cluster called 'Locations'. This filter is used for structural processing of MDM-style models, that are created by using DSM clusters to represent the different domains.

This list will be extended to include compound sets (defined as the union or intersection of a set of sets) in the next release.

After a filter is applied to a model, a new DSM worksheet is generated and displayed. The worksheet will be placed in a new workbook entitled 'structural analysis results. It is possible to then apply structural profiling to a filtered model (see below).

Structural profiling

The structural profiling functionality allows a structure (ie. a diagram or DSM model) to be summarised as a set of numbers using various different metrics. This can help to understand the properties of a structure or of the nodes and edges within it. For more information about specific metrics, and a bibliography of sources, please refer to the publications described in the More information section at the bottom of this page.

The first step is to decide what sort of profile you wish to create, ie. what aspect of the structure you want to analyse:

1. Analyse the entire structure. Some metrics extract certain properties of the network (such as its modularity or connectedness), creating one number for the whole structure being analysed. Results are displayed as a table of numbers. The following metrics are available in this group:

  • Number of sets defined in the structure
  • Number of unconnected nodes
  • Number of edges per node
  • Number of edges
  • Number of edges that cross a set border
  • Number of nodes
  • Number of nodes (discounting duplicates due to shortcuts)
  • Relational density (non-zero fraction)
  • Singular-value modularity index (SMI)

2. Analyse nodes individually. Other metrics characterise individual nodes with respect to their context in the structure. Results are displayed as a parallel coordinate plot and may be exported to CSV format for further analysis in other programs. The basic idea is that, the nodes having high values for any or all of these metrics, may be in some sense more 'important', 'central' or 'critical' in the system being modelled. The following metrics are available in this group:

  • Clustering coefficient
  • Betweenness centrality
  • Indegree
  • Outdegree
  • Active closeness
  • Passive closeness
  • Reachability
  • Number of reachable nodes

3. Analyse edges individually. Similar to analysing nodes individually, but with a focus on edge properties in context of the structure. The following metrics are available:

  • Edge active sum
  • Edge passive sum

The following set-specific metrics are only available if a model contains node sets (eg. DSM clusters or multiple classes of node)

4. Analyse sets individually. These metrics allow analysis of each individual set defined in the structure. For instance, sets are defined by DSM clusters. Sets may, or may not, be disjoint. Analysing a set individually can consider:

  1. The content of the set. It is treated as an isolated substructure - and may be analysed using all of the Analyse entire structure metrics
  2. The set in context. It is treated as a single node, with inputs and outputs defined by the edges crossing its boundary. The context of this 'collapsed set' node may be analysed using all of the Analyse nodes individually metrics.
  3. Set-specific metrics. The following set-specific metrics are also available:


  • Number of edges crossing the set boundary.

5. Analyse pair-wise interactions between sets. These metrics concern interactions between node sets (as defined above). For instance, you can create a DSM model of the people in an organisation and the network of communication links between them, then create multiple views that each cluster the data in different ways. One clustering may group the nodes according to individuals' job titles. Another view may cluster the same people according to the teams they belong to. These set definitions overlap; the structural profiling allows identification of intersections (such as: how many people of a given role work in each team?) and relations (how many people in role A talk to people in Team Y), and similar issues may also be studied. Results are displayed as a matrix where each cell represents the calculated value for a given pair of node sets. The following metrics are available in this category:

  • Number of edges connecting the pair of sets
  • Number of nodes in both sets
  • Intersection as fraction of set size
  • Relational density connecting sets.

The code has been designed to make it very easy to write additional metrics that extend the inbuilt functionality (using Java). If you wish to do this, contact David Wynn for help in getting started.


More information

Structural filtering

  • The structural filtering functionality in CAM is largely based on a graph grammar approach, which was used in the P3 Signposting software from which CAM originated and which is described in Wynn (2007). That approach has been extended and improved for the CAM re-implementation, to include set processing as well as a rule set which is both simpler and more powerful.
  • The approach should give similar functionality to the matrix-oriented approach discussed by Lindemann et al. (2009) and previously in Maurer's 2007 PhD thesis.

Structural profiling

If you use CAM in support of published work, we require that you cite one of the original publications describing the software in the bibliography of that work. This is a condition of the free license!

Release schedule

August 2012 - first release

22 Sep 2012 - enhanced structural filter to allow selection of edges having specific source and sink node classes, or having source and sink belonging to specific DSM clusters. This allows processing of MDM-style DSM models.

20 May 2014 - enhanced to include classification categories in filters and is now part of standard CAM package