Software modernization for business applications is often driven by the need for supporting additional frontend channels such as web or mobile. At the same time, business logic encapsulated by services and the underlying persistence implementation should be reused. In contrast to writing new graphical user interfaces (GUI) utilizing the latest programming language or framework, we propose a model-driven software engineering (MDSE) approach for specifying the new graphical user interface. In addition, we utilize model-based reverse engineering (MBRE) to discover, transform and integrate existing services and their data types. By providing support for modeling an anti-corruption layer, existing services can be integrated into the new GUI model without exposing potential design flaws from the legacy system. The model of legacy services and data types combined with the newly modeled graphical user interfaces are processed by transformation and generation processes to create source code for user interface, anti-corruption layer and service calls. Thus, enabling efficient integration of existing services in new GUIs by model-based reverse engineering and ensuring flexibility to quickly adapt new graphical user interface technologies through model-driven engineering techniques in the future. First experience from real-world projects indicates that the introduced approach enables faster creation of new graphical user interfaces by relying on production-proven services and data types.