Egloos | Log-in


JDepend + Eclipse + Maven2

   JDepend는 Java패키지간의 의존성에 대한 수치들을 알려 주는 도구입니다.

   JDepend의 Eclipse의 Plugin은 http://andrei.gmxhome.de/eclipse/를 Update site에 추가하면 설치할 수 있습니다. 다음의 링크들에서 보다 자세한 내용을 참조할 수 있습니다. 분석을 하고자 하는 소스폴더 위에서 우클릭을 한 후 'Run JDepend Analysis' 메뉴를 선택하면 의존성 분석 결과가 나옵니다.  


EclipseJDepend.JPG


  이를 Maven을 통해서 생성하는 jdepend-maven-plugin 은 pom.xml에 아래와 같이 추가할 수 있습니다.


<reporting>

.....

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>jdepend-maven-plugin</artifactId>
  <version>2.0-beta-2</version>
</plugin>

</reporting>


mvn jdepend:generate 또는 mvn site명령을 통해서 보고서가 생성됩니다. mvn site로 실행했다면 Hudson의 프로젝트 홈에서 Maven Generated Site 메뉴를 통해서도 확인할 수 있습니다. 샘플페이지 에 생성된 보고서의 형식이 나와있습니다. 


JDependReport.JPG

JDepend 첫페이지나 생성된 보고서 안에서도 위의 요약 테이블에  수치들에 대한 설명이 잘 나와있습니다. 간단히 요약해서 정리하면,

  • TC (Total Classes) : 전체 클래스 수. CC + AC
  • CC (Concrete Classes) : Inteface나 추상클래스가 아닌 구상 클래스 수
  • AC (Abstract Classes) : Interface나 Abstract Class로 선언된 클래스 수
  • Ca (Afferent Couplings) : 이 패키지를 의존하고 있는 다른 패키지의 수. 이 패키지의 책임감을 나타내는 지표
  • Ce (Efferent Couplings) : 이 패키지가 의존하고 있는 클래스가 있는 다른 패키지의 수. 이 패키지의 독립성을 나타내는 지표.
  • A (Abstractness) : 총 클래스 갯수 중 인터페이스나 추상클래스의 비율. 1이라면 해당 패키지는 추상클래스나 인터페이스 밖에 없는 것.
  • I (Instability) :   총 결합도 중 이 패키지의 외부의존성의 비율 (Ce / (Ce + Ca)). 변화에 대한 내성을 나타내는 지표. I=0이라면 완전하게 안정적인 것.
  • D (Distance from Main Sequence) :  이상적인 균형의 상태인  A + I = 1 의 함수에서 수직으로 떨어진 거리. (아래 그래프 참조)


onjava/2004/01/21/graphics/figure3.gif

이미지 출저 : Managing Your Dependencies with JDepend


가장 중요한 것은 패키지 간의 순환참조를 보여주는 Cycles 부분입니다.

JDependCycles.JPG

  순환참조 관계의 패키지들은 부분적으로 배포될 수도 없고, 한 패키지를 변경할 때 그 영향력을 파악하기도 힘들게 만듭니다. 순환 참조에 대한 자세한 내용은 아래의 링크를 참조하시기 바랍니다.


관련자료


이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 정상혁 | 2009/01/19 22:00 | 기술 자료 | 트랙백 | 덧글(0)

트랙백 주소 : http://benelog.egloos.com/tb/2208368
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶