Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Ferramentas para Gerenciamento de Configuração de Software
Transcript of Ferramentas para Gerenciamento de Configuração de Software
Ferramentas para Gerenciamento de Configuração de Software
Milena Guessi Margarido
Prof.a Dra. Elisa Yumi Nakagawa
• • •SSC-0527 Engenharia de Software – 2016
Universidade de São Paulo
Revisão
Motivação Grandes equipes de desenvolvimento
Trabalho colaborativo em um ambiente distribuído
Mudanças são naturais e precisam ser gerenciadas
3
Revisão
Gerenciamento de Configuração de Software Atividade guarda-chuva
Cobre todo o ciclo de vida do software
Reúne um conjunto de atividades que podem ser adaptadas para um tipo de projeto ou para um grau de rigor com o qual a engenharia de software deve ser aplicada
4
Revisão
Gerenciamento de Configuração de Software Objetivos:
Melhorar a qualidade
Reduzir/controlar erros
Identificar, organizar, controlar e comunicar mudanças
5
Conteúdo do RepositórioFonte: Pressman, R. S. and Maxim,
B. R. Software Engineering. 8 ed.
Mc Graw Hill Education. 2015.
7
ConcurrentVersionsSystem(CVS)
Site oficial: http://cvs.nongnu.org/
Software livre
Destaque: Cliente-servidor
Unreserved checkouts: um arquivo pode ser trabalhado por mais de um desenvolvedor ao mesmo tempo
Vendor branches: compartilhamento de versões próprias de arquivos selecionados
Materiais extras: Version Management with CVS por Per
Cederqvist et al. http://ftp.gnu.org/non-gnu/cvs/source/stable/1.11.23/cederqvist-1.11.23.pdf
9
Subversion(SVN)
Site oficial: https://subversion.apache.org/
Software livre/aberto
Destaques: Cliente-servidor
Atomic operations: “aplica todas as mudanças ou nenhuma, de modo que nenhuma mudança parcial poderá quebrar o fonte original.”
Materiais extras: Livro Version Control with Subversionde Collins-
Sussman, B., Fitzpatrick, B. W., e Michael Pilato, C. http://svnbook.red-bean.com/
10
Git
Site oficial: https://git-scm.com/
Software aberto
Destaque: Desempenho
Distribuído
Melhor apoio para criação de branches Ex: para desenvolver novas funcionalidades ou corrigir erros
Fácil mudança entre branches
Fazer commits pequenos incrementais
Cherry-pick commits de outros branches ou commits
Materiais extras: Tutorial Try Git https://try.github.io/
Apresentação Git for Beginners de Anthony Bairehttp://people.irisa.fr/Anthony.Baire/git/git-for-beginners-handout.pdf
Tutorial Learn Git Branchinghttp://pcottle.github.io/learnGitBranching/
Livro Pro Git de Scott Chacon e Ben Straub https://git-scm.com/book
Blog http://gitready.com/
11
TortoiseWindows client
SVN
Site oficial http://tortoisesvn.net/
Software livre
Material extra: Livro TortoiseSVN 1.7 de
Harrison, L. https://www.packtpub.com/application-development/tortoisesvn-17-beginners-guide
Git
Site oficial https://tortoisegit.org/
Software livre
Material extra: Manualde Onken, L.,
Large, S., Li, F., e Strickroth, S. https://tortoisegit.org/docs/tortoisegit/
13
Comunidade
Dica para escolher uma ferramenta: “funciona bem para a equipe"
Apoia o processo que é seguido pela equipe
Segue um processo que pode ser adotado pela equipe
18