문제
소프트웨어 모듈의 결합도(Coupling) 유형을 강한 순서대로 3가지 이상 나열하고, 각각의 특징과 예시를 설명하시오. 또한 응집도(Cohesion) 유형을 약한 순서대로 3가지 이상 나열하고, 각각의 특징과 예시를 설명하시오.
정답
결합도 유형(강한 순): 1) 내용 결합도 - 한 모듈이 다른 모듈의 내부 데이터나 코드를 직접 참조/수정 2) 공통 결합도 - 전역 데이터를 여러 모듈이 공유 3) 외부 결합도 - 외부 환경이나 장치에 의존. 응집도 유형(약한 순): 1) 우연적 응집도 - 관련 없는 요소들이 우연히 모임 2) 논리적 응집도 - 논리적으로 비슷한 기능들을 묶음 3) 시간적 응집도 - 특정 시간에 함께 실행되는 요소들을 묶음
내용결합도공통결합도외부결합도우연적응집도논리적응집도시간적응집도전역데이터직접참조특정시간관련없는요소
해설
결합도는 내용→공통→외부→제어→스탬프→자료 순으로 강해지며, 내용결합도는 가장 위험한 형태로 모듈간 독립성을 완전히 파괴한다. 공통결합도는 전역변수 사용으로 인한 부작용이 크고, 외부결합도는 하드웨어나 OS 의존성을 만든다. 응집도는 우연적→논리적→시간적→절차적→통신적→순차적→기능적 순으로 강해지며, 우연적 응집도는 전혀 관련 없는 기능들이 묶인 최악의 상태이다.