• Nenhum resultado encontrado

Este cap´ıtulo apresentou os conceitos b´asicos necess´arios para o entendimento e valoriza¸c˜ao desta tese. O estado da arte e o da pr´atica dos diferentes temas abordados nesta tese foram discutidos.

Como comentado neste cap´ıtulo, notou-se que a preocupa¸c˜ao dos trabalhos que conside- ram padr˜oes na reengenharia est´a relacionada com o entendimento e com a recupera¸c˜ao da estrutura e da arquitetura do sistema legado. Dessa forma, o entendimento da funcionalidade torna-se dependente da experiˆencia do engenheiro de software no dom´ınio do sistema legado. A partir disso, notou-se a possibilidade de utilizar nesta tese linguagem de padr˜oes de an´alise na reengenharia de sistemas legados para alcan¸car re´uso n˜ao somente das solu¸c˜oes de an´alise como tamb´em do conhecimento do dom´ınio.

Um outro ponto notado ´e o aumento da produtividade na ind´ustria de software com o uso de frameworks, al´em da possibilidade de desenvolver sistemas utilizando novas tecnologias. A partir dessas vantagens de frameworks e considerando o interesse de migrar sistemas legados

15 http://junit.sourceforge.net/ 16 http://xunit.sourceforge.net/ 17 http://sourceforge.net/projects/pounder 18 http://www.tensegrent.com 19 http://fitnesse.org/ 20 http://webtest.canoo.com/webtest/ 21 http://fit.c2.com/ 22 http://sourceforge.net/projects/marathonman/ 23 http://www.nolacom.com/avignon/ 24 http://sunit.sourceforge.net/

para novas tecnologias, bem como a ausˆencia de iniciativas de processos e abordagens de reengenharia com ferramentas computacionais de apoio associadas, notou-se a possibilidade de utilizar nesta tese frameworks como apoio computacional, a fim de obter re´uso de projeto e de implementa¸c˜ao.

Observou-se tamb´em ausˆencia de iniciativas de testes associados a padr˜oes de software. Como mencionado neste cap´ıtulo, isso ´e uma preocupa¸c˜ao que deve ser considerada, j´a que padr˜oes s˜ao utilizados na Engenharia de Software e atividades de teste fazem parte da garantia de qualidade de qualquer produto desenvolvido. Apesar de haver preocupa¸c˜ao de pesquisadores sobre a valida¸c˜ao do sistema resultante da reengenharia, poucos m´etodos de reengenharia abordam isso, porque custo e esfor¸co consider´aveis s˜ao despendidos em atividades de teste. Esse contexto colaborou para a motiva¸c˜ao de parte deste trabalho que trata do re´uso de teste. Tal re´uso foi observado com a possibilidade de associar recursos de teste aos padr˜oes de linguagens de padr˜oes de an´alise, mais especificamente, a GRN. Isso colaborar´a para a “reengenharia guiada por teste”.

Dessa forma, o trabalho abordado nesta tese trata de re´uso na reengenharia de software, em diversos n´ıveis de abstra¸c˜ao, ou seja, an´alise, projeto, implementa¸c˜ao e teste.

Outros problemas enfrentados na reengenharia s˜ao a entrega do software com atraso e com custo al´em do estimado e as mudan¸cas freq¨uentes de requisitos, como ocorre no desenvolvimento de software. Assim, ´e necess´ario ter um arcabou¸co de reengenharia que amenize isso, por exemplo, que utilize caracter´ısticas de m´etodos ´ageis no contexto de reengenharia. Outra carˆencia identificada foi a ausˆencia de processos de evolu¸c˜ao espec´ıficos para frameworks de aplica¸c˜ao.

A documenta¸c˜ao dos processos propostos nesta tese ´e baseada nos elementos funda- mentais que comp˜oem o arcabou¸co do RUP. Tanto o framework GREN como a linguagem de padr˜oes GRN foram selecionados para serem utilizados pelo arcabou¸co de reengenharia proposto nesta tese.

O pr´oximo cap´ıtulo apresenta um processo ´agil de reengenharia baseado em framework e alguns estudos de caso de reengenharia utilizando o framework GREN como apoio computacional. Os dois cap´ıtulos subseq¨uentes apresentam um processo de evolu¸c˜ao de frameworks de aplica¸c˜ao e uma abordagem de re´uso de teste. Ambos podem ser utilizados durante o uso do arcabou¸co de reengenharia definido no pr´oximo cap´ıtulo.

3

ARA: Um Arcabou¸co de

Reengenharia ´Agil

3.1

Considera¸c˜oes Iniciais

O uso de padr˜oes de software e frameworks est´a sendo cada vez mais intenso no desenvol- vimento de software (Markiewicz e Lucena, 2001). Uma das preocupa¸c˜oes da Engenharia de Software ´e migrar sistemas legados para novas tecnologias e paradigmas. Assim, este cap´ıtulo apresenta um arcabou¸co de reengenharia ´agil que ap´oia a migra¸c˜ao de sistemas legados procedimentais para sistemas baseados em padr˜oes e frameworks, utilizando para isso o apoio de ferramentas, processos, abordagens de re´uso e pr´aticas de m´etodos ´ageis. Este cap´ıtulo apresenta tamb´em um processo de reengenharia, que foi definido para viabilizar o uso de tal arcabou¸co, objetivando reduzir alguns dos riscos associados `a reengenharia de software, como aqueles ressaltados por Rosenberg (1996) e apresentados na Se¸c˜ao 2.2 do Cap´ıtulo 2. Outros recursos tamb´em foram criados nesta tese para serem associados ao arcabou¸co e est˜ao apresentados nos Cap´ıtulos 4, 5, 6.

O cap´ıtulo est´a organizado da seguinte forma: Na Se¸c˜ao 3.2 ´e apresentado o arcabou¸co de reengenharia ´agil, denominado ARA. Na Se¸c˜ao 3.3 descreve-se o processo ´agil de reen- genharia, denominado PARFAIT (Processo ´Agil de Reengenharia baseado em FrAmework no dom´ınio de sistemas de Informa¸c˜ao com t´ecnicas de VV&T), enfocando principalmente os objetivos das suas fases e atividades, e justificando a sua agilidade. Na Se¸c˜ao 3.4 comenta-se dois estudos de caso para avaliar a adequa¸c˜ao das atividades do PARFAIT,

inicialmente definidas. Na Se¸c˜ao 3.5 apresenta-se a an´alise dos resultados de um estudo de caso que foi feito para avaliar a aplicabilidade e a efetividade desse processo. A partir dos resultados desses estudos de caso, foram identificadas algumas necessidades, comentadas na Se¸c˜ao 3.6, para que o processo e, conseq¨uentemente, o arcabou¸co, pudesse ser aplicado mais efetivamente. Na Se¸c˜ao 3.7 s˜ao apresentadas as considera¸c˜oes finais deste cap´ıtulo.