UML profiles support annotations at the modeling level. However, current modeling tools lack the capabilities to generate such annotations required for the programming level, which is desirable for reverse engineering and forward engineering scenarios. To overcome this shortcoming, the authors defined an effective conceptual mapping between Java annotations and UML profiles as a basis for implementing the JUMP tool. It automates the generation of profiles from annotation-based libraries and their application to generate profiled UML models. In this paper, they compare their mapping with the different representational capabilities of current UML modeling tools, apply their tool to a model-based software modernization scenario, and evaluate its scalability with real-world libraries and applications.