Nowadays, organizations are facing the problematic of having to modernize or replace their legacy
software. This software has involved the investment of money, time and other resources through the
ages and there is a high risk in replacing it. The purpose of reengineering is to adapt software in
a disciplined way in order to improve its quality in aspects such as operability, functionality or
performance. The focus of reengineering is on improving an existing system with a higher return on
investment than would be achieved by developing a new system.
In the context of reengineering, the term legacy was associated with software that survived several
generations of developers, administrators and users. The entry into the market of new technologies
or paradigms is increasingly occurring and, motivates the growing demand for the adaptation of
systems developed more recently. Mobile Computing is crucial to harvesting the potential of these
new paradigms. Smartphones are the most used computing platform worldwide. They come
with a variety of sensors (GPS, accelerometer, digital compass, microphone and camera)
enabling a wide range of applications in Pervasive Computing, Cloud
Computing and Internet of Things (IoT)