CPqD Developer Suite
SPIN CampinasReunião #56 - Ferramentas de Software03/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 de mercado em suas categorias,
● integradas para propiciar o● desenvolvimento eficiente de● software de qualidade.
CPqD Developer Suite
Gestão de Mudanças e Projetos Ágeis
JIRA
Projeto A
Projeto BPA-101
PA-102
PA-103PA-104
PB-25
PB-26
PB-27
PA-101
● Resumo● Descrição● Criador● Responsável● Componentes● Versões● …● Campos
customizados...
Tíquetes totalmente customizáveis
DefeitoMelhoria
TarefaEstóriaRequisito
JIRA Ágil
JIRA no CPqD
Modelagem
sparxsystems.com/products/ea
Toolbox
Barra de Ferramentas
Project Browser
Área de Desenho
Diagrama de Sequência
Diagrama de Caso de Uso
Diagrama de Colaboração
Diagrama de Estado
Diagrama de Atividade
Modelos
Diagrama de Classe
Diagrama de Objeto
Diagrama de Componente
Diagrama de DistribuiçãoCOMPORTAMENTAIS
ESTRUTURAISModelagem UML
Banco de Dados Subversion
Edição simultânea e versionamento
Controle de Versões
ohloh.net/repositories/compare
Se você não abusa de
branches e merges
Subversion no CPqD
search.cpan.org/dist/SVN-Hooks/
“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 Spolskyhttp://www.joelonsoftware.com/items/2013/03/11.html
leve e rápido
visualizaçãoda história
revise e publique
merges são simples
trabalhedesconectado
"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
devopsreactions.tumblr.com
“Initial git training”
devopsreactions.tumblr.com
“After reading the ‘Pro Git’ book”
Eclipse Annual Survey
search.cpan.org/dist/Git-Hooks/
Revisão de Código
Quem usa o Gerrit atualmente?
Gerrit Code Review
commited
open abandoned
merged
git commit
submit
abandon
git pushgit fetch
approvereject
comment
git commit --amend
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?!
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
Integração Contínua
● Código versionado
● Builds automatizadas e rápidas
● Testes automatizados
● Build a cada commit
● Resultados publicados
● Produtos disponíveis
● Deployment automatizadoMartin Fowler
Arquitetura
Build 01 Build 02
Build 03 Build 04
Jenkins
Job A Job B
Job C Job D
Build 01 Build 02
Build 03 Build 04
Build 01Build 01 Build 02
Build 03 Build 04
Build 02 Build 03
Build 04 Build 05 Build 06
Build 07 Build 08 Build N
Informações sobre a execução do Job
● Histórico das builds
Build Slave
Build Master
Build Slave
Build Slave
Changes Status
Commands Commands
Com
mands
Arquitetura
Jenkins integrado ao CDS
Revisão de Código
Repositorio de ArtefatosConstrução
Gestão de Mudança
Controle de Versão
Controle de Versão
Integração Contínua
Automação de Teste
IDE
maven
egit
Qualidade
AS
subversive
Usuários Jenkins
Jenkins no CPqD
Repositório de artefatos
Old style dependency management
Internet...
dev.java.net
central
SVN/lib/*.jar
Maven style dependency management
Internet
...
dev.java.net
central
...
codehaus-snapshots
apache-snapshots
internalreleases
thirdparties
externalreleases
externalsnapshots
internalsnapshots
releasessnapshots
Nexus
Testes
Projeto
...
Organização dos Testes
RQ RQ RQ RQ
T.Suite
T.Suite
T.Suite
T.PlanT.Plan
TC
TC
TC
TC
TC
TC
TC
TC
TC
Plano de Testes e relatórios
Test Plan
Test Case
Test Case
Test Case
Test Case
Test Case
build
build
build
Selenium IDE
<HTML>JavaPHPPerlPythonRubyC#
Arquitetura do Selenium
SeleniumTest
SeleniumTest
WebApps
Selenium Hub
Inspeção contínua
Inspeção contínua
● Análise estática automatizada de código○ Disparada pelo Jenkins○ Java, C/C++, C#, PHP, Javascript, XML, etc.
● Dezenas de métricas de qualidade○ 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.
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 pra poder convencer
● “Teoria da Janela Quebrada”
● “É melhor prevenir do que remediar”
● Planejar e priorizar
● Controlar o débito técnico
Sonar no CPqD
Integrações
Integrações
LDAP
Top Related