Pattern Languages of Program Design 5 door Markus Voelter & Manolescu