소프트웨어 모듈 응집도 & 결합도

김병화·2023년 7월 10일
0

응집도

모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도이다.
높을 수록 좋다.


1. 우연적 응집도(Coincidental Cohesion)

모듈 내부의 각 구성요소가 연관이 없을 경우


2. 논리적 응집도(Logical Cohesion)

유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우


3. 시간적 응집도(Temporal Cohesion)

연관된 기능이라기 보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우


4. 절차적 응집도(Procedural Cohesion)

모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우


5. 통신적(교환적) 응집도(Communication Cohesion)

동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우


6. 순차적 응집도(Sequential Cohesion)

한 활동으로부터 나온 출력값다른 활동들이 사용할 경우


7. 기능적 응집도(Functional Cohesion)

모든 기능이 단일 목적을 위해 수행되는 경우




결합도

외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
낮을 수록 좋다.


1. 내용 결합도(Content Coupling)

다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 경우


2. 공통 결합도(Common Coupling)

모듈 밖에 선언되어있는 전역 변수를 참조할 경우
공유되는 공통 데이터 영역을 여러 모듈이 사용할 경우


3. 외부 결합도(External Coupling)

외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스를 공유할 경우
외부 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 경우


4. 제어 결합도(Control Coupling)

하위 모듈에서 상위 모듈로 제어신호가 이동하여 처리 명령을 부여하는 권리 전도 현상이 발생하는 경우


5. 스탬프 결합도(Stamp Coupling)

모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
두 모듈이 동일한 자료 구조를 조회하는 경우


6. 자료 결합도(Data Coupling)

모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 상호 작용이 일어나는 경우
한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직한 결합도

0개의 댓글