Essential software architecture - Gorton, Ian (Springer, 2006)