In this paper, the authors address the problem of software restructuring, a method often used during software maintenance in order to improve the structure, and therefore the maintainability, of a software system. Improper software structure is the main factor that negatively influences the maintainability of the software system, and thus improving it becomes a major requirement. Maintenance activities, such as adding new functionalities or correcting previously undetected errors within the software system, imply continuous restructuring of the code. They aim at automatically identifying, using an unsupervised approach, the refactorings that would improve the internal structure of a software system. For this purpose, a self-organizing feature map will be used.