모듈(Module)
- 모듈화를 통해 분리된 시스템의 각 기능
- 소프트웨어의 구조를 이루며, 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위
- 하나 또는 몇 개의 논리적 기능을 수행하기 위한 명령어들의 집합
모듈화(Modularity)
- 시스템의 기능들을 모듈 단위로 나누는 것
- 모듈 간 결합도의 최소화와 모듈 내 요소들의 응집도를 최대화하는 것이 목표
결합도(Coupling)
- 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계
- 결합도가 약할수록 품질이 높다
결합도의 종류와 강도
자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도
자료 결합도(Data Coupling)
- 모듈 간의 인터페이스가 자료 요소로만 구성될 때
스탬프 결합도(Stamp Coupling)
- 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때
제어 결합도(Control Coupling)
- 단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달되는 경우
- 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도 현상이 발생하게 됨
외부 결합도(External Coupling)
- 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때
공통 결합도(Common Coupling)
- 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
- 전역 변수를 갱신하는 방식으로 상호작용
내용 결합도(Content Coupling)
- 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때
응집도(Cohesion)
- 모듈의 내부 요소들이 서로 관련되어 있는 정도
- 응집도가 강할수록 품질이 높다
응집도의 종류와 강도
우연적 응집도 < 논리적 응집도 < 시간적 응집도 < 절차적 응집도 < 교환적 응집도 < 순차적 응집도 < 기능적 응집도
우연적 응집도(Coincidental Cohesion)
- 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우
논리적 응집도(Logical Cohesion)
- 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
시간적 응집도(Temporal Cohesion)
- 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성하는 경우
절차적 응집도(Procedural Cohesion)
- 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행하는 경우
교환(통신)적 응집도(Communication Cohesion)
- 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
순차적 응집도(Sequential Cohesion)
- 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우
기능적 응집도(Functional Cohesion)
- 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
'정보처리기사' 카테고리의 다른 글
VPN 프로토콜 (0) | 2023.07.21 |
---|---|
OSI 참조 모델 7계층과 TCP/IP 프로토콜 (0) | 2023.07.21 |
디자인 패턴 (0) | 2023.07.21 |
SQL문 총 정리 (0) | 2023.07.21 |
관계형 데이터베이스의 릴레이션 구조 (0) | 2023.07.21 |