The Dependency Structure Matrix (DSM) is a graphical approach to view and analyse the structure of dependencies between elements in a complex system, such as a product, process or organisation. DSM can be a useful tool for discovering and highlighting aspects of the dependency structure, such as groups of elements which are strongly coupled to each other. It is also useful for visualising the dependency structure in a compact form.

The DSM functionality in CAM provides a graphical interface for creating, manipulating and analysing Dependency Structure Matrices (DSMs). Elements can be re-sequenced manually. They can also be grouped manually into clusters which can in turn be organised into hierarchies. Some algorithms to do these tasks automatically are provided.

An example DSM is shown below. Keep reading for more information.

How to access the DSM view

There are two ways to use the DSM functionality in CAM. You may create a model from scratch as a DSM, by using the DSM toolbox. Or you can create a DSM View for visualising data that already exists,which was created using a diagram view. These options are explained below.

  • Using the DSM toolbox to create a model from scratch. On the workbooks screen (which is shown after starting CAM) select the Create workbook button (located on the bottom-left of the screen). Choose DSM in the model type dialog that appears. When you click in the main window, a new DSM model will be created. Double-click to edit the DSM workbook. Because the matrix is empty after creation, it appears as a 'blank' worksheet. Follow the instructions below to add elements to the new matrix.
  • Using the DSM as a view of a model created in another toolbox. First, open the worksheet you wish to view as a DSM. Then create a new view of type DSM - for guidance, refer to the documentation on creating and using multiple views. Then follow the instructions below to use the DSM functionality in the new view. For a task-oriented example, see the use case on simulating a process using DSM.

How to use the DSM view

  • Creating new elements (rows/columns) Select the create element tool located on the bottom toolbar. Click once in the header row (or header column) in the location you want to create the new element. For an empty matrix (eg a newly-created DSM) click anywhere in the blank worksheet to create the first element. Note that each subsequent mouse-click will create one additional element, until you select another tool (eg the move tool, which shows as a mouse cursor, whose button is located on the far left of the bottom toolbar)
  • Renaming elements. Using the move tool, double-click any element in the left or top header to edit its properties. 
  • Resequencing elements (manually). Using the move tool, grab an element in the left header and drag it up and down. (see also: algorithms, below)
  • Creating dependencies Use the connect tool (located on the bottom toolbar, shown as an arrow icon) and click in the main matrix pane to create dependencies
  • Deleting elements and dependencies. Use the delete tool and click once to delete an element or dependency. Change back to the move tool when you have finished deleting.
  • Creating clusters (manually) Use the move tool. Select one (or more, by holding shift) elements in the left header or top header. Right-click one of the selected elements and select 'Add to cluster' in the pop-up menu. Clusters can be moved up and down in the sequence by grabbing and dragging using the move tool. Clusters can be moved into and out of other clusters in the same way.
  • Exporting data to CSV (Excel) Push the 'export' button (to the left of the 'PDF' button on the top toolbar). Ensure that the format 'DSM csv' is selected. You can choose to open the export immediately or save it as a csv file. This file can be opened directly using MS Excel, OpenOffice, and many other programs.
  • Importing data from CSV (Excel). In the 'File' menu, there is a submenu entitled 'Import' containing an item entitled "Import a DSM from a text file'. This brings up a dialog with various options for configuring the data import. The import can auto-detect one of two formats. Firstly, the CSV file can be in the same format as that created by DSM export, so you can export a DSM then edit the connections in Excel. The second format is a csv in which the first row and column show the DSM element names, and the DSM data must start in the immediately-following rows and columns. The data will then be imported in exactly the layout shown in the csv file. Options are provided in the import dialog to remove empty rows and columns before the start of the data.

Note that the DSM import is very sensitive to file format; the data being imported must exactly follow the format explained above or it will not work.


Various algorithms are included for automatically reorganising a DSM, or partial DSM, to highlight or discover structural characteristics. These are:

  • Partitioning - uses loop searching algorithm to find an ordering such that as many marks as possible are below the leading diagonal, and the 'size' of feedback loops is minimised. This may correspond to an 'optimal ordering' of a process.
  • Clustering - Automatically groups the matrix (or cluster) into strongly-connected sub-clusters.
  • Banding - Groups subsequent elements in a cluster if they can be attempted concurrently.

The algorithms are available by selecting the appropriate tool on the bottom toolbar of a DSM view, then clicking the matrix or specific cluster where the algorithm will be applied.

Algorithms for analysing the structural characteristics of a DSM are provided in the dependency-structure analysis toolbox, which must be downloaded and installed as a plugin to the main CAM download.

Other ways of viewing information shown in a DSM

The Force-directed layout view provides an alternative visualisation of dependency data created in a DSM toolbox. It is also possible to create a Diagram view and lay out elements and connections manually, or use one of the auto-layout algorithms.

For more information see the documentation on using multiple views

Use cases for the DSM in CAM

The following use cases draw on real examples, with downloadable data, to explain how the DSM toolbox can be used to discover structural charateristics of:

  1. The interfaces between components and subsystems in a product
  2. The network of communication between people in an organisation

The following page explains how DSM can be used in conjunction with process simulation to understand how concurrency drives rework in a complex project:

  1. Using a process DSM alongside simulation to analyse concurrency and iteration in a project

The DSM toolbox may also be used in conjunction with the dependency-structure analysis toolbox, which must be downloaded and installed as a plugin to the main CAM download:

  1. Dependency-structure analysis toolbox

More information

  • A lot of information on DSM approaches, including tutorials, is available from www.dsmweb.org