Design Pattern Detection for Reverse Engineering