공부/Maven
[서적 핵심 정리] 리포팅 기능을 활용한 문서 관리
피의화요일
2013. 4. 7. 01:45
언더커버 (undercover-maven-plugin)
- 단위 테스트 테스트 소스 커버리지 리포트 툴
파인드 버그 (findbugs-maven-plugin)
- 정적 소스 코드 분석 툴
- 버그 발생 가능성이 있는 코드, 나쁜 개발 습관으로 작성한 코드, 성능에 영향을 미칠 것으로 생각하는 코드에 대한 정보를 제공
PMD 리포트 (maven-pmd-plugin)
- 정적 소스 코드 분석 툴
- 애플리케이션별로 제공하는 룰셋이 있어, 이를 설정할 수 있음
CPD 리포트
- 소스 내에 존재하는 중복 코드를 찾아주는 툴
- PMD 툴에 포함되어 있음 (pmd:cpd 골을 실행)
제이디펜드 리포트 (jdepend-maven-plugin)
- 소스코드의 복잡도를 분석하는 툴
- 주요 용어
- 클래스와 인터페이스 수
- TC : 패키지가 포함하는 클래스/인터페이스 수
- CC : 구현 클래스 수
- AC : 인터페이스/추상 클래스 수
- Afferent Couplings (Ca)
- 다른 패키지에서 현재 패키지에 의존하고 있는 패키지 수
- Efferent Couplings (Ce)
- 현재 패키지에서 다른 패키지에 의존하고 있는 패키지 수
- Abstractness (A)
- 총 클래스수(TC) / 추상 클래스(AC)
- Instability (I)
- I = Ce / (Ce + Ca)
- 외부 패키지와의 의존 비율. 즉 이 패키지가 외부 패키지의 변경에 대해 영향을 받을 가능성
- Distance from the Main Sequence (D)
- 추상화와 안정성에 대한 패키지의 균형을 위한 이상적인 값은 A+I = 100%로 정의
- A+I가 100%에서 얼마나 떨어져 있는지 표시하는 수치로, 즉, D가 100%에 가까울 수록 좋지 않는 패키지 의존관계이므로 리팩토링해야 함을 의미
- 순환 의존 관계
- A 패키지와 B 패키지가 Ca와 Ce 의존관계일 경우 발생 (즉, A와 B가 상호 참조 관계일 때를 의미)
- 모든 패키지는 한방향으로만 의존관계를 가지는 것이 좋음
출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저)