Application Reengineering: Building Web-Based Applications and Dealing with Legacies