O documento discute ferramentas de planejamento e controle de versão. Apresenta ferramentas de planejamento como MS Project e OpenProj e discute os modelos centralizado e distribuído de controle de versão, apresentando ferramentas como Git, SVN e Mercurial. Por fim, faz um estudo de caso sobre o uso do Redmine e SVN na Universidade Federal de Sergipe.
2. Grupo 1:
Ademir Almeida
Alef Deus
Maryellen Martins
Rafael Assis
Universidade Federal de Sergipe
Prof.: Rogério Patrício Chagas do Nascimento
Centro de Ciências Exatas e Tecnologia
3. Roteiro
1. Ferramentas de Planejamento
A. Visão Geral
B. Principais Ferramentas
2. Sistemas de Controle de Versão
A. Visão Geral
B. Controle de Versão Centralizado x Distribuído
C. Resumo das Operações Básicas dos Controles de
Versão
D. Principais Ferramentas
3. Estudo de Caso
3
7. Gerência de Projetos + Desenvolvimento de Projeto de Software
● Visualizar o projeto como um todo
7
8. ● Parâmetros:
○ Escopo do projeto;
○ Riscos;
○ Recursos necessários;
○ Tarefas;
○ Indicadores para acompanhamento;
○ Esforços e custos;
○ Linha de raciocínio a ser seguida.
Gerência de Projetos + Desenvolvimento de Projeto de Software
8
9. Ferramentas de gestão de projetos
● Métodos;
● Processos;
● Tempo real;
● Alcance.
Recursos Tecnológicos
○ Investimento;
○ Vantagem;
○ Sucesso.
9
11. MS Project
● Microsoft - 1985
● Características:
○ Planeamento do escopo do projeto;
○ Acompanhar o progresso das atividades;
○ Previsão de situações de riscos;
○ Nivelamento dos recursos de forma gráfica;
○ Geração de relatórios e gráficos;
○ Diversas formas de apresentação (Gantt, Marcos, Calendário, etc.);
○ Definição de níveis hierárquico por atividades.
11
14. OpenProj
● Projity - 2007;
● Código aberto;
● Recursos:
○ Custo do valor agregado;
○ Gráfico de Gantt;
○ Gráfico PERT;
○ Gráfico de Estrutura Analítica de recursos (EAR);
○ Relatórios de uso da tarefa;
○ Gráfico de Estrutura Analítica de Projeto (EAP).
14
16. ProjectLibre
● 2012
● Novos recursos:
○ Importa e exporta arquivos do/para o Microsoft Project 2010;
○ Exportação para PDF;
○ Nova interface de botões;
○ Correções de erros e problemas OpenProj.
16
28. Introdução
● VCS ou SCM;
● Utilização comum;
● Soluções comerciais vs. soluções livres;
● A eficácia do VCS inerente ao CMMI e SPICE;
● Trabalho em equipe;
● Integração com outros softwares.
28
29. Introdução
Gerações dos SCVs
Derivados de sistemas de gerenciamento de mudanças de registro;
1ª Geração
● Orientados a arquivos e centralizados;
● Baseada em bloqueio e fusões (merging);
● SCCS (Source Code Control System), 1972;
● RCS (Revision Control System), início dos anos 80;
● DSEE (Domain Software Engineering Environment), 1984.
29
30. Introdução
Gerações dos SCVs
2ª Geração
● Uso de redes centralizadas;
● Uso de multi-arquivos e merge (fusão) antes do commit (envio);
● Dick Grune escreve scripts que envolvem o RCS (1984-85);
● Brian Berliner, Sistema de Versões Concorrentes (RCS) (1986-87);
● Subversion (SVN) vs CVS, 2000.
● Camada SVK.
30
31. Introdução
Gerações dos SCVs
3ª Geração
● Descentralizados;
● Commit antes do merge;
● Changesets;
● Maior parte open source;
● Arch (BitKeeper), 2002;
● ArX, 2003;
● Monotone, 2003;
● BitKeeper 1997-98.
● Git, 2005
● Baseado em conceito de instantâneo;
● Descentralizado.
31
32. Visão Geral
As principais vantagens de se utilizar um sistema de
controle de versão para rastrear as alterações feitas
durante o desenvolvimento de um documento são:
● Controle do histórico;
● Trabalho em equipe;
● Marcação e resgate de versões estáveis;
● Ramificação de projeto.
32
33. Introdução
Controle de Versão Centralizado
● Topologia em
estrela;
● Único repositório
central;
● Várias cópias de
trabalho, uma
para cada
desenvolvedor;
● Comunicação
apenas através do
repositório
central.
33
34. Introdução
Controle de Versão Distribuído
● Vários repositórios
autônomos e
independentes;
● Cada repositório
possui uma área
de trabalho
acoplada;
● Comunicação
através de
commit e update.
34
35. Introdução
Controle de Versão Distribuído
Um repositório pode
se comunicar com
qualquer outro
através das
operações básicas
pull (Puxar) e push
(Empurrar). Não há
necessidade de
nenhuma topologia
pré-definida.
35
36. Introdução
Distribuído vs centralizado
Tipo Vantagens Desvantagens
Centralizado
● Controle de acesso
● Cópia de segurança
● Controle de Qualidade
● Dependência do
repositório central
● Ponto único de
falha
Distribuído
● Permite submissões
particulares, offline
● Melhor suporte a
ramificação e mescla
● Independência da
rede(mais rápido)
● Estimula o
isolamento de
desenvolvedores
● Questões de
privacidade e
segurança
36
37. Introdução
Resumo das Operações Básicas dos Controles de Versão
Centralizado Distribuído Descrição
checkout clone Criação da cópia de trabalho/repositório
commit commit
Envia alterações para o repositório
criando uma revisão
update update
Atualiza a cópia/área de trabalho em
uma revisão
pull
Importa revisões feita em outro
repositório
push
Envia revisões locais para outro
repositório
37
40. Team Foundation Server
● Também conhecido por TFS:
○ Gerenciamento de projetos, requisitos, etc.
○ Integração com Eclipse e o próprio Visual
Studio.
● On-premises vs. online;
● Extensão: Java SDK e .NET Framework;
● Controle de Versão;
● Gerenciamento de Liberação.
40
41. Git
● Global information tracker
● Características:
○ Forte apoio ao desenvolvimento não-linear
○ Desenvolvimento distribuído
○ Compatibilidade com sistemas e protocolos
existentes
○ Manipulação eficiente de grandes projetos
● Adoção;
● Segurança.
41
42. Perforce
● Características:
○ Histórico completo de revisões
○ Interface Gráfica
○ Multi-plataforma
○ Suportes
● Modelo de concorrência;
● Branching e merging;
● Controle de acesso e segurança
● Disponibilidade.
42
43. Subversion
● Conhecido por SVN;
● Características:
○ Commits como verdadeiras operações
atômicas
○ Merge tracking
○ Tipos de repositório
● Sistema de arquivos;
● Ramificação e marcação;
● Limitações e problemas.
43
44. Mercurial
● História;
● Características:
○ História segura com Mercurial
○ Suporte para GUI
○ Suporte ao Windows, Linux e MAC OS
○ Fácil de Estender
● Design;
● Adoção.
44
45. Rational Clear Case
● História;
● Sistema de arquivos Multi-Versão:
○ Snapshot views
● Suporte;
● Integração com outras ferramentas.
45
46. Comparativo
Software/
Característica
Mantenedor Modelo de
Repositório
Licença SO Suportado
TFS Microsoft Cliente
Servidor e
distribuído
Proprietária Windows,
cross-platform via
Visual Studio Team
Services
GIT Junio Hamano Distribuído BSD LINUX, OS X,
Windows
Perforce Perforce
Software Inc
Cliente
Servidor
Proprietária LINUX, OS X,
Windows
SVN Apache Software
Foundation
Cliente
Servidor
Apache LINUX, OS X,
Windows
ClearCase IBM Cliente
Servidor
Proprietária Linux, Windows
Mercurial Matt Mackall Distribuído GNU GPL LINUX, OS X,
Windows
46
47. Comparativo
Software/
Característica
Linguagem
de
Programação
Integração e/ou Plugins para
IDEs
TFS C++ e C#
Visual Studio. Java client for Eclipse IDE and IntelliJ IDEA
(standard in Ultimate Edition)
GIT
C, shell scripts,
Perl
Eclipse (JGit/EGit); Netbeans (NbGit); KDevelop; Visual
Studio (Git Extensions); Emacs (extension for standard
VC); SAP Web IDE; TextMate (Git TextMate Bundle);
Perforce
C++, C,
LabVIEW
Eclipse, Visual Studio (P4SCC), KDevelop (standard?),
IntelliJ IDEA (standard in Ultimate Edition), Komodo IDE,
BBEdit, Emacs (p4.el)
SVN C
Eclipse (Subclipse, Subversive), IntelliJ IDEA (standard in
Community and Ultimate Editions), KDevelop (standard),
Netbeans, Visual Studio
ClearCase Java
Emacs, Eclipse ( IBM Proprietary, Eclipse-CCase ), Visual
Studio (IBM proprietary), KDevelop (standard?), IntelliJ
IDEA (standard in Ultimate Edition)
Mecurial Python, C
IntelliJ IDEA (hg4idea 3:rd party plugin), Eclipse,
NetBeans, Visual Studio 2008, Emacs, Vim, Komodo IDE,
Eric Python IDE, WingIDE 47
50. Histórico e Motivação - Redmine
● Implantado em 2009 sob influência do professor
Marcos Barbosa Dósea;
● Caractéristicas:
○ Open-source;
○ Fácil integração com outras ferramentas;
○ Controle de atividades;
○ Diagrama de Gantt e calendário;
○ Documents: Deve ser ativado quando o projeto
possuir um repositório de documentos;
○ Repository: Permite associar o projeto a um
repositório de versionamento.
50
52. Histórico e Motivação - SVN
● Pré-requisito para uso dos SIGs;
● Instalado em 2009;
● Integração com o Redmine (plugin);
● Jekins:
○ Alteração no repositório;
○ Testes automatizados;
○ Atribuir status resolvido aos tickets.
52
55. 55
Referências
● Comparison of Version Control Software. Wikipédia. Disponível em:
<https://en.wikipedia.org/wiki/Comparison_of_version_control_software>.
Acesso em 12 de Fevereiro de 2017.
● List of Version Control Software. Wikipédia. Disponível em:
<https://en.wikipedia.org/wiki/List_of_version_control_software>. Acesso
em 12 de Fevereiro de 2017.
● Team Foundation Server. Wikipédia. Disponível em:
<https://en.wikipedia.org/wiki/Team_Foundation_Server>. Acesso em 12 de
Fevereiro de 2017.
● Understanding Version-Control Systems (DRAFT). Disponível em:
<http://www.catb.org/~esr/writings/version-control/version-control.html#hi
story>. Acesso em 13 de Fevereiro de 2017.
● Um Histórico de Controle de Versão. Disponível em:
<http://ericsink.com/vcbe/html/history_of_version_control.html>. Acesso
em 13 de Fevereiro de 2017.
56. 56
Referências
● Conceitos Básicos de Controle de Versão de Software — Centralizado e
Distribuído. Disponível em:
<https://blog.pronus.io/posts/conceitos-basicos-de-controle-de-versao-de-s
oftware-centralizado-e-distribuido/>. Acesso em 13 de Fevereiro de 2017.
● MS Project. Disponível em:
<https://products.office.com/pt-br/project/project-management>. Acesso
em 13 de Fevereiro de 2017.
● MS Project vs OpenProj.Disponível em:
<http://www.tiespecialistas.com.br/2011/04/guia-do-openproj-x-microsoft-p
roject-foco-em-gestao-de-projetos/>. Acesso em 17 de Fevereiro de 2017.
● ProjectLibre. Disponível em:
<http://www.projectlibre.com/product/projectlibre-cloud>. Acesso em 12 de
Fevereiro de 2017.
● MSProject vs ProjectLibreDisponível em:
<http://project-management.zone/system/microsoft-project,projectlibre>.
Acesso em 12 de Fevereiro de 2017.