일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Software life cycle model
- 테스트 설계 기법에 따른 분류
- regression test
- csts
- 애자일
- RBT
- risk-based testing
- 품질
- 유지보수성 테스트
- SQA
- 비기능테스트
- 자동화
- Testing
- 위험 기반 테스트
- ISTQB
- 테스트
- 테스트 케이스
- agile
- maintainability test
- Test Case
- test
- selenium
- 셀레니움
- QA
- testcase
- 테스트케이스
- Python
- seleium
- testing method
- 파이썬
Archives
- Today
- Total
Study_Note
LCOM(lack of cohesion of methods) 본문
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 |