Pattern-oriented software architecture a system of patterns - Buschmann, Frank (John Wiley & Sons, 1996)