DSM 은 Dependency Structure Matrix 의 약자로 소프트웨어 아키텍처를 표현하는 메트릭입니다.


아래의 DSM 을 참고로 의존성을 분석하는 방법을 설명드리면 1번은 8번과 12번에 의존성을 가지며

2번은 8번과 11번 12번과 의존성을 가진다고 생각하시면 됩니다.


또한 검은색 대각선을 기준으로 아래쪽 빨간색은 순환 의존성을 의미하며 6번과 7번이 순환을 하고 있으며 위쪽 빨간색은 역방향 의존성을 의미하며

7번과 6번이 역방향 순환의존성을 가진다고 생각하시면 됩니다.




참고로 역방향 의존성은 자신보다 안정성이 낮은 항목을 의존할 때 역방향 의존이라고 합니다.


안정성은 아래 공식에 의해 계산됩니다.

Efferent Couplings(Ce): 항목이 의존하는 다른 항목들의 수

Afferent Couplings(Ca): 항목을 의존하는 다른 항목들의 수

Instability(불안정성) = Ce / (Ce + Ca)

- Instability 0에 가까울수록 안정성(Stability)이 높습니다.

- Ca가 높을수록 해당 항목을 변경하기가 어렵고 비용이 많이 들게 됩니다.