Globalcode – Open4education
Construindo uma solução ponta a
ponta com ferramentas open-sorce
Kleber Xavier
Instrutor e Arquiteto de Software
Bruno Souza
Evangelista Java e Open Source
Globalcode – Open4education
Agenda
Introdução
Problemas no gerenciamento do ciclo de vida de
um aplicativo
DEMO
Globalcode – Open4education
ALM – O que é?
Application Lifecycle Management: gerenciamento contínuo
do software;
Casamento da gestão de negócio com engenharia de
software;
Requer ferramentas integradas para gerenciar:
Requisitos;
Repositório de código;
Construção;
Arquitetura e codificação;
Testes e qualidade
Versões e componentes
Globalcode – Open4education
ALM – Por que?
Vantagens na adoção;
Rastreabilidade e dados post-hoc;
Gerenciamento integrado;
Simplificação nos processos;
Agilidade na construção do software;
Aumento da reusabilidade;
Diminuição dos riscos;
Globalcode – Open4education
ALM – ferramentas
Pilha ALM open-source que usamos:
Disciplina Software
Gerenciamento de Requisitos Redmine
Gestão de código / versionamento GIT
Construção e dependências Maven
Integração Contínua Jenkins
Repositório de componentes Nexus
Qualidade de código Sonar
Globalcode – Open4education
O planejamento inicial
Problema:
Organizar os requisitos em entregas
Atribuir os requisitos para seus desenvolvedores
Acompanhar a evolução do desenvolvimento
Solução:
Utilizar um gerenciador de issues, como o Redmine
Globalcode – Open4education
Processo – passo 1
requisitos e releases
stakeholder
Globalcode – Open4education
A organização do código fonte
Problema:
Compartilhar o código fonte entre os desenvolvedores
do projeto
Manter o histórico de alterações
Solução:
Utilizar um repositório de código fonte como o Git
Globalcode – Open4education
Processo – passo 2 requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico
Globalcode – Open4education
Gerenciamento das dependências
Problema:
Padronizar as bibliotecas de terceiros utilizadas pelo
projeto
Disponibilizar as bibliotecas utilizadas para a equipe de
desenvolvimento
Solução:
Utilizar uma ferramenta de build com suporte a
gerenciamento de dependências como o Maven
Utilizar um gerenciador de repositórios como o Nexus
Globalcode – Open4education
Processo – passo 3
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico
build
dependências
Globalcode – Open4education
Integração entre módulos
Problema:
Garantir que alterações em um dos módulos não
quebrem o funcionamento de outros módulos
Notificar os responsáveis em caso de quebra, o mais
rapidamente possível
Solução:
Utilizar uma ferramenta de integração contínua como o
Jenkins
Globalcode – Open4education
Processo – parte 4
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico build
dependências
integração contínua
Globalcode – Open4education
Reutilização de módulos
Problema:
Disponibilizar os módulos desenvolvidos para reuso
entre as equipes
Solução:
Utilizar uma ferramenta de gerenciamento de
repositórios como o Nexus
Globalcode – Open4education
Processo – parte 5 requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico build
dependências
integração contínua
publicação de artefatos
Globalcode – Open4education
Qualidade do código
Problema:
Garantir que as convenções e boas práticas estão sendo
seguidas pelos desenvolvedores
Visualizar as violações e a evolução da qualidade
estrutural do código
Solução:
Utilizar uma ferramenta de análise estática do código
como o Sonar
Globalcode – Open4education
Processo – parte 6 requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico build
dependências
integração contínua
publicação de artefatos
inspeção
Globalcode – Open4education
Implantação em produção
Problema:
Implantar um módulo aprovado em produção
Solução:
Utilizar a ferramenta de integração contínua para fazer o
deployment contínuo
Globalcode – Open4education
Processo final requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico build
dependências
integração contínua
publicação de artefatos
inspeção
deploy
servidor
Globalcode – Open4education
Outras ferramentas
JUnit:
Testes unitários
Selenium
Testes de interface Web
JMeter
Testes de carga
TestLink
Gerenciamento de casos de teste
Globalcode – Open4education
DEMO