정보처리기사 실기소프트웨어 설계결합도와 응집도난이도 5DESCRIPTIVE

정보처리기사 실기 결합도와 응집도 기출문제 #297

문제

모듈 설계에서 **공통 결합도(Common Coupling)**와 **논리적 응집도(Logical Cohesion)**가 발생하는 구체적 상황을 각각 예시와 함께 설명하고, 이러한 설계가 소프트웨어 유지보수성신뢰성에 미치는 부정적 영향을 분석한 후, 이를 개선하기 위한 리팩토링 방안을 제시하시오.

정답

공통 결합도는 여러 모듈이 전역 데이터 영역을 공유할 때 발생하는 강한 결합으로, 전역 변수나 공통 데이터 블록을 여러 모듈이 접근하는 상황(예: 전역 설정 변수를 여러 모듈이 직접 수정)에서 나타난다. 논리적 응집도는 유사한 성격의 여러 기능을 하나의 모듈에 묶되 실제로는 관련이 적은 경우로, 플래그에 따라 다른 기능을 수행하는 모듈(예: switch문으로 입력, 출력, 계산을 처리하는 모듈)에서 발생한다. 유지보수성 측면에서 공통 결합도는 전역 데이터 변경 시 모든 관련 모듈의 영향 분석이 어렵고, 논리적 응집도는 한 기능 수정 시 무관한 기능까지 영향받을 수 있어 유지보수가 복잡해진다. 신뢰성 측면에서 공통 결합도는 한 모듈의 전역 데이터 오류가 다른 모듈로 전파되고, 논리적 응집도는 한 기능의 버그가 다른 기능 실행에도 영향을 줄 수 있다. 개선 방안으로 공통 결합도는 전역 데이터를 캡슐화하여 접근 메서드를 통한 자료 결합도로 변경하고, 논리적 응집도는 각 기능을 독립된 모듈로 분리하여 기능적 응집도를 달성해야 한다.

공통 결합도논리적 응집도전역 데이터플래그유지보수성신뢰성캡슐화모듈 분리파급효과리팩토링

해설

공통 결합도는 결합도 중 강한(바람직하지 않은) 형태로 전역 데이터 공유로 인한 문제를 다룬다. 논리적 응집도는 응집도 중 약한(바람직하지 않은) 형태로 관련성이 낮은 기능들의 집합을 의미한다. 이들이 소프트웨어 품질에 미치는 부정적 영향을 분석하고 구체적 개선 방안을 제시해야 한다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.