Building Application Frameworks: Object-Oriented Foundations of Framework Design (M. Fayad, D. Schmidt, R. Johnson (eds.)