Software architecture : organizational principles and patterns - Dikel, David M. (Software architecture series, 2011)