An Object Oriented Approach to Software Restructuring