※ 모듈화
: 소프트웨어를 성능 향상이나 수정, 재사용이 용이하도록 모듈 단위로 분해하여 나누는 것
- 모듈은 단독으로 컴파일이 가능한 최소 단위
- 각 모듈의 독립성이 높을 수록 좋은 모듈이다.
- 결합도가 약할 수록, 응집도가 높을 수록 좋은 모듈이다.
(결합도가 약하면 다른 모듈과 별개로 단독 사용가능)
(응집도가 높으면 모듈 내부 요소가 서로 관련성이 높아 일처리가 효율적이다)
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 |