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