Recognising design patterns