APIviz
Java API Visualizer


           이희승
  http://gleamynode.net/
JBoss, a division of Red Hat
목차
    Javadoc 생성 원리
●



    Standard Doclet
●



    Custom Doclet
●



    APIviz 소개
●



    APIviz 확장 태그
●


    로드 맵...
생성 원리
               Javadoc

    Javadoc 명령 실행
●


    소스 코드의 주석 부분을 해석
●


    com.sun.javadoc 객체 모델 생성
●


          본문...
Standard Doclet

    가장 대중적인 Doclet
●


          JDK API Documentation
      –

    API 용법 설명에 필요한 대부분의 요구 충족
●


       ...
Custom Doclet

    Javadoc 명령 실행시 '-doclet' 플래그 지정
●


          javadoc -doclet org.jboss.apiviz.APIviz …
      –

    co...
Hybrid Custom Doclet

    Standard Doclet 을 감싸는 또다른 Doclet
●



    Standard Doclet 이 생성한 HTML 을 수정
●


          텍스트 Sear...
소개
                    APIviz

    Hybrid Custom Doclet
●


    클래스 및 패키지별 상관 관계 분석
●


    Graphviz 의 graph visualization...
패키지 다이어그램
    JDepend 로 패키지간
●

    의존성 정확히 파악
    Circular dependency
●



    API 를 배우기 좋은
●


    시작점을 Highlight
      ...
클래스 다이어그램
개별 클래스 다이어그램
확장 태그
    @apiviz.*
●



    기존 Visualizer 와는 달리 의미에 집중
●



    소스 코드를 읽을때 어떻게 해석되는가 ?
●


           @apiviz.color
     ...
확장 태그
    다이어그램 노이즈 제거
●


          @apiviz.exclude <regex>
      –

                  ^.*(Impl|Util)$
              ●


...
고급 확장 태그
    클래스간 관계 지정
●


    Generalization, Realization 만 자동 인식
●


           Dependency – @apiviz.uses
       –

   ...
한계
    복잡한 모델의 Visualization 자체
●


          패키지 100 개의 의존성을 예쁘게 표현 ?
      –

    간결한 자동 관계 추론
●


          잡음 없는 자동 추론...
로드 맵 또는 개선안
    선택적 자동 관계 추론
●


    레이아웃 엔진 교체
●


    UML, 비 UML 에 무관히 최적의 표현법 발굴
●



    No More Standard Doclet?
●


...
APIviz – Java API Visualizer
Upcoming SlideShare
Loading in …5
×

APIviz – Java API Visualizer

2,162 views

Published on

'APIviz – Java API Visualizer' - presented at ZDNet Korea Advanced Computing Conference 2009 (14 April 2009)

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,162
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

APIviz – Java API Visualizer

  1. 1. APIviz Java API Visualizer 이희승 http://gleamynode.net/ JBoss, a division of Red Hat
  2. 2. 목차 Javadoc 생성 원리 ● Standard Doclet ● Custom Doclet ● APIviz 소개 ● APIviz 확장 태그 ● 로드 맵 ●
  3. 3. 생성 원리 Javadoc Javadoc 명령 실행 ● 소스 코드의 주석 부분을 해석 ● com.sun.javadoc 객체 모델 생성 ● 본문 – 태그 이름 및 값 – 객체 모델을 Doclet 이 처리 ● Standard Doclet – Custom Doclet – Custom Doclet derived from Standard Doclet –
  4. 4. Standard Doclet 가장 대중적인 Doclet ● JDK API Documentation – API 용법 설명에 필요한 대부분의 요구 충족 ● HTML 본문 – 상호 참조 – Types ● URLs ● Metadata – Author, Version, … ●
  5. 5. Custom Doclet Javadoc 명령 실행시 '-doclet' 플래그 지정 ● javadoc -doclet org.jboss.apiviz.APIviz … – com.sun.javadoc 패키지가 제공하는 객체 모 ● 델을 바탕으로 임의의 행동 수행 XDoclet (pre-annotation era) – 각종 XML 디스크립터 생성 ● Tag enforcer – 특정 태그를 반드시 기입하도록 ● @todo finder – @todo 태그를 찾아서 .txt 형태로 출력 ●
  6. 6. Hybrid Custom Doclet Standard Doclet 을 감싸는 또다른 Doclet ● Standard Doclet 이 생성한 HTML 을 수정 ● 텍스트 Search & Replace – 이미지 삽입 – 기본 스타일 개선 – 기밀 정보 표시 – Standard Doclet 의 기능을 보완하는 확장태그 ● 확장 태그 값을 바탕으로 HTML 수정 – @confidential, @draft, @assistant John Doe –
  7. 7. 소개 APIviz Hybrid Custom Doclet ● 클래스 및 패키지별 상관 관계 분석 ● Graphviz 의 graph visualization 사용 ● UML 다이어그램 자동 생성 삽입 ● 패키지 다이어그램 – 클래스 다이어그램 – 확장 태그 ● API 이해를 돕는 요소 부각 – API 이해를 방해하는 요소 제거 – Realization, Generalization 이외의 관계 추가 –
  8. 8. 패키지 다이어그램 JDepend 로 패키지간 ● 의존성 정확히 파악 Circular dependency ● API 를 배우기 좋은 ● 시작점을 Highlight @apiviz.landmark –
  9. 9. 클래스 다이어그램
  10. 10. 개별 클래스 다이어그램
  11. 11. 확장 태그 @apiviz.* ● 기존 Visualizer 와는 달리 의미에 집중 ● 소스 코드를 읽을때 어떻게 해석되는가 ? ● @apiviz.color – @apiviz.shape – @apiviz.landmark – @apiviz.stereotype –
  12. 12. 확장 태그 다이어그램 노이즈 제거 ● @apiviz.exclude <regex> – ^.*(Impl|Util)$ ● @apiviz.excludeSubtypes – 클래스 및 패키지 유형 지정 ● @apiviz.landmark – @apiviz.stereotype – @apiviz.category –
  13. 13. 고급 확장 태그 클래스간 관계 지정 ● Generalization, Realization 만 자동 인식 ● Dependency – @apiviz.uses – Navagability – @apiviz.has – Aggregation – @apiviz.owns – Composition – @apiviz.composedOf – @see –
  14. 14. 한계 복잡한 모델의 Visualization 자체 ● 패키지 100 개의 의존성을 예쁘게 표현 ? – 간결한 자동 관계 추론 ● 잡음 없는 자동 추론은 가능한가 ? – Graphviz 에 레이아웃 및 렌더링 의존 ● 외부 실행 파일 호출 (dot.exe) – 소프트웨어 다이어그램에 최적화 ? – 클래스 상관 관계 태그 문법의 복잡성 ●
  15. 15. 로드 맵 또는 개선안 선택적 자동 관계 추론 ● 레이아웃 엔진 교체 ● UML, 비 UML 에 무관히 최적의 표현법 발굴 ● No More Standard Doclet? ● Sexy Style – DHTML / AJAX – Full Text Search – Collaborative Tagging / Comment System –

×