Pattern-oriented software architecture - Schmidt, Douglas C. (Wiley, 2000)