I know that refactoring is \"changing the structure of a program so that the functionality is not changed\". I was talking with some of the guys I\'m working with on my fina
Refactoring = improving non functional requirements while keeping unaltered the functional ones.
Non functional requirements = modularity, testability, maintainability ,readability, separation of concerns, liskov principles and so on...