Summary: | Made available in DSpace on 2016-06-02T19:05:27Z (GMT). No. of bitstreams: 1
1694.pdf: 901058 bytes, checksum: e514a96a13b1c36a4d60a8b5b7008adb (MD5)
Previous issue date: 2007-10-28 === 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. === Para reduzir custos, minimizar riscos, antecipar prazos e otimizar recursos de projetos de
novos produtos recomenda-se, sempre que possível, a reutilização de artefatos de produtos
similares e bem sucedidos existentes. Porém, esses artefatos devem ser de fácil adaptação para
que satisfaçam aos requisitos desses novos produtos com pouca ou nenhuma necessidade de
re-projeto ou de re-codificação. Este trabalho descreve uma abordagem de reengenharia
iterativa orientada a características para realizar concomitantemente a revitalização de
sistemas embutidos legados e a criação incremental de um núcleo de artefatos reutilizáveis,
para apoiar o desenvolvimento de outros sistemas similares, membros de uma família de
produtos. Tais sistemas são geralmente pequenos e sofrem constantes manutenções para
apoiarem a evolução do hardware que integram, acelerando o processo natural de degradação
do software. A realização de um processo de reengenharia pode prolongar a vida útil desses
sistemas, melhorando suas propriedades estruturais para uma melhor adaptação a mudanças.
Princípios e técnicas ágeis são aplicados ao longo de todo o processo, provendo interações
contínuas com o cliente, entregas de versões executáveis testadas e parcialmente
modernizadas em intervalos curtos e freqüentes, com documentação em nível apropriado e
preparadas para modificações futuras. Técnicas de Linha de Produtos de Software são
utilizadas para a modelagem de domínio e para o projeto de componentes genéricos de
software. Suas atividades são realizadas sem a necessidade de congelamentos ou duplicações
de código e permitem que manutenções e paralisações ocorram a qualquer instante, sem
prejuízo das melhorias já desenvolvidas nas iterações previamente concluídas. Um estudo de
caso é apresentado para exemplificar a aplicação da abordagem proposta em um ambiente real
e para avaliar os seus resultados.
|