Pattern-oriented software architecture - Buschmann, Frank (Wiley, 1996)