5. What is Frameworks Douglas C. Schmidt Says.. Frameworks define “semi-complete” application that embody domain-specific object structures and functionality. + to produce custom application
6. Libraries is.. Application Block DATABASE ADTs MATH NETWORKING App Specific Logic OO Design Invocations GRAPHICS GUI Event Loop Singleton Strategy Selections Reactor Adapter State Active Object Design Pattern Class Library Component Architecture
7. But Framework is .. Control – Flow (IoC) Active Object State NETWORKING GUI MATH Reactor Event Loop App Specific Logic Invocations Callbacks ADTs Singleton Adapter DATABASE GRAPHICS Application Framework Component Architecture
16. What is The Good Technical Documentation The book “Developing Quality Technical Information”
17. Key Issues of Framework Documentation 내용측면 Usage and Design 정보의 조화 Contents의 구조 Contents의 표현 다양한 경로 제공 관리측면 일관성과 중복 다양한 표현방법 Contents의 통합
18. Usage vs Design Information 좋은 제품은 내부 구조를 알지 못해도 사용할 수 있어야 한다. 대부분의 프레임워크 문서들은 내부 설계와 아키텍처 설명에 집중되어 있다. But frameworks documentation must mix.
19. What is The Good Framework Documentation? Reader’s point of view : task-oriented information well organized understandable easy to retrieve Writer’s point of view : identifying the documentation needs selecting the contents choosing the best representation organizing the contents adequately
20. Pattern Languages Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide
31. Pattern : Graded Examples Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide Pattern : Graded Examples
32. Problem 어떻게 독자가 자신의 애플리케이션에 해당 프레임워크 적용이가능한지 알 수 있도록 도와 줄까? 문인은 붓로말하고 무인은 칼로 말한다. 하지만개발자들은 코드로 말한다. Pattern : Graded Examples
33. Forces Task 중심 무엇을 할 수 있고, 어떻게 하면 되나 다양한 독자들 비용(Cost)대비 효율 TDD를 한다면, 별도의 예제를 따로 만들지 않아도 된다.
34. Solution 예제를 단계적으로 제공 좋은 예제 집합 도메인 용어로 구성 프레임워크 기능들의 표현 다른 문서화를 완성시키는 역할 예제는 추상화된 설계보다 이해하기 쉽다 프레임워크의 유용성을 바로 알 수 있게 해준다 프레임워크의 유용성 뿐만 아니라 제한성도 보여 준다. 프레임워크의 설계가 아닌 사용법을 보여준다. Pattern : Graded Examples
37. Pattern : Documentation Roadmap Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide
39. Problem 어떻게 하면 독자가 필요로 하는 정보를 쉽게 찾을 수 있도록 도와 줄 수 있을까? Pattern : Documentation Roadmap
40. Forces 다양한 독자들 애플리케이션 개발자 프레임워크 선별자 프레임워크 개발자 프레임워크 유지보수인 다른 프레임워크 개발자 각기 다른 재사용 찾는 방법의 난이도 Pattern : Documentation Roadmap
41. Solution Task 중심 산발적 읽기도 지원 navigating top-down from a main entry point navigating bottom-up from a small piece of information. 전체적인 조정 가능성을 향상시켜라 관련된(독자/기능/사용순서) 주제끼리 묶어라 탭과 번호, 단락 등을 이용하여 보기 좋게 하라 Pattern : Documentation Roadmap
44. Pattern : Cookbook & Recipes Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide Pattern : Cookbook and Recipes
51. Pattern : Customizable Points Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide
52. What is Customizable Point Hot-spot 커스터마이제이션은사전에 정의된 개선영역에 의해서 수행된다. Hook 변경되어야 하는 영역과 방법 : 따라야 하는 제약사항과 Hook의 영향 Hot spot은 하나 이상의 Hook으로 구성 Pattern : Customizable Points
58. Pattern : Design Internals Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide
59. Problem 진보된 커스터마징을 원하는 독자에게 어떻게 프레임워크의 설계와 구현에 대해서 알려줄 수 있을까? Pattern : Design Internals
60. Force 다른 목적들 사용법과 설계정보 사이의 균형 설계정보 복잡성의 최소화 Pattern : Design Internals
61. Solution 정확하고 상세한 프레임워크의 내부 설계정보를 제공 especially hot-spots. can help them better understand and enable more advanced customizations 아키텍처와 설계원칙 디자인 패턴을 이용 간단한 표현 풍부한 정보 제공 Pattern : Design Internals
63. Review : Pattern Languages Documentation Roadmap Framework Overview first recipe where is start? how-to’s Cookbook and Recipes Error Recovery Guide errors uses Graded Examples code illustrate Customizable Point Traversable Code how it works? Design Internals index Reference Guide
64. Reference “Patterns for Effectively Documenting Frameworks” –Ademar Aguiar and Gabriel David “질서 있는 아키텍처 패턴이야기” – 김용현(마이크로소프트웨어) “Framework Engineering” – 손영수(www.arload.net) www.junit.org www.springsource.org www.google.com www.evacast.net