Pattern languages of program design 4 - Foote, Brian; Harrison, Neil; Rohnert, Hans (Addison-Wesley, 2000)