• Nenhum resultado encontrado

5 ANÁLISE DOS SISTEMAS APLICADOS

5.7 DESEMPENHO EM COMANDOS

Os três sistemas são rápidos, não tornam lentas as tarefas a ponto do usuário se distrair com outras atividades, Mas o git se mostra o mais rápido. Para se ter uma ideia da velocidade a empresa Pronus divulgou em 2016 os resultados de testes realizados com as operações do sistema.

Tabela 1 - Tempo de Resposta por Subcomando em Milissegundos

Subversion 1.9.3 Git 2.9.1 Mercurial 3.8.4

add 39 9 27 checkout 63 5 clone 59 46 commit 504 17 54 create 160 diff 38 8 60 fetch 31 init 4 21 log 38 3 36 merge 15 29 mkdir 569

134 pull 27 push 58 25 status 39 4 33 update 58 Fonte: https://blog.pronus.io/posts/comparacao-de-desempenho-entre-subversion-mercurial-e-git/ (2016) 5.8 RESUMO COMPARATIVO

Para facilitar o entendimento foi construído um quadro comparativo com as características que foram analisadas.

Quadro 3 - Quadro analítico dos sistemas aplicados

Subversion Git Mercurial

Instalação e Configuração

Instalação via linha de comando. Possui cliente gráfico com assistente de instalação.

Instalação via linha de comando. Possui cliente gráfico com assistente de instalação.

Instalação via linha de comando. Possui cliente gráfico com assistente de instalação. Documentação Menos prática e mais

teoria

Mais prática. Teoria Pontual

Equilíbrio de Prática e Teoria

Aprendizagem e Usabilidade

As três ferramentas possuem documentação. Comandos Simples de aprender, seguem um padrão. Os clientes gráficos facilitam o uso das ferramentas para quem não tem prática com terminal de

comando. Para migrar do SVN para Mercurial é fácil. Migrar do Git ou Mercurial para o SVN, sendo alguém que nunca utilizou

135 complicado.

Repositórios Suporta repositório local, remoto ou compartilhado. Permite flexibilidade para se criar e

organizar diretórios, porém apenas através do sistema de arquivos do Subversion. Suporte repositório local, remoto ou compartilhado. Mais rápido na operação de criação do repositório. Suporte repositório local, remoto ou compartilhado. Não tão rápido, mas traz praticidade.

Cópia de trabalho Suporta o checkout parcial do

repositório, se necessário é possível criar uma cópia de trabalho de apenas um diretório em específico. Trabalham com o conceito de clone de repositório. A cópia de trabalho é uma cópia inteira de um repositório. Não suporta realizar checkout parcial. Trabalham com o conceito de clone de repositório. A cópia de trabalho é uma cópia inteira de um repositório. Não suporta realizar checkout parcial. Desempenho É o sistema centralizado mais rápido.

O git segundo testes divulgados é o sistema mais rápido.

Em testes o Mercurial consegue se aproximar do Git em termos de desempenho. Gerenciamento de Branches Através da flexibilidade de organização do repositório, permite ao usuário Implementar o

Possui suporte nativo para branch. Permite realizar o

gerenciamento de branches com mais agilidade.

Possui suporte nativo para branch. Tem um gerenciamento ágil, mas não como a agilidade imposta pelo git.

136 conceito de branch

através de diretórios. Fonte: elaborado pelo próprio autor (2016)

5.9 CONSIDERAÇÕES

Diante do que foi pesquisado no capítulo 2 e do que foi aplicado no capítulo 4, é possível dizer que o git é o sistema mais completo e rápido. Primeiramente por ser software livre e um sistema distribuído, depois por ter mais recursos, como a área de preparação, que o diferencia dos demais. Talvez seja o mais popular atualmente, grandes empresas utilizam o git, como Netflix, Google, Linkedin, Twitter entre outras. Tem a melhor documentação e uma vasta comunidade. O gerenciamento ágil de branches do Git é um grande diferencial no contexto atual de desenvolvimento onde muitas vezes é necessário ter mais de uma linha de desenvolvimento. As tarefas que são um pouco trabalhosas de se realizar em outros sistemas são fáceis no Git. Pelos motivos apresentados o Git é a melhor escolha no ponto de vista e contexto do presente trabalho. Mas para para escolher um sistema para ser utilizado deve ser levado em consideração pelo usuário as necessidades que se deseja resolver e o próprio contexto.

137

6 - CONCLUSÃO

O presente trabalho teve como problemática, as dificuldades de profissionais e de equipes no gerenciamento de alterações durante o desenvolvimento ou alteração de um software, a falta de disponibilização de forma integrada e os custos envolvidos e os prejuízos que erros e confusões em um ambiente sem o mínimo controle podem causar.

Para tal, buscou-se trazer uma visão prática de um ambiente de desenvolvimento com maior controle para uma demonstração de como um ambiente preparado a este modo pode trazer maior confiabilidade e produtividade. O foco ficou, entretanto, nos sistemas de controle de versão.

Nesse contexto, foram pesquisadas e testadas algumas ferramentas para serem utilizadas e selecionadas, preferencialmente, ferramentas com licença gratuita, isso para cumprir com o requisito de minimização de custos que outras ferramentas pagas iriam gerar aos autores do presente trabalho.

Encontrou-se durante toda a pesquisa e a realização da aplicação prática, problemas triviais relacionados com a instalação e configuração de cada ferramenta. Para algumas das ferramentas o conteúdo encontrado, tanto bibliográfico, quanto de outras fontes ora é muito específico ora não traz contribuição alguma para o cenário deste trabalho. Em contrapartida, para algumas das ferramentas, o conteúdo encontrado foi de importante ajuda e trouxe grande contribuição para este trabalho. Mas no geral existe vasta bibliografia e documentação que trouxeram quase toda a ajuda necessária para compreensão do tema.

Para validação da pesquisa foi realizado no capítulo 4, tutoriais práticos e explicativos, sobre as ferramentas de controle de versão pesquisadas e com intuito de serem de fácil compreensão e acessibilidade. No capítulo 5 foi realizada uma análise comparativa das ferramentas, essa comparação foi baseada na pesquisa e na aplicação.

O presente trabalho discutiu e apresentou a importância do controle de versão no desenvolvimento de um software. Não basta apenas o controle técnico, existe também o fator humano que há a ser considerado, pois se trata de um tema incluído na gerência de configuração, a qual também é um paradigma cultural, um estilo de trabalho que é implantado.

138 6.2 - Sugestão para trabalhos futuros

Como forma de dar continuidade, de maneira a estender futuramente o trabalho e aproveitar o conhecimento adquirido, foram sugeridos alguns itens que podem ser realizados.

● Desenvolver uma ferramenta de controle de versão, para arquivos de texto e código fonte.

● Testar a aplicação de outras ferramentas.

● Criar um modelo para implantação de um sistema de controle de versão, em um ambiente de integração contínua.

● Criação de uma ferramenta para montagem automática de ambientes de desenvolvimento local, de modo a possibilitar ao usuário, escolher quais ferramentas de desenvolvimento quer utilizar, em seguida a aplicação faz todo o resto do processo. ● Testar as ferramentas em um ambiente de rede real, com servidores.

● Criar uma ferramenta de controle de versão voltada para produção audiovisual.

139

REFERÊNCIAS

AKITA, Fábio. Começando com Git. 2010 Disponível em:

<http://www.akitaonrails.com/2010/08/17/screencast-comecando-com-git> Acesso em: 12 de Agosto de 2016

AMAZON. Amazon Web Services. O que é a Computação em Nuvem?. Amazon Web Services. 2015. Disponível em: <https://aws.amazon.com/pt/what-is-cloud-computing/> Acesso em 20 de Janeiro de 2016

AQUILES, Alexandre e Rodrigo Ferreira. Controlando Versões com Git e GitHub. 1ª Edição. São Paulo. Casa do Código. 2014

ATOM. O que é Dashboard?.2015 Disponível em: <http://www.atomsail.com/pt/o-que-e- dashboard-saas-atomsail.php> Acesso em 04 de Abril de 2016

BASS, Len e Ingo Weber e Liming Zhu. DevOps: A Software Architect’s Perspective. Nova York. Addison-Wesley. 2015

BERCZUK, Steve, and Brad Appleton. Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Boston. Addison-Wesley. 2002

CAELUM. Apostila Java e Orientação a objeto: Eclipse IDE. Disponivel em

<http://www.caelum.com.br/apostila-java-orientacao-objetos/eclipse-ide/> . Acesso em: 23 de agosto de 2015.

CAMARGO, Bruno. A cultura DevOps e a Fábrica Deploy. Disponível em:

<https://www.gitbook.com/book/brunocamargo/a-cultura-devops-e-a-fabrica-deploy/details> Acesso em: 23/07/2016.

CAVALCANTI, Lucas. Processo de build com o maven. Disponivel em:

<http://blog.caelum.com.br/processo-de-build-com-o-maven/> . Acesso em 23 de agosto de 2015.

CHACON, Scott and Ben Straub. Pro Git. Disponível em: <https://git-scm.com/book/pt- br/v1> Acesso em: 7 de maio de 2015

SEI, Carnegie Mellon University. CMMI for Development- Version 1.3 Disponivel em: <http://www.sei.cmu.edu/reports/10tr033.pdf> Acesso em: 20 de Fevereiro de 2016 SEI, Carnegie Mellon University. CMMI para Desenvolvimento - Versão 1.2. 2006 Disponivel em: <http://www.sei.cmu.edu/library/assets/whitepapers/cmmi-dev_1- 2_portuguese.pdf> Acesso em: 20 de Fevereiro de 2016

COLLINS-SUSSMAN, Ben e Brian W. Fitzpatrick. Controle de Versão com Subversion: Para Subversion 1.4 (Compilado da revisão 311). TBA. 2007

DANTAS, Cristine. Gerência de Configuração de Software: Saiba como desenvolver software de forma eficiente e disciplinada. Disponivel em:

<http://www.devmedia.com.br/gerencia-de-configuracao-de-

software/9145#ixzz3BXQP72q7>. Acesso em: 25 de Agosto de 2014.

DESTRO. Daniel. O que é Deploy?.2003 Disponível em: <http://www.guj.com.br/t/o-que-e- deploy/204366> Acesso em: 20 de Maio de 2016

140 DRIESSEN, Vincent. A successful Git branching model. 2010 Disponível em:

<http://nvie.com/posts/a-successful-git-branching-model/> Acesso em: 21 de Agosto de 2016 ERNST, Pablo D. Pagés. SourceTree para Git é uma mão na roda. Disponivel em:

<https://pablopagues.wordpress.com/2013/09/03/sourcetree-para-git-e-uma-mao-na-roda/ >. Acesso em 30 de agosto de 2015.

FILHO, Alberto Boller. Artigo Engenharia de Software 24 : Gerência de Configuração. Disponivel em: <http://www.devmedia.com.br/artigo-engenharia-de-software-24-gerencia-de- configuracao/16805#ixzz3jZzehHEw> . Acesso em 22 de Agosto de 2015.

FREITAS, Daniel Tannure Menandro de. Análise Comparativa entre Sistemas de Controle

de Versões. Monografia (Curso de Graduação em Ciência da Computação) - Universidade

Federal de Juiz de Fora. Juiz de Fora. 2014.

FOGEL, Karl. Produzindo Software Open Source: Como executar um projeto de software livre com sucesso. 2007 Disponível em: <http://producingoss.com/pt-br/> Acesso em 20 de Abril de 2016.

GERHARDT, Tatiana Engel .SILVEIRA,Denise Tolfo. Métodos de pesquisa. Porto Alegre: Editora da UFRGS, 2009.

GIBBS, W. Wayt. Software's Chronic Crisis. 1994. Scientific American.

Disponível em: <http://www.fceia.unr.edu.ar/asist/gibbs00.html#Ref1> Acesso em: 30/06/2015.

GOMES, André Faria. Agile: Desenvolvimento de Software com Entregas frequentes e foco no valor de negócio. 1ª Edição. São Paulo. Casa do Código. 2013

GUERRA, Cauê. Integração Contínua e o processo Agile. Blog Caelum. 2008. Disponível em: <http://blog.caelum.com.br/integracao-continua/> Acesso em: 10 de Março de 2016 HUMBLE,Jez e David Farley. Continuous Delivery - Reliable Software Releases Through Build, Test And Deployment Automation. Addison-Wesley. 2010.

HUMBLE,Jez ae David Farley. Entrega Contínua - Como Entregar Software de Forma Rápida e Confiável. Porto Alegre. Bookman. 2014.

KOSCIANSKI, André. Qualidade de Software: aprenda as metodologias e técnicas mais modernas para o desenvolvimento de software. 2º Edição.São Paulo. Novatec. 2007 LOSH, Steven. A Guide to Branching in Mercurial. 2009. Disponível em:

<http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/> Acesso em 16 de Setembro de 2016

MELO, Ederson. Os 6 melhores controle de versões OpenSource. Analise e desenvolvimento Agil.2008 Disponível em:

<https://edersonmelo.wordpress.com/2008/09/22/os-6-melhores-controle-versoes- opensource/> Acesso em 16 de Abril de 2016

MICROSOFT, Trabalhando com Shelvesets. 2016. Disponivel em : <https://msdn.microsoft.com/pt-br/library/ms181403(v=vs.100).aspx>. Acesso em: 02 de Novembro de 2016.

141 MOTA, Fernando Jorge. Git Flow – Uma forma legal de organizar repositórios git. 2016 Disponível em: <http://fjorgemota.com/git-flow-uma-forma-legal-de-organizar-repositorios- git/> Acesso em: 15 de Setembro de 2016

O’SULLIVAN, Bryan. Mercurial: The Definitive Guide. 1º Edição.Sebastopol. O’Reilly. 2009

PACHECO, Diego. 10 motivos para utilizar maven . Disponivel em:

<http://imasters.com.br/artigo/12336/java/dez-motivos-para-voce-usar-maven/>. Acesso em 05 de setembro de 2015.

PRADA, Rodrigo. O que é plugin?.2008 Disponível em:

<http://www.tecmundo.com.br/hardware/210-o-que-e-plugin-.htm> Acesso em: 07 de Abril de 2016

PRADO, Lucio Moratelli. Resumo da Tese Visualisation of Version Control Information. UFSC.2006

Disponível em: <https://projetos.inf.ufsc.br/arquivos_projetos/projeto_546/resumo2.doc> Acesso em: 17 de maio de 2015.

PRESSMAN, Roger - Engenharia de Software: Uma abordagem profissional.7º Edição. São Paulo. Bookman.2011.

ROCHA, Lucas Flach da. Aplicação da integração contínua no desenvolvimento de

software. 2014. Monografia (Curso de Graduação em Sistemas de Informação) -

Universidade do Sul de Santa Catarina, Palhoça, 2014.

ROCHKIND, Marc. J. The Source Code Control System. Disponível em:

<http://basepath.com/aup/talks/SCCS-Slideshow.pdf> Acesso em 02 de Maio de 2015 ROMERO, Daniel. Começando com Linux: comandos serviços e administração. São Paulo. Casa do Código. 2013

SALES, Tadeu Araujo. Entendendo e Trabalhando com Runlevels. Fórum Viva o Linux. 2015 Disponível em: <https://www.vivaolinux.com.br/artigo/Runlevel> Acesso em: 30 de Abril de 2016

SANTACROCE, Ferdinando. Git Essentials.1º Edição. Birmingham-UK. Packt Publishing.2015.

SAMPAIO, Cleuton. Curso maven Pro: Lição 1 - “Odeio maven!” Disponivel em: < http://www.obomprogramador.com/2014/06/curso-maven-pro-licao-1-odeio-maven.html>. Acesso em 04 de setembro de 2015;

SATO, Danilo. Devops na Prática: entrega de software confiável e automatizada. São Paulo. Casa do Código. 2014

SAUVÉ, Jacques Philippe. O que é um Framework. Disponível em:

<http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm> Acesso em: 16 de Junho de 2016

SCOTT, John A. and David Nisse. SOFTWARE CONFIGURATION MANAGEMENT. Disponível em: <http://sce.uhcl.edu/helm/SWEBOK_IEEE/data/swebok_chapter_07.pdf> Acesso em: 16 de Maio de 2015

142 SHARMA, Sanjeev and Bernie Coyne. DevOps For Dummies. 1st Edition. Hoboken - New Jersey. John Wiley & Sons, Inc. 2015

SIGNIFICADOS. Significado de URL. 2016 Disponível em:

<http://www.significados.com.br/url/> Acesso em 01 de Setembro de 2016

SILVA, Edna Lúcia da. e Estera Muszkat Menezes. Metodologia da pesquisa e elaboração

de dissertação. – 4. ed. rev. atual. – Florianópolis. UFSC.2005.

SILVA,Gustavo Noronha . Como usar o APT. Disponivel em:

<https://www.debian.org/doc/manuals/apt-howto/ch-basico.pt-br.html> Acesso em: 08 de setembro de 2015.

SILVA, José Cleydson Ferreira da. Apache Tomcat. 2009 Disponível em:

<https://www.vivaolinux.com.br/etc/tomcatusers.xml-1> Acesso em: 03 de Junho de 2016 SINK, Eric. Control Version by Example. 1ª Edição. Champaign. Pyrenean Gold Press. 2011

SOARES, Roberto. Integração Contínua com Jenkins. Fórum Viva o Linux. 2015 .Disponível em: <https://www.vivaolinux.com.br/artigo/Integracao-Continua-com-Jenkins- Instalacao-Parte-1>

Acesso em: 23 de Abril de 2016

SOFTEX. Guia Geral MPS. 2012 Disponível em: <http://www.softex.br/wp-

content/uploads/2013/07/MPS.BR_Guia_Geral_Software_2012.pdf> Acesso em: 04 de Março de 2016

SOFTEX, MPS.BR. Softex. 2015

Disponível em: <http://www.softex.br/mpsbr/mps/mps-br-em-numeros/> Acesso em: 25 de Maio de 2016

SOMMERVILLE, Ian. Engenharia de Software. 8º Edição.São Paulo. Person.2007 SWICEGOOD, Travis. Pragmatic Version Control Using Git. 1ª Edição. Raleigh. Pragmatic Bookshelf. 2007

THOMAS, Davis e Andrew Hunt. Pragmatic Version Control Using CVS. 1ª Edição. Raleigh. Pragmatic Bookshelf. 2003

VENTORIN, Alessandro José. Principais problemas relacionados ao desenvolvimento de

sistemas. 2013. Faculdade Capixaba Nova Venécia. Disponivel em

<http://novavenecia.multivix.edu.br/wp-content/uploads/2013/03/universo_acd_8.pdf> . Acesso em: 09 Março de 2015.

143

APÊNDICE A - INSTALAÇÃO E CONFIGURAÇÃO DE AMBIENTE PARA