1. Concept
    1. Providing generic functionality
    2. A collection of libraries providing a defined API
    3. VS library
      1. inversion of control
      2. default behavior
      3. extensibility
      4. non-modifiable framework code
    4. Architecture
      1. frozen spots
      2. hot spots
      3. how
        1. Explicit component interface
        2. Composing and subclassing in OO world
  2. Purpose
    1. facilitate software development
    2. reducing overall development time
  3. How
    1. Evolve
    2. Art, not science
      1. Software Elegance
      2. Hard to keep elegant