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