Design patterns

How to design software … in a clever way