모듈화
- 소프트웨어를 기능별로 그룹짓는 것
- 프로그램을 효율적으로 관리할 수 있도록 분해, 추상화 하여 제품의 성능을 향상시키거나 수정, 재사용, 유지관리를 용이하게 함
독립성
- 모듈이 주어진 기능만 수행하고 다른 모듈과 관련이 적은 것을 지향
- 모듈의 결합도(Coupling)와 응집도(Cohesion)로 측정
- 독립성이 높을수록 좋은 모듈이며, 결합도는 낮을수록, 응집도는 높을수록 독립성이 높음
결합도(Coupling)
서로 '다른 모듈' 사이의 의존도
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료
낮음(bad) ─────────── 높음(goob)
유형 | 설명 |
---|---|
내용 결합도 (Content Coupling) |
모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 |
공통 결합도 (Common Coupling) |
파라미터가 아닌 모듈 밖에 선언되어 있는 전역변수를 참조 |
외부 결합도 (External Coupling) |
모듈이 다수의 관련 기능을 가질 때 모듈 내 구성요소들이 순차적으로 수행 |
제어 결합도 (Control Coupling) |
단순 처리 대상의 값만 전달되는게 아닌, 어떻게 처리해야 한다는 제어요소가 전달 |
스탬프 결합도 (Stamp Coupling) |
- 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달 - 자료 구조 변경시 참조하고 있는 모든 모듈에 영향을 미칠 수 있음 |
자료 결합도 (Data Coupling) |
- 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 발생 |
응집도(Cohension)
모듈의 독립성을 나타내는 개념으로 모듈 내부 구성요소간의 연관 정도
정보은닉의 확장개념으로 하나의 모듈은 하나의 기능을 수행
우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적
낮음(bad) ──────────────────────────── 높음(goob)
유형 | 설명 |
---|---|
우연적 응집도 (Coincidental Cohesion) |
모듈 내부의 구성요소들이 연관이 없음 |
논리적 응집도 (Logical Cohesion) |
- 모듈 내 활동으로 나온 출력값을 다른 활동에 사용 - 유사한 성격으로 분류되는 요소가 한 모듈에서 처리 ex) swich문 case1 do someting / case2 do someting |
시간적 응집도 (Temporal Cohesion) |
- 모듈 내 각 기능이 순서에 상관없이 특정 시점에 수행 ex)프로그램 구동시 초기화 / 예외 상황시 오류 로그 |
절차적 응집도 (Procedural Cohesion) |
- 모듈이 다수의 관련 기능을 가질 때, 기능을 순차적으로 수행 - 수행 후 데이터가 아닌 흐름 제어 요소가 전달됨 ex) 파일을 읽을 때 접근 권한을 확인 후 수행 |
통신적 응집도 (Communicational Cohesion) |
동일한 입출력을 사용하여 다른 기능을 수행 |
순차적 응집도 (Sequential Cohesion) |
한 요소에서 나온 출력값이 다른 요소의 입력값으로 사용됨 |
기능적 응집도 (Functional Cohesion) |
모듈 내 모든 요소가 하나의 기능을 수행 |
반응형
'공부 > 정보처리기사' 카테고리의 다른 글
[정처기 실기 요약 #3] 데이터베이스 - 모델링 (0) | 2023.09.18 |
---|---|
[정처기 실기 요약 #1] 애플리케이션 테스트, 소프트웨어 테스트 총정리 (0) | 2023.09.15 |
정보처리기사 필기 기출문제 출제유형 분석(21년 8월 기출) (0) | 2023.02.25 |
정보처리기사 필기 기출문제 출제유형 분석(22년 4월 기출) (0) | 2023.02.19 |
클린코드와 TDD (0) | 2021.10.29 |
댓글