O documento descreve uma solução de gerenciamento do ciclo de vida de aplicativos (ALM) usando ferramentas open-source como Redmine, Git, Maven, Jenkins, Nexus e Sonar. A solução fornece requisitos, versionamento de código, builds, dependências, integração contínua, publicação de artefatos, inspeção de qualidade e implantação.
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferramentas open source
1. 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
3. 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
4. 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;
5. 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
6. 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
8. 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
10. 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
11. Globalcode – Open4education
Processo – passo 3
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do histórico
build
dependências
12. 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
13. Globalcode – Open4education
Processo – parte 4
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do históricobuild
dependências
integração contínua
14. 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
15. Globalcode – Open4education
Processo – parte 5
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do históricobuild
dependências
integração contínua
publicação de artefatos
16. 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
17. Globalcode – Open4education
Processo – parte 6
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do históricobuild
dependências
integração contínua
publicação de artefatos
inspeção
18. 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
19. Globalcode – Open4education
Processo final
requisitos e releases
stakeholder
desenvolvedor
código fonte
visualização
do históricobuild
dependências
integração contínua
publicação de artefatos
inspeção
deploy
servidor
20. Globalcode – Open4education
Outras ferramentas
JUnit:
Testes unitários
Selenium
Testes de interface Web
JMeter
Testes de carga
TestLink
Gerenciamento de casos de teste