결합도 / 응집도

2023. 2. 14. 18:52정처기 필기/1과목 - 소프트웨어 설계

결합도 (Coupling)

* 결합도는 모듈 간 상호 의존하는 정도

* 결합도가 낮을수록 독립적인 모듈이고 좋은 것이다.

 

1. 내용 결합도

- 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도

 

2. 공통 결합도

- 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 (전역 변수)

 

3. 외부 결합도

- 어떤 모듈에서 선언한 변수를 외부의 다른 모듈에서 참조할 때의 결합도 (순차적)

 

4. 제어 결합도

- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여

통신하거나 제어 요소를 전달하는 결합도

 

5. 자료 결합도

- 어떤 모듈이 다른 모듈을 호출할 때 매개 변수로 데이터를 넘겨주고, 호출 받은 모듈은

데이터에 대한 처리 결과를 다시 돌려주는 결합도

 

6. 스탬프 결합도

- 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도


응집도 (Cohesion)

* 모듈의 내부 요소들의 서로 관련되어 있는 정도

* 응집도는 높을수록 독립적인 모듈이고 좋다 !

* Bad ----> Good

1. 우연적 응집도

- 모듈 내부의 각 구성 요소들이 서로 관련 X 

 

2. 논리적 응집도

- 유사한 성격을 갖거나, 특정 형태로 분류되는 처리 요소들로 형성된 모듈 

 

3. 시간적 응집도

- 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우 

 

4. 절차적 응집도

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

 

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

- 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우

 

6. 순차적 응집도

- 모듈 내 하나의 활동으로부터 나온 출력값을 그 다음 활동의 입력 데이터로 사용할 경우

 

7. 기능적 응집도

- 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우