Uma abordagem de reengenharia iterativa orientada a características para sistemas embutidos legados
Abstract
To reduce costs, to minimize risks, to anticipate deadlines and to optimize resources of new
product designs it is recommended, whenever possible, to reuse artifacts of existing
successful similar products. However, these artifacts must be of easy adaptation to meet the
requirements of the new products with a few or no need of re-design or re-coding. This work
describes a feature oriented iterative reengineering approach to concomitantly achieve both
the revitalization of embedded legacy systems and the incremental creation of a core of
reusable artifacts, to support the development of other similar systems, members of a product
family. Such systems are generally small and pass through frequent maintenances to support
the evolution of the hardware they integrate, accelerating the natural software degradation
process. The accomplishment of a reengineering process can extend the life cycle of these
systems, improving their structural properties for a better adaptation to changes. Agile
principles and techniques are applied throughout the process, providing continuous
interactions with the customer and deliveries of executable and tested partially modernized
versions in short and frequent intervals, with documentation in appropriate level and prepared
for future modifications. Software Product Line techniques are used for the domain modeling
and for the design of generic software components. Its activities are accomplished without the
need of code freezing or duplication and allow maintenances and interruptions at anytime,
without prejudice of the enhancements already developed in all previously ended iterations. A
case study is presented to exemplify the proposed approach in a real environment and to
evaluate its results.