Pattern-Oriented software Architecture: A System of Patterns - Frank Buschmann Regine Meunier Hans Rohnert Peter