Study_Note

LCOM(lack of cohesion of methods) 본문

temp

LCOM(lack of cohesion of methods)

12월7일생 2024. 8. 26. 14:50
728x90

반응형

LCOM(Lack of Cohesion of Methods)에는 여러 가지 종류가 있으며, 각 종류는 클래스 내의 응집도를 측정하는 방법이 다릅니다. 주요 LCOM 종류는 다음과 같습니다:

LCOM1 (Henderson-Sellers 방식)

특징

  • 클래스의 메소드 쌍들이 얼마나 많은 인스턴스 변수를 공유하는지 측정합니다.
  • 기본 개념은 클래스 내에 있는 메소드들이 얼마나 서로 관련성이 있는지를 확인하는 것입니다.
  • 계산 방식
    • 클래스의 각 메소드가 사용하는 인스턴스 변수들을 분석하여, 공통된 변수를 사용하지 않는 메소드 쌍의 수를 세어 LCOM을 계산합니다.
    • 만약 모든 메소드가 모든 인스턴스 변수를 공유하고 있으면, LCOM 값은 0이 됩니다.
    • 메소드 쌍이 변수를 공유하지 않는 경우의 수가 많을수록 LCOM 값은 증가합니다.
  •  LCOM1 해석
    • LCOM1이 0인 경우, 클래스의 모든 메소드가 적어도 하나의 변수를 공유하고 있음을 의미하며, 응집도가 높습니다.
    • LCOM1이 높을수록 클래스의 메소드들이 서로 관련이 없고 응집도가 낮습니다.

LCOM2

특징

  • LCOM1의 단점을 보완한 버전으로, 클래스 내 메소드들이 얼마나 많은 인스턴스 변수를 공유하는지를 수식적으로 분석하는 방식입니다.
  • 계산 방식 
    • 클래스 내의 각 메소드가 사용하는 인스턴스 변수와 메소드 간의 상호작용을 점수화하여 응집도를 측정합니다.
  •  LCOM2 해석
    • 값이 높을수록 클래스가 분리될 가능성이 크며, 응집도가 낮음을 의미합니다.

LCOM3 (Chidamber & Kemerer 방식)

특징

  • 클래스 내에서 응집도를 계산하는 더 정교한 방법입니다. 클래스 내의 메소드와 필드 간의 상호작용을 기반으로 클래스의 응집도를 측정합니다.
  • 계산 방식
    • 클래스 내의 각 메소드들이 얼마나 인스턴스 변수를 공유하는지에 따라 계산합니다. 이 방법은 메소드가 공통 변수를 많이 공유할수록 LCOM 값을 낮게 평가합니다.
  •  LCOM3 해석
    • LCOM3이 높으면 응집도가 낮고, 메소드들이 서로 독립적임을 의미합니다.
    • 응집도가 낮으면 해당 클래스는 여러 개의 작은 클래스로 나누어야 할 가능성이 높습니다.

LCOM4

특징

  • LCOM4는 클래스 내의 메소드들이 상호작용하는 "연결된 컴포넌트"로 분할될 수 있는지를 분석합니다.
  • 계산 방식
    • 메소드들이 변수 공유를 통해 연결된 컴포넌트로 그룹화되는지 측정합니다.
    • 하나의 컴포넌트로 연결된 메소드들의 수를 기준으로 클래스를 나눌 수 있으며, 클래스 내에서 독립적인 메소드 그룹이 많을수록 LCOM4 값이 커집니다.
  •  LCOM4 해석
    • LCOM4 값이 1이면, 클래스 내의 모든 메소드가 연결된 하나의 컴포넌트로 이루어져 있음을 의미합니다.
    • 값이 1보다 크면, 해당 클래스는 여러 개의 독립적인 메소드 그룹으로 나누어질 수 있음을 나타내며, 응집도가 낮음을 의미합니다.

LCOM5

특징

  • 더 정교한 응집도 측정 지표로, 응집도를 정량적으로 평가할 수 있는 방법입니다.
  • 계산 방식
    • 클래스의 모든 필드와 메소드 간의 관계를 분석하고, 이들이 얼마나 관련성을 가지고 상호작용하는지를 기준으로 응집도를 평가합니다.
    • 메소드가 필드를 사용하는 정도를 정량적으로 측정하고 이를 기반으로 응집도를 수치화합니다.   
  •  LCOM5 해석
    • 응집도가 높을수록 클래스 내의 메소드들이 필드와 밀접하게 연결되어 있음을 의미합니다.
    • 응집도가 낮을수록 클래스가 분리될 가능성이 있으며, 여러 독립적인 책임이 한 클래스에 결합되어 있을 수 있습니다.

 요약

  • LCOM1 : 메소드 쌍이 변수 공유 여부에 따라 응집도를 측정. 
  • LCOM2 : LCOM1을 보완하여 더 정교하게 응집도를 계산. 
  • LCOM3 : 메소드와 인스턴스 변수 간의 상호작용 기반으로 응집도를 분석.  
  • LCOM4 : 클래스 내의 메소드 그룹 간 상호작용을 분석하여 컴포넌트 수를 기반으로 응집도를 평가.  
  • LCOM5 : 클래스 필드와 메소드 간의 정량적 관계를 바탕으로 응집도를 평가.

각 LCOM 측정 방법은 클래스의 구조와 설계를 분석하는 데 도움을 주며, 이를 통해 클래스가 잘 응집되어 있는지, 또는 불필요하게 분리되어야 하는지 판단하는 데 유용합니다.

'temp' 카테고리의 다른 글

cyclomatic complexity  (0) 2024.08.26
RIAC(reliability information analysis center)  (0) 2024.08.26
fan-in & fan-out  (0) 2024.08.26
resolution  (0) 2024.08.21
ISO/IEC 25010  (0) 2024.08.02