CPqD Developer Suite
SPIN Campinas
Reunião #56 - Ferramentas de Software
03/set/2013
CPqD Developer Suite
CDS - custo
CPqD Developer Suite
Um conjunto de ferramentas
● de software livre e de baixo-custo,
● de qualidade comprovada,
● líderes...
CPqD Developer Suite
Gestão de Mudanças e Projetos Ágeis
atlassian.com/jira
JIRA
Projeto A
Projeto B
PA-101
PA-102
PB-25
PA-103
PB-26

PA-104
PB-27
Tíquetes totalmente customizáveis

PA-101
●
●
●
●
●
●
●
●

Resumo
Descrição
Criador
Responsável
Componentes
Versões
…
Camp...
JIRA Ágil
JIRA no CPqD
Modelagem
sparxsystems.com/products/ea
Project
Browser

Toolbox

Barra de
Ferramentas

Área de
Desenho
Modelagem UML
Diagrama de
Sequência

ESTRUTURAIS

Diagrama de
Caso de Uso

Diagrama de
Classe

Diagrama de
Colaboração

Di...
Edição simultânea e versionamento

Banco de
Dados

Subversion
Controle de Versões
subversion.apache.org
ohloh.net/repositories/compare
Se você não
abusa de
branches e
merges
Subversion no CPqD
search.cpan.org/dist/SVN-Hooks/
git-scm.com
“For those of you that have been living
under a rock, the single biggest change
in developers’ lives in the last decade is...
leve e rápido

trabalhe
desconectado

merges são
simples

revise e
publique

visualização
da história
"It is easy to shoot your foot off with git,
but also easy to revert to a previous foot
and merge it with your current leg...
“Initial git training”

devopsreactions.tumblr.com
“After reading the ‘Pro Git’ book”

devopsreactions.tumblr.com
Eclipse Annual Survey
search.cpan.org/dist/Git-Hooks/
Revisão de Código
gerrit.googlecode.com
Quem usa o Gerrit atualmente?
Gerrit Code Review
git commit

git commit --amend

commited

git fetch

approve
reject
comment

git push

open

submit

merged

abandon

aban...
OK, a revisão de código ajuda a encontrar bugs
mais cedo. Mas ela não atrasa o processo de
desenvolvimento?
Sim. A revisão...
Outros ganhos da revisão de código

mentoring

peering
Outros ganhos da revisão de código

O “medo da rejeição” estimula o
esforço individual
Outros ganhos da revisão de código

A “exposição” do trabalho de todos promove
a integridade conceitual da solução
Integração contínua
née
jenkins-ci.org
Integração Contínua
●

Código versionado

●

Builds automatizadas e rápidas

●

Testes automatizados

●

Build a cada comm...
Arquitetura
Jenkins
Job A

Job B

Build 01

Build 02

Build 01

Build 02

Build 03

Build 04

Build 03

Build 04

Job C

J...
Informações sobre a execução do Job
● Histórico das builds
Arquitetura

Changes

Status

Build Master

C

Commands

ds

an
omm

Co

mm

and

s

Build Slave

Build Slave

Build Slave
Jenkins integrado ao CDS
AS

Repositorio de Artefatos
Construção

Automação de Teste

maven
egit

Qualidade
subversive

ID...
Usuários Jenkins
Jenkins no CPqD
Repositório de artefatos
sonatype.org/nexus
Old style dependency management

central
dev.java.net
SVN
/lib/*.jar

...
Internet
Maven style dependency management

releases

internal
releases
third
parties
external
releases

central
dev.java.net
...

...
Nexus
Testes
testlink.org
Organização dos Testes

Projeto
RQ

RQ

RQ

RQ

T.Plan

T.Plan

TC

TC

TC

T.Suite

TC

TC

TC

T.Suite

TC

TC

TC

T.Su...
Plano de Testes e relatórios

Test Plan

build

Test Case
Test Case

build
Test Case
Test Case

build
Test Case
seleniumhq.org
Selenium IDE

<HTML>
Java
PHP
Perl
Python
Ruby
C#
Arquitetura do Selenium

Selenium
Test

Selenium
Hub

Web
Apps
Selenium
Test
Inspeção contínua
sonarqube.org
Inspeção contínua
●

Análise estática automatizada de código
○
○

●

Dezenas de métricas de qualidade
○

○

●

Disparada p...
Dashboard e tendências
Issue Drilldown
Timeline
Hotspots
Eclipse plugin
Por que coletar métricas?
●

É preciso medir pra saber o que melhorar
○

Sonar is a quality profiler

●

É preciso medir p...
Sonar no CPqD
Integrações
Integrações

LDAP
Gustavo Chaves
gustavo@cpqd.com.br
(19) 3705 7003

Obrigado!
www.cpqd.com.br
Cds overview para o SPIN Campinas #56
Cds overview para o SPIN Campinas #56
Cds overview para o SPIN Campinas #56
Cds overview para o SPIN Campinas #56
Cds overview para o SPIN Campinas #56
Próximos SlideShares
Carregando em…5
×

Cds overview para o SPIN Campinas #56

394 visualizações

Publicada em

Há seis anos o CPqD vem utilizando um conjunto de ferramentas de software livre (e algumas comerciais de baixo custo) para suportar uma equipe de ~800 pessoas envolvidas com o desenvolvimento de seus produtos de software. O CPqD Developer Suite, como ficou conhecido, consiste atualmente em ferramentas para controle de versão, revisão de código, gestão de tarefas e de projetos ágeis, modelagem, integração contínua, testes e qualidade de código . Nesta palestra mostraremos como as ferramentas estão integradas, como elas são utilizadas e como o CPqD se organizou internamente para garantir o suporte e a evolução da suíte.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
394
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cds overview para o SPIN Campinas #56

  1. 1. CPqD Developer Suite SPIN Campinas Reunião #56 - Ferramentas de Software 03/set/2013
  2. 2. CPqD Developer Suite
  3. 3. CDS - custo
  4. 4. CPqD Developer Suite Um conjunto de ferramentas ● de software livre e de baixo-custo, ● de qualidade comprovada, ● líderes de mercado em suas categorias, ● integradas para propiciar o ● desenvolvimento eficiente de ● software de qualidade.
  5. 5. CPqD Developer Suite
  6. 6. Gestão de Mudanças e Projetos Ágeis
  7. 7. atlassian.com/jira
  8. 8. JIRA Projeto A Projeto B PA-101 PA-102 PB-25 PA-103 PB-26 PA-104 PB-27
  9. 9. Tíquetes totalmente customizáveis PA-101 ● ● ● ● ● ● ● ● Resumo Descrição Criador Responsável Componentes Versões … Campos customizados... Defeito Estória Melhoria Tarefa Requisito
  10. 10. JIRA Ágil
  11. 11. JIRA no CPqD
  12. 12. Modelagem
  13. 13. sparxsystems.com/products/ea
  14. 14. Project Browser Toolbox Barra de Ferramentas Área de Desenho
  15. 15. Modelagem UML Diagrama de Sequência ESTRUTURAIS Diagrama de Caso de Uso Diagrama de Classe Diagrama de Colaboração Diagrama de Objeto Modelos Diagrama de Estado COMPORTAMENTAIS Diagrama de Componente Diagrama de Atividade Diagrama de Distribuição
  16. 16. Edição simultânea e versionamento Banco de Dados Subversion
  17. 17. Controle de Versões
  18. 18. subversion.apache.org
  19. 19. ohloh.net/repositories/compare
  20. 20. Se você não abusa de branches e merges
  21. 21. Subversion no CPqD
  22. 22. search.cpan.org/dist/SVN-Hooks/
  23. 23. git-scm.com
  24. 24. “For those of you that have been living under a rock, the single biggest change in developers’ lives in the last decade is Distributed Version Control.” -- Joel Spolsky http://www.joelonsoftware.com/items/2013/03/11.html
  25. 25. leve e rápido trabalhe desconectado merges são simples revise e publique visualização da história
  26. 26. "It is easy to shoot your foot off with git, but also easy to revert to a previous foot and merge it with your current leg." -- Jack William Bell
  27. 27. “Initial git training” devopsreactions.tumblr.com
  28. 28. “After reading the ‘Pro Git’ book” devopsreactions.tumblr.com
  29. 29. Eclipse Annual Survey
  30. 30. search.cpan.org/dist/Git-Hooks/
  31. 31. Revisão de Código
  32. 32. gerrit.googlecode.com
  33. 33. Quem usa o Gerrit atualmente?
  34. 34. Gerrit Code Review
  35. 35. git commit git commit --amend commited git fetch approve reject comment git push open submit merged abandon abandoned
  36. 36. OK, a revisão de código ajuda a encontrar bugs mais cedo. Mas ela não atrasa o processo de desenvolvimento? Sim. A revisão de código gasta aproximadamente 5% do tempo que se leva pra desenvolvê-lo. 5%, ok? Só 5%, OK?!
  37. 37. Outros ganhos da revisão de código mentoring peering
  38. 38. Outros ganhos da revisão de código O “medo da rejeição” estimula o esforço individual
  39. 39. Outros ganhos da revisão de código A “exposição” do trabalho de todos promove a integridade conceitual da solução
  40. 40. Integração contínua
  41. 41. née jenkins-ci.org
  42. 42. Integração Contínua ● Código versionado ● Builds automatizadas e rápidas ● Testes automatizados ● Build a cada commit ● Resultados publicados ● Produtos disponíveis ● Deployment automatizado Martin Fowler
  43. 43. Arquitetura Jenkins Job A Job B Build 01 Build 02 Build 01 Build 02 Build 03 Build 04 Build 03 Build 04 Job C Job D Build 03 Build 02 Build 04 Build 01 Build 02 Build 03 Build 04 Build 01 Build 05 Build 06 Build 07 Build 08 Build N
  44. 44. Informações sobre a execução do Job ● Histórico das builds
  45. 45. Arquitetura Changes Status Build Master C Commands ds an omm Co mm and s Build Slave Build Slave Build Slave
  46. 46. Jenkins integrado ao CDS AS Repositorio de Artefatos Construção Automação de Teste maven egit Qualidade subversive IDE Integração Contínua Gestão de Mudança Controle de Versão Revisão de Código Controle de Versão
  47. 47. Usuários Jenkins
  48. 48. Jenkins no CPqD
  49. 49. Repositório de artefatos
  50. 50. sonatype.org/nexus
  51. 51. Old style dependency management central dev.java.net SVN /lib/*.jar ... Internet
  52. 52. Maven style dependency management releases internal releases third parties external releases central dev.java.net ... Internet apache-snapshots codehaus-snapshots snapshots external snapshots internal snapshots ...
  53. 53. Nexus
  54. 54. Testes
  55. 55. testlink.org
  56. 56. Organização dos Testes Projeto RQ RQ RQ RQ T.Plan T.Plan TC TC TC T.Suite TC TC TC T.Suite TC TC TC T.Suite ...
  57. 57. Plano de Testes e relatórios Test Plan build Test Case Test Case build Test Case Test Case build Test Case
  58. 58. seleniumhq.org
  59. 59. Selenium IDE <HTML> Java PHP Perl Python Ruby C#
  60. 60. Arquitetura do Selenium Selenium Test Selenium Hub Web Apps Selenium Test
  61. 61. Inspeção contínua
  62. 62. sonarqube.org
  63. 63. Inspeção contínua ● Análise estática automatizada de código ○ ○ ● Dezenas de métricas de qualidade ○ ○ ● Disparada pelo Jenkins Java, C/C++, C#, PHP, Javascript, XML, etc. Complexidade, documentação, cobertura de testes, duplicação de código, coding standards, etc. Métrica fora dos limites aceitáveis quebra a build. Apresentação multidimensional dos resultados ○ Hotspots, tendências, issue drilldown, timeline, etc.
  64. 64. Dashboard e tendências
  65. 65. Issue Drilldown
  66. 66. Timeline
  67. 67. Hotspots
  68. 68. Eclipse plugin
  69. 69. Por que coletar métricas? ● É preciso medir pra saber o que melhorar ○ Sonar is a quality profiler ● É preciso medir pra poder convencer ● “Teoria da Janela Quebrada” ● “É melhor prevenir do que remediar” ● Planejar e priorizar ● Controlar o débito técnico
  70. 70. Sonar no CPqD
  71. 71. Integrações
  72. 72. Integrações LDAP
  73. 73. Gustavo Chaves gustavo@cpqd.com.br (19) 3705 7003 Obrigado! www.cpqd.com.br

×