Pattern languages of program design. - Harrison, Neil B., 1957-; Foote, Brian; Rohnert, Hans (Software patterns series, 2000)