본문 바로가기
전공공부/소프트웨어 공학

결합도, 응집도

by choijiuen 2020. 2. 17.
반응형

모듈화를 수행하면 복잡도가 감소하고, 변경이 쉬우며 구현이 용이하다.

 

1. 결합도

모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미, 독립적인 모듈이 되기 위해서 모듈 간의 결합도가 약해야 하며 의존하는 모듈이 적어야 한다. 

 

Data Coupling(자료 결합도)

모듈 간 인터페이스가 자료 요소로만 구성될 때 결합도, 매개 변수로 데이터를 넘겨 주고 데이터에 대한 처리 결과를 다시 돌려주는 것

Stamp Coupling(스탬프 결합도)

모듈 간 인터페이스가 배열이나 레코드 등의 자료구조가 전달될 때 결합도, 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도이며 자료구조의 변화는 그것을 조회하는 모든 모듈 및 변화되는 필드를 실제로 조회하지 않는 모듈에도 영향을 미친다.

Control Coupling(제어 결합도)

제어 신호를 이용해 통신하거나 제어 요소를 전달하는 결합도, 상위 모듈이 하위 모듈의 상세한 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생. 하위모듈에서 상위모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상 발생.

External Coupling(외부 결합도)

외부 결합도는 어떤 모듈에서 외부로 선언한 데이터를 다른 모듈에서 참조할 때의 결합도, 참조되는 범위를 각 모듈에서 제한할 수 있다.

Common Coupling(공통 결합도)

공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도, 공통 데이터 영역을 조금만 변경하더라도 이를 사용하는 모든 모듈들에 영향을 미친다.

Content Coupling(내용 결합도)

한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도, 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우에도 내용결합도다.

2. 응집도

정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미한다. 독립적인 모듈이 되기 위해서 각 모듈의 응집도가 강해야 한다.

Functional Cohesion(기능적 응집도)

모듈 내부의 모든 기능 요소들이 단일 문제와 연관

Sequential Cohesion(순차적 응집도)

모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용

Communication Cohesion(교환적 응집도)

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

Procedural Cohesion(절차적 응집도)

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

Temporal Cohesion(시간적 응집도)

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

Logical Cohesion(논리적 응집도)

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

Coincidnetal Cohesion(우연적 응집도)

모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

[출처] 소프트웨어공학 - 결합도, 응집도|작성자 kb

반응형

댓글