Pattern-oriented software architecture : a system of patterns - Buschmann, Frank (Wiley, 2011)