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