Name: | Description: | Size: | Format: | |
---|---|---|---|---|
12.07 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
As práticas de desenvolvimento de software têm como propósito orientar os
programadores no desenvolvimento de aplicações com qualidade e sem grandes dificuldades.
Porém, dificilmente tudo corre de acordo com o planeado porque as práticas podem não estar
adaptadas ao processo de desenvolvimento do projecto. Nos dias que correm, em particular na
área móvel, é possível desenvolver uma aplicação sem muito esforço, bastando, para o efeito, ter
um repositório de controlo de versões onde cada programador tem uma cópia do mesmo. Assim,
durante este processo de desenvolvimento, o programador vai implementando tudo o que for
necessário para cumprir a sua tarefa, até que terá que integrar o seu código com o repositório.
Posto isto, poderá suceder uma de duas situações: o repositório encontra-se sem alterações desde
a última cópia e a integração sucede sem problemas, ou, ao invés, o repositório encontra-se com
alterações podendo, deste modo, dar origem a conflitos difíceis de corrigir. Este tipo de prática,
denominada integração tradicional é, normalmente, realizada perto do fim do ciclo de
desenvolvimento, propiciando riscos desnecessários aquando da distribuição da aplicação ao
cliente, o que poderá dar origem a incumprimento de prazos e de requisitos.
O Continuous Integration contribui para mudar as regras do jogo, uma vez que as suas
práticas contribuem para o aumento da qualidade das aplicações sem qualquer esforço extra por
parte dos elementos da equipa, mudando a forma de pensamento de todo o processo de
desenvolvimento e, mantendo o foco na redução do risco através de várias integrações e práticas
diárias. Estas têm por base a automação contínua, onde se procede à compilação, testes e
inspecções de código sem necessidade de qualquer acção humana, o que permite obter
rapidamente feedback de cada integração. Tendo como base estes motivos, foi proposto à Present
Technologies, a implementação deste conceito através de um sistema Continuous Integration.
Para o efeito, o trabalho desenvolvido seguiu, numa primeira fase, dois caminhos em paralelo:
um primeiro caso prático, onde foi desenvolvida uma aplicação móvel na plataforma iOS sem
integração com o sistema e realizada uma investigação acerca do conceito. Como resultado, foi
possível estabelecer sinergias: foram identificados problemas para os quais a Continuous
Integration poderia contribuir e aplicadas algumas práticas ao caso. Na segunda fase, e após a
implementação do sistema na empresa, foi desenvolvido um segundo caso prático com outra
aplicação, também iOS, de forma a demonstrar que os problemas que surgiram no primeiro caso
foram resolvidos ou mitigados pela utilização desta prática e do sistema. Como resultado foi
possível disponibilizar um sistema em produção, acessível a qualquer integração de um novo
projecto independentemente da tecnologia, plataforma e linguagem de programação
Description
Keywords
Continuous integration Automação Testes Inspecção Feedback iOS