Building application frameworks: object-oriented foundations of framework design - Fayad, Mohamed E; Schmidt, Douglas C; Johnson, Ralph E (John Wiley, 1999)