best books on tannenbaum pattern design