Skip to content

Otepipi/DesignStructureMatrix.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DesignStructureMatrix.jl

Build Status Codecov Coveralls

What is Design Structure Matrix?

Design Structure Matrix (DSM), also called Dependency Structure Matrix, is a simple and useful method to represent complex system architectures or projects.

https://en.wikipedia.org/wiki/Design_structure_matrix

What is DesignStructureMarix.jl?

This package, DesignStructureMatrix offers tools for displaying and analysing DSM. For now, plotting DSM, clustering DSM and sequencing DSM are available.

Installation

In Pkg mode( Please hit ])

(v1.7) pkg> add DesignStructureMatrix

When you use this package, please type

julia> using DesignStructureMatrix

Displaying DSM

you need to prepare adjacency matrix A for systems or projects. for example

##this is adjacency matrix
A = [0 1 0 0 0 1 0;
    0 0 0 1 0 0 0;
    1 0 0 0 0 0 1;
    0 0 0 0 1 0 0;
    0 1 0 0 0 1 0;
    0 0 1 0 0 0 0;
    1 0 0 0 1 0 0]

then

7×7 Array{Int64,2}:
 0  1  0  0  0  1  0
 0  0  0  1  0  0  0
 1  0  0  0  0  0  1
 0  0  0  0  1  0  0
 0  1  0  0  0  1  0
 0  0  1  0  0  0  0
 1  0  0  0  1  0  0

next, you need to prepare label for elements in this adjacency matrix.

label = ["A", "B", "C", "D", "E", "F", "G"]

then

6-element Array{String,1}:
 "A"
 "B"
 "C"
 "D"
 "E"
 "F"

To display DSM, please type

plotDSM(A,label)

then

Clustering DSM

One of useful ways for analysing DSM is Clustering.

Original DSM is below

original_DSM = [ 0 1 0 0 1 1 0;
                0 0 0 1 0 0 1;
                0 1 0 1 0 0 1;
                0 1 1 0 1 0 1;
                0 0 0 1 0 1 0;
                1 0 0 0 1 0 0;
                0 1 1 1 0 0 0];

original_label = ["A","B","C","D","E","F","G"];

plotDSM(original_DSM,original_label)

original_DSM

ClusteroriginalDSM

To get Clustered DSM, please type

clustered_DSM, clustered_label = Clustering(original_DSM,original_label)

and

plotDSM(clustered_DSM,clustered_label)

then, you get clustered DSM

Clustered_DSM

Sequencing DSM

Another way for analysing DSM is seaquencing.

Original DSM is below

original_DSM = [0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 1 0 0 0 0 0 0 0 0 0;
                1 0 0 1 1 0 0 1 0 1 0 0 1;
                1 0 0 0 0 0 0 0 0 0 0 0 0;
                1 1 1 1 0 0 1 1 0 1 1 0 1;
                0 1 0 0 0 0 0 0 1 0 0 0 0;
                0 0 1 1 1 0 0 1 0 1 0 0 1;
                0 1 0 1 0 0 0 0 0 1 0 0 0;
                0 0 1 1 0 0 0 0 0 1 0 0 1;
                0 1 0 1 0 0 0 1 0 0 0 0 0;
                0 0 1 1 1 0 0 1 0 1 0 0 1;
                0 0 0 0 0 0 0 0 0 0 0 0 1;
                0 1 1 1 1 0 1 1 1 1 1 1 0];


original_label = ["1", "2", "3", "4", "5", "6", "7", "8",
                "9", "10", "11", "12", "13"];

plotDSM(original_DSM,original_label)

original DSM

SequencingoriginalDSM

To get Sequenced DSM, please type

sequenced_DSM, sequenced_label = Sequencing(original_DSM, original_label);

plotDSM(sequenced_DSM, sequenced_label)

then, you get sequenced DSM

SequencedDSM

Future

  • Implement Other algorithm for clustering DSM
  • Implement Other algorithm for sequencing DSM
  • Display Domain Mapping Matrices (DMMs), and MultiDomain Matrices (MDMs)

Dependency packages

  • Luxor.jl
  • LinearAlgebra.jl

Reference

Clustering algorithm

Figueiredo Damásio, J., Almeida Bittencourt, R., Dario, D., & Guerrero, S. (n.d.). Recovery of Architecture Module Views using an Optimized Algorithm Based on Design Structure Matrices. Retrieved from https://arxiv.org/ftp/arxiv/papers/1709/1709.07538.pdf

Sequencing algorithm

Warfield, J. N. (1973). Binary Matrices in System Modeling. IEEE Transactions on Systems, Man and Cybernetics, 3(5), 441–449. https://doi.org/10.1109/TSMC.1973.4309270

And original DSM in chapter Sequencing DSM is from the below article

Yassine, A. A. (2004). An Introduction to Modeling and Analyzing Complex Product Development Processes Using the Design Structure Matrix ( DSM ) Method. Urbana, (January 2004), 1–17. Retrieved from http://ie406.cankaya.edu.tr/uploads/files/Modeling and Analyzing Complex Product Development Processes Using the Design Structure Matrix.pdf