CPqD Developer Suite - SPIN Campinas - Reunião #56

Preview:

Citation preview

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

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

Se você não abusa de

branches e merges

Subversion no CPqD

“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

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

jenkins-ci.orgnée

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

Gustavo Chavesgustavo@cpqd.com.br(19) 3705 7003

Obrigado!

www.cpqd.com.br