상세 컨텐츠

본문 제목

응집도로 보는 모듈 독립성 판단 (응집 순서 포함)

학습/IT

by 전설의백호 2021. 7. 5. 20:43

본문

이번 포스트는 "응집도" 에 대해 알아보겠습니다.

 

 응집도(COHESION)란 모듈 내부의 기능적인 응집 정도를 나타내는 정도로, 결합도와 함께 모듈의 독립성을 판단하는데 사용됩니다. 

참고로 모듈(module)에 대해 짧게 설명하자면, 프로그래밍에 쓰이는 본체에서 분리된 단위 중 하나로 그 자체로 기능을 수행할 수 있는 독립적인 실체를 통상 모듈이라고 지칭합니다.

모듈을 사용하는 이유는 모듈은 재사용이 가능함에 따라 프로그램 제작도 쉬워지지만, 프로그램의 수정과 유지관리도 쉬워지기 때문입니다.

 

응집도와 결합도의 경우 정보처리기사 같은 자격증 시험에도 많이 나오지만, 실제 코딩이나 소프트웨어 설계시 사용되는 기술 중 하나이기 때문에 살펴보시는 것을 추천해 드립니다.

(결합도가 궁금하신 분은 포스트 맨 하단의 연관 포스트 바로가기를 참고해 주세요!)

 

응집도의 경우 7가지 종류가 있으며, 순위가 높을수록 서로 응집되어 있어 품질이 양호하다고 판단합니다.

순서는 1)기능적 -> 2) 순차적 -> 3) 통신(교환)적 -> 4) 절차적 -> 5) 시간적 -> 6) 논리적 -> 7) 우연적 응집도 순서입니다.

 

 

 이제 각 응집도 별로 설명해 드리겠습니다.

 먼저 제일 응집도가 높은 기능적 응집도(Functional Cohesion)는 모듈 내부의 모든 기능이 단일한 목적을 위해 수행할 경우 입니다.

2번째로 순차적 응집도(Sequential Cohesion)란 모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 받아서 사용하는 경우가 있고, 3번째로 통신적 응집도(Communication Cohesion)는 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우가 있습니다.

 

4번째로 절차적 응집도(Procedural Cohesion)란 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우가 있으며, 5번째인 시간적 응집도(Temporal Cohesion)는 연관된 기능이 아닌 특정 시간에 처리해야 하는 활동들을 한 모듈에서 처리할 경우입니다.

 

6번째인 논리적 응집도(Logical Cohesion)는 서로 유사한 성격을 갖거나, 특정 형태로 분류되는 처리 요소들을 한 모듈에 모아 처리하는 경우를 의미하며, 마지막으로 우연적 응집도(Coincidental Cohesion)는 응집도 중 제일 낮으며, 모듈 내부의 각 구성요소들이 연관이 없어, 서로 다른 상위 모듈에 호출되거나, 처리될 때 연관성 없이 각자 다른 기능을 수행할 경우를 의미합니다.

 

 이상 이번 포스트에서는 ' 응집도와 응집 순서 '에 대해 알아보았습니다.

앞서 말한 것처럼 모듈의 독립과 관해 이야기할 때 응집도와 같이 자주 쓰이는 지표 중 하나로 결합도가 있으니 관심 있는 분들은 아래 연관 포스트 바로가기를 통해 포스트를 읽어 보실 수 있습니다.

 

- 연관 포스트 바로가기 -

1. [학습/IT] - 결합도로 보는 모듈 독립성 판단 바로가기

2. [학습/IT] - IT 관련 프로토콜(1) - 전송계층 중 TCP와 UDP 설명 (3 way handshake 포함) 바로가기

3. [정보/개발] - KT 공유기 설정 변경하기 (비밀번호, 접속 주소 등) 바로가기

 

본 포스트는 광고나 쿠팡 파트너스 등을 통해 소정의 대가를 제공받을 수 있다는 점을 알려드리며, 다음에도 다양한 소식으로 찾아뵙겠습니다.

다음, 네이버, 빙, 구글에서 전설의 백호 집◁ 를 검색하시면 블로그/웹사이트에서 만나 볼 수 있어요!

더보기

댓글 영역