본문 바로가기
공부/정보처리기사

[정처기 실기 요약 #2] 소프트웨어 모듈화 / 응집도(Cohension)와 결합도(Coupling)

by 매니션 2023. 9. 17.

모듈화

  • 소프트웨어를 기능별로 그룹짓는 것
  • 프로그램을 효율적으로 관리할 수 있도록 분해, 추상화 하여 제품의 성능을 향상시키거나 수정, 재사용, 유지관리를 용이하게 함

독립성

  • 모듈이 주어진 기능만 수행하고 다른 모듈과 관련이 적은 것을 지향
  • 모듈의 결합도(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)
모듈 내 모든 요소가 하나의 기능을 수행
반응형

댓글