Successful software reengineering