Software Architecture - Crnkovic, Ivica (Springer Berlin Heidelberg, 2011)