• Nenhum resultado encontrado

6 CONCLUSÕES E TRABALHO FUTUROS

6.1 CONCLUSÕES

O presente trabalho trata de um aspecto importante da gerência de configuração: a integração contínua, que consiste na ideia de fazer com que um software mantenha-se sempre em estado funcional, isso porque, sempre que ocorrer uma mudança no repositório do projeto, inicia-se uma nova construção do software. A integração contínua faz parte da gerência de configuração, no entanto, a gerência de configuração não é dependente da integração contínua. O conceito da gerência de configuração é controlar todas as ferramentas e softwares necessários em todo o processo de desenvolvimento e implantação do software.

Para atingir os objetivos, inicialmente o projeto foi migrado para a estrutura padrão de diretórios que o Maven utiliza. Após a migração, foram desenvolvidos os testes automatizados de todos os cenários do software. Finalizando as etapas citadas, iniciou-se a utilização de um gerenciamento de versões com um repositório externo do projeto. Por fim, foi configurado um servidor de integração contínua e uma ferramenta que auxilia todo esse processo.

O presente trabalho teve cinco principais objetivos específicos, nos quais, foram atingidos e concluídos com sucesso. São eles: construir um build automatizado, desenvolver testes unitários automatizados, colocar os artefatos do projeto sob gerência de configuração, configurar uma ferramenta que auxilia o processo de integração contínua e implantar um servidor de integração contínua.

A utilização de um build automatizado faz com que se torne possível executar a construção de um projeto com apenas um comando. Esse build em muitos casos pode também executar os testes automatizados.

O desenvolvimento dos testes unitários automatizados está ligado diretamente à qualidade de software. Esses testes garantem que uma nova versão está contemplando todos os cenários e regras de negócio do software, validando se o projeto está de acordo com todas as suas funcionalidades.

Todos os artefatos que compõem uma versão de software foram colocados sob uma ferramenta de gerenciamento de versões. Esse gerenciamento de versões é feito no repositório externo do projeto, contemplando a etapa de gerenciamento de configuração.

A seleção de uma ferramenta que auxilia o processo de integração contínua faz com que todo o histórico das construções fiquem registradas na ferramenta. É possível avaliar logs, testes executados e também configurar a mesma para sempre que ocorrer uma mudança no repositório, ela inicie uma nova construção do projeto.

O servidor de integração contínua, além de possuir a ferramenta que auxilia todo o processo, faz o papel de um ambiente, com as configurações mais próximas ao ambiente em que o software é executado em sua versão final. Assim, todas as versões são testadas e validadas em um ambiente diferente.

Com a finalização de todas as etapas mencionadas acima, o objetivo geral foi atingido com êxito. Tendo em vista os aspectos mencionados sobre a aplicação da integração contínua, pode-se concluir que a sua aplicação torna-se eficaz na medida em que o processo constituído.

É importante salientar que quanto mais testes um software possuir, a qualidade final do projeto tende a ser melhor, isso porque a cada nova construção do projeto, mais cenários são testados e validados.

Entretanto, as construções desses testes automatizados devem ser observadas para que esses testes não demorem muito. Rotinas de teste muito lentas podem afetar a equipe de desenvolvimento e também deixar a construção do projeto demorada.

O uso de uma ferramenta que auxilia o processo de integração contínua é muito válido e economiza muito tempo. Mas, é importante que os passos feitos pela ferramenta de integração contínua sejam conhecidos por todos os envolvidos no projeto. Se a ferramenta parar de funcionar, os mesmos passos podem ser feitos por alguém da equipe do projeto sem maiores problemas.

Neste sentido, é importante a avaliação das tecnologias usadas para a construção e execução dos testes, bem como o controle de versões usado. Se essas ferramentas não forem simples, pode ser complexa a construção de um projeto manual seguindo o processo de integração contínua.

Na criação do processo de integração contínua desse projeto, foi utilizado o Git com a responsabilidade de controlar as versões do software e o Maven para efetuar a construção automatizada do projeto, bem como, controlar as suas dependências. Essas ferramentas são simples e de fácil uso, possibilitando uma construção manual do projeto rápida e simples, seguindo todo o processo de integração contínua definido.

A aplicação da integração contínua também necessita de uma boa avaliação sobre o projeto no qual ela vai ser aplicada. Pode ser bem complexa a aplicação da integração contínua em grandes projetos que tenham muitos branchs ou então com equipes que não estejam dispostas e confiantes com o processo da aplicação da integração contínua. Toda a equipe envolvida no projeto deve entender que a integração contínua traz benefícios a todos.

Sem o comprometimento da equipe envolvida no projeto, é possível que a aplicação da integração contínua não tenha sucesso. Após o comprometimento da equipe, os benefícios da integração contínua logo começam a surgir.

Software com mais qualidade, rastreamento de erros de uma forma mais dinâmica, automatização de rotinas e construções frequentes fazem com que a integração contínua mereça um foco em muitos projetos, visando um produto final de melhor qualidade.