Integrating user knowledge into design pattern detection