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