정보처리기사/필기

독립성이 높은 모듈, 결합도(Coupling)와 응집도(Cohesion)

노랑꼬리 2023. 3. 6. 12:56

※ 모듈화

: 소프트웨어를 성능 향상이나 수정, 재사용이 용이하도록 모듈 단위로 분해하여 나누는 것

 

- 모듈은 단독으로 컴파일이 가능한 최소 단위

- 각 모듈의 독립성이 높을 수록 좋은 모듈이다.

 

- 결합도가 약할 수록, 응집도가 높을 수록 좋은 모듈이다.

(결합도가 약하면 다른 모듈과 별개로 단독 사용가능)

(응집도가 높으면 모듈 내부 요소가 서로 관련성이 높아 일처리가 효율적이다)

 

 

1. 결합도(Coupling) : 약할 수록 좋은 모듈

- 모듈간 상호 의존 정도, 두 모듈 사이의 연관 관계

- 결합도가 강하면 모듈 수정 및 유지보수가 어려워짐

 

 

결합도 약함










결합도 강함
자료 결합도 (Data Coupling) 모듈 간 인터페이스가 자료 요소로만 구성되는 결합도,
다른 모듈 호출 시 매개변수나 인수로 데이터만 전달
스탬프 결합도 (Stamp Coupling) 모듈 간 인터페이스로 배열 등 자료구조가 전달
제어 결합도 (Control Coupling) 다른 모듈 내부의 흐름 제어를 하거나 제어 요소를 전달
외부 결합도 (External Coupling) 모듈에서 선언한 데이터를 다른 모듈에서 참조
공통 결합도 (Common Coupling) 공유되는 공통 데이터를 여러 모듈이 사용
내용 결합도 (Content Coupling) 다른 모듈의 내부기능이나 내부 자료를 직접 참조하거나 수정

 

 

2. 응집도(Cohesion) : 높을 수록 좋은 모듈

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

- 응집도가 높을 수록 품질이 좋음

 

응집도 강함













응집도 약함
기능적 응집도 (Functional Cohesion) 모듈 내부의 모든 기능이 단일 문제와 연관될 경우
순차적 응집도 (Sequential Conhesion) 모듈 내 출력 데이터를
모듈 내 다음 활동의 입력 데이터로 사용할 경우
교환적 응집도 (Communication Conhesion) 동일 입출력을 사용하지만 서로 다른 기능을 수행할 경우
절차적 응집도 (Procedural Conhesion) 모듈 내부 구성 요소들이 특정 기능을 순차적으로 수행할 경우
시간적 응집도 (Temporal Conhesion) 특정 시간에 처리되는 기능을 모아 하나의 모듈로 만든 경우
논리적 응집도 (Logical Conhesion) 유사한 성격을 갖는 처리 요소들을 모아 하나의 모듈로 만든 경우
우연적 응집도 (Coincidental Conhesion) 모듈 내부의 각 구성 요소들이 서로 관계가 없는 경우

 

 

 

'정보처리기사 > 필기' 카테고리의 다른 글

소프트웨어 아키텍처  (0) 2023.02.25
UML(Unified Modeling Language) 다이어그램  (0) 2023.02.24