The Role of Design Pattern Decomposition in Reverse Engineering Tools