Software architecture and design illuminated - Qian, Kai (Jones and Bartlett illuminated series, 2010)