Antipatterns: Identification, Refactoring and Management