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

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

문제

소프트웨어 설계에서 **모듈의 응집도를 측정하는 정량적 지표인 LCOM(Lack of Cohesion of Methods)**의 개념과 계산 방법을 설명하고, LCOM 값이 높을 때 발생하는 문제점과 이를 개선하기 위한 리팩터링 기법을 구체적으로 서술하시오.

정답

LCOM은 클래스 내 메소드들이 인스턴스 변수를 공유하지 않는 정도를 나타내는 지표로, 공통 변수를 사용하지 않는 메소드 쌍의 수에서 공통 변수를 사용하는 메소드 쌍의 수를 뺀 값이다. LCOM 값이 높으면 클래스가 여러 책임을 가져 응집도가 낮아지며, 이는 유지보수성 저하와 테스트 복잡도 증가를 야기한다. 개선 방법으로는 Extract Class를 통한 클래스 분할, Move Method를 통한 메소드 재배치, 관련 변수와 메소드의 그룹화 등이 있다.

LCOM응집도 측정정량적 지표메소드 쌍인스턴스 변수Extract ClassMove Method클래스 분할유지보수성테스트 복잡도

해설

LCOM은 Chidamber & Kemerer가 제안한 객체지향 메트릭으로, 클래스의 응집도를 수치화한다. 계산식: LCOM = |P| - |Q| (P: 공통 변수 없는 메소드 쌍, Q: 공통 변수 있는 메소드 쌍). 높은 LCOM 값은 단일 책임 원칙 위반을 의미하며, 코드 이해도와 재사용성을 저해한다. 리팩터링을 통해 관련성 높은 요소들을 그룹화하여 응집도를 향상시킬 수 있다.

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

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

[정보처리기사 실기] 결합도와 응집도 소프트웨어 설계 기출 #356 | sqldpass