Automação da Construção de Aplicativos com o Build Forge

Transcrição

Automação da Construção de Aplicativos com o Build Forge
Automação da Construção de
Aplicativos com o Build Forge
Caso de Aplicação no
Desenvolvimento de Sistemas para a
Receita Federal do Brasil
Osvandre Alves Martins
Objetivo da Apresentação
Compartilhar o conhecimento obtido e
p
pela
p
outros resultados de experiência
implementação de um caso de aplicação
da automação da construção de
aplicativos (build) suportada pela
ferramenta Build Forge
Forge.
Roteiro
1
• Práticas de Engenharia
g
de Software na
Div. de Ciência da Computação do ITA
2
• O Projeto
P j t HARPIA - Contexto
C t t do
d Caso
C
de Aplicação
3
• Conceitos e Elementos do Build Forge
em Detalhes do Caso de Aplicação
p
ç
4
• Conclusões e Considerações Finais
Prática da Teoria de Engenharia de Software na Div. de Ciência da Computação do ITA
1
Alguns Fatos
•
Incremento da abordagem e utilização de Processos e Ferramentas
de ES em Cursos e Projetos de P&D envolvendo o ITA e Empresas
Públicas e Privadas percebida a partir do ano 2000.
•
Atualmente, mais de uma dezena de matérias dos cursos de
graduação e pós-graduação da Div. de Ciência da Computação do
processos e ferramentas p
para ES.
ITA abordam p
•
Programas de concessão de licenças acadêmicas como o IBM
Academic Inititative viabilizaram esse incremento.
•
Existência de projetos de P&D no ITA propiciam a prática com
problemas do mundo real,, além das práticas
p
p
de sala de aula.
Prática da Teoria de Engenharia de Software na Div. de Ciência da Computação do ITA
1
Alguns Fatos
•
Alguns treinamentos disponibilizados ao ITA pela Rational
Software (via Seed Program – 2002/2003) viabilizaram a
aplicação prática do RUP e das ferramentas tanto nos cursos
quanto em p
q
projetos.
j
RUP Fundamentals
Implementing RUP
Requirements Management with Use Cases
Rational RequisitePro
q
Fundamentals
Business Modeling with the UML
Object
j
Oriented Analysis
y and Design
g with UML
Fundamentals of Rational Rose
Rational ClearCase
Fundamentals for
Windows
Rational ClearCase
Administration for
Windows
Applying
A
l i Rational
R ti
l
ClearCase Metadata
for Windows
Fundamentals of
Rational ClearCase
and UCM
Roteiro
1
• Práticas de Engenharia
g
de Software na
Div. de Ciência da Computação do ITA
2
• O Projeto
P j t HARPIA - Contexto
C t t do
d Caso
C
de Aplicação
3
• Conceitos e Elementos do Build Forge
em Detalhes do Caso de Aplicação
p
ç
4
• Conclusões e Considerações Finais
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Envolvidos
Mais de 100 participantes das seguintes instituições:
• COANA – Coord. Geral de Administração Aduaneira.
• COFIS – Coordenação Geral de Fiscalização.
• Outras Coordenações da RFB
• Profs. de Cursos de Eng. Eletrônica e de Computação
• Alunos
Al
d
de G
Graduação
d
ã
• Alunos de Pós-Graduação
• Profs.
P f de
d Cursos
C
d
de E
Eng. Elét
Elétrica
i ed
de C
Computação
t ã
• Alunos de Graduação
• Alunos de Pós-Graduação
FUNCAMP (Fundação de Desenvolvimento da UNICAMP)
• Pessoal de Apoio Administrativo
• Pessoal contratado em regime CLT para o projeto (Analistas,
Programadores,
g
, DBAs,, dentre outros))
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Objetivos
• P&D para a concepção do Sistema HARPIA com
transferência de tecnologia à RFB.
• Incremento da eficiência e eficácia de processos de auditoria
e fiscalização pela RFB:
• Redução dos tempos e custos de execução de rotinas
operacionais;
• Otimização da alocação da mão-de-obra empregada em
procedimentos fiscais;
• Sistematização e aperfeiçoamento das rotinas de aplicação e
execução de procedimentos de controle; e
• Aumento da segurança do controle de operações e maximização
de resultados da ação fiscal.
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Alguns Desafios
Aplicação
p cação de téc
técnicas
cas e co
conceitos
ce tos de Inteligência
te gê c a Artificial
t ca e
em
casos reais e que lidam com grandes volumes de informação;
Integração aos sistemas existentes baseados numa “miscelânea” de
tecnologias (Mainframe, ADABAS, NATURAL, Risc, J2EE, Oracle,
Datawarehouses, dentre outras);
Mudança no Modelo de Gestão do desenvolvimento de Sistemas
de Software para a RFB, até então realizado exclusivamente pelo
SERPRO;
M
Manutenção
t
ã d
do sigilo
i il e segurança d
de iinformação
f
ã
• Controle de acesso físico e lógico.
• Uso de dados “descaracterizados” para trabalhos de desenvolvimento.
• Rede privada e protegida envolvendo laboratórios no ITA, na UNICAMP e
o ambiente RFB/SERPRO
RFB/SERPRO.
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Equipes Externas à RFB e ao SERPRO
Todo o trabalho de
P&D em Software
é realizado em
laboratórios no
ambiente
acadêmico
acadêmico.
32 Subsistemas
de Software
Aplicativos públicos
e reservados à
RFB
Interfaces Web
e/ou Desktop
Começaram
ç
a ser
disponibilizados no
segundo semestre
de 2007.
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Ferramental IBM Utilizado
QoSRF – Instância definida
pela RFB.
Requisite Pro - Suporte a
Gestão de Requisitos.
ClearQuest - Controle de
Mudanças e Rastreamento de
Defeitos
ClearCase – Gestão de
Configuração com UCM.
Rose Enterprise Edition
Modelagem UML
UML.
SoDA - Produção de relatórios e
documentação
documentação.
Rational Application Developer
Implementação J2EE.
Build Forge - Automação de
Construção **
** Implantação recente
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Motivadores da Adoção
ç do
Build Forge
Construção de Aplicativos (Build)
– Uma definição: Execução sistemática de passos com o
objetivo de transformar código-fonte no produto de software
capaz de ser executado pelo cliente.
– Percebeu-se que a execução manual dos diversos passos,
repetitivamente é cara,
repetitivamente,
cara inviável e propensa a falhas
falhas.
– A automação
ç dos passos
p
utilizando-se de ferramentas como
IDE e scripts programáveis (Ex. Ant, Maven) já é realidade há
algum tempo, mesmo assim o trabalho ainda é árduo e requer
esforços para o bom gerenciamento.
– A dependência de frameworks, componentes de terceiros e a
interdependência entre os subsistemas é alta exigindo um
gerenciamento de release apurado.
O Projeto HARPIA - Contexto do Caso de Aplicação
2
Motivadores da Adoção do
Build Forge
•
Automação
A
t
ã do
d processo de
d construção
t ã no nível
í l dos
d scripts
i t comumente
t
utilizados e, principalmente, num nível acima deles.
•
Possibilidade de “orq
“orquestração”
estração” e monitoramento dos passos do processo
de construção, geralmente implementados por scripts, utilizando-se de
interface gráfica do Console de Gerenciamento.
– Centralizada e acessível via Navegador Web
– Acesso colaborativo distribuído
– Segurança
g
ç baseada em p
papéis
p
•
Regras podem ser implementadas e aplicadas de maneira a garantir que a
construção seja realizada conforme determinados critérios
critérios.
•
Os desenvolvedores podem executar os projetos de construção utilizandose de Plug
Plug-Ins
Ins na IDE RAD
RAD.
Roteiro
1
• Práticas de Engenharia
g
de Software na
Div. de Ciência da Computação do ITA
2
• O Projeto
P j t HARPIA - Contexto
C t t do
d Caso
C
de Aplicação
3
• Conceitos e Elementos do Build Forge
em Detalhes do Caso de Aplicação
p
ç
4
• Conclusões e Considerações Finais
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Arquitetura
q
Funcional do
Build Forge
•Implementação de Projetos
j
de Construção
•Execução
•Monitoramento e Controle
•Coordena a execução de projetos
considerando a programação e os
dados registrados no BD da ferramenta.
•Execução
•Monitoramento
•Executam as tarefas em estações
específicas
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Modelo Implantado
Único canal de disponibilização
de subsistemas e componentes.
p
Máquinas cuja configuração
espelha o ambiente de instalação
de cada subsistema.
O Desenvolvedor
continua
compilando e
testando seu
trabalho
localmente por
meio
i do
d IDE
IDE.
Os Projetos de Construção verificam a existência e
a versão dos recursos necessários.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Servidores de Construção
Onde será armazenado o resultado (parcial ou total)
da execução do Projeto de Construção
Construção.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Seletores
Possibilitam o condicionamento de locais de
saída (servidores) do processamento de
Projetos de Construção.
Note-se que este Seletor aponta para o servidor ilustrado
no slide anterior
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Projeto de Construção
Projeto para a construção de componentes formados por classes de negócio
comuns a todos os subsistemas do Sistema HARPIA (COMUM-Negocio).
(
g
)
Projeto = Conjunto de passos
Tags = Rótulos
compostos de
literais e variáveis
que propiciam a
rastreabilidade da
execução de
projetos de
construção.
Acesso restrito a grupo
de usuário específico
Referência a um Seletor
que por sua vez
referencia um servidor ou
local de construção
Ex.: COMUM-Negocio_01.05.21
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Bibliotecas Build Forge
São como Projetos no Build Forge, porém não possuem um Seletor. Referem-se a
conjuntos de passos “genéricos” que podem ser usados em vários Projetos.
Consideram o Seletor do Projeto que as utiliza
utiliza.
Comandos de script
implementam os
passos.
Alguns comandos
podem ser a chamada
a scripts de
ferramentas
específicas.
Esta biblioteca tem apenas um passo (Criar View) que
usa a ferramenta cleartool do ClearCase para criar
uma Visão da Base de Objetos Versionados na qual
residem os artefatos a serem considerados na
construção.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Ambientes Build Forge
Conjuntos de variáveis de ambiente que podem ser acessadas e atualizadas no
escopo de projetos e/ou de passos de projetos
projetos.
$PVOB, $STREAM_ORIGEM
$PVOB
$STREAM ORIGEM e $VIEW_TAG
$VIEW TAG são variáveis
definidas pelo Engenheiro de Construção a serem utilizadas no
script referente ao passo de criação de Visão ilustrado no slide
sobre Bibliotecas.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Passo de Projeto Build Forge
Este
E
t passo verifica
ifi
se uma visão do
repositório de
artefatos existe no
servidor de
construção e caso
não exista os
passos da
Biblioteca “Cria
View Snapshot
Snapshot” é
executada
Projeto = Conjunto de passos
Os comandos de script podem
ser comandos do S.O.,
execução de programas, shell,
batch ou comandos
específicos do Build Forge
(.<comando>).
Uma das formas do Build Forge saber que um passo falhou é “observando” a
variável ErrorLevel do S.O. Mediante falha ou sucesso notificações pode ser
enviadas e ações podem ser encadeadas.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Passo de Projeto Build Forge
Este passo utiliza-se de comandos do S.O. em
conjunto com comandos do ClearCase para
configurar as regras de carga da Visão criada
no passo anterior.
i
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Passo de Projeto Build Forge
Este passo executa o aplicativo Ant com o
parâmetro –vv no intuito de saber se o servidor
de construção realmente possui este recurso
instalado.
Tal estratégia de uso e recurso remete à
possibilidade de se ter passos de verificação
da existência de recursos necessários à
construção e até mesmo de verificação do
ambiente alvo da implantação do subsistema.
Em caso de falha do comando
o Projeto de construção é
abortado.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Passo de Projeto Build Forge
Este passo executa o aplicativo Ant com
arquivo de configuração de construção
utilizado no IDE do desenvolvedor, construindo
os arquivos de entrega.
O diretório de atuação
ç de cada
passo pode ser diferente, caso
necessários.
Este
E
t elemento
l
t é um Log
L Filter
Filt
outro recurso interessante da
ferramenta.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Filtro de Log Build Forge
Os Filtros de Log verificam a ocorrência de cadeias de caracteres nos registros
de log da execução do Projeto de Construção e podem disparar ações
ações.
Caso a execução de uma
tarefa ao qual o Log Filter for
associado apresente na saída
a cadeia BUILD FAILED a
ação de definir o passo como
falho é executada.
Alguém poderia ser notificado
via e-mail.da ocorrência de
BUILD FAILED.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Execução de Projeto (Job)
Parametrização da execução do Projeto. Definição de
valores de variáveis de ambiente que você definiu
para seu projeto e que não possuem valor único
especificado na programação.
Passos podem ser ignorados em determinadas
instâncias de execução.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Execução de Projeto (Job)
Acompanhamento da execução dos passos do
projeto.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Detalhes da Execução de Passos
Neste caso o alerta foi produzido
porque na instância de execução do
projeto a Visão do repositório de
artefatos não existia então o
encadeamento por falha da biblioteca
Criar View Snapshot foi ativado.
Este recurso é o que propicia o
controle acima do nível dos scripts.
Níveis de abstração distintos são
disponibilizados.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Execução do Projeto com Sucesso
Antes
Depois
p
Pela execução bem sucedida do Projeto
Projeto, o diretório de espaço de trabalho no servidor de
construção foi populado com um diretório referente a Visão da Base de Objetos Versionados e
num diretório específico foram produzidos os arquivos .JAR referente ao resultado da
construção pelo Ant.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Execução com Falha
Note-se que esta seção de
execução é diferente
daquela que vem sendo
apresentada nos slides
anteriores
As mensagens de log
podem ser filtradas.
Falha de passo causada
por ação do Log Filter
Observador Ant.
Texto destacado pela
ferramenta por ter
encontrado a cadeia
BUILD FAILED nas
saídas de execução do
comando do passo.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Coletores
Recurso da ferramenta que possibilita a automatização de pequenas
rotinas armazenando o resultado em variáveis de ambiente
ambiente.
Este Coletor pode ser uma alternativa a passo 3 – Verifica ANT uma vez
que este executa o mesmo comando e extrai, por expressão regular, o
número da versão e a armazena na variável de ambiente ANT_VER.
Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação
3
Agendamento para Execução
Automática de Projeto
Recurso que propicia o agendamento para execução automática e
recorrente de Projetos de Construção.
Todos os dias da semana e em todos os dias de todos os meses às
16h:55m o Projeto COMUM-Negocio será executado no servidor de
construção em questão, esperando-se produzir componentes estáveis.
Roteiro
1
• Práticas de Engenharia
g
de Software na
Div. de Ciência da Computação do ITA
2
• O Projeto
P j t HARPIA - Contexto
C t t do
d Caso
C
de Aplicação
3
• Conceitos e Elementos do Build Forge
em Detalhes do Caso de Aplicação
p
ç
4
• Conclusões e Considerações Finais
Conclusões e Considerações Finais
4
•
Esta apresentação procurou expor alguns conceitos da ferramenta Build
Forge, no intuito de propiciar uma visão geral de suas potencialidades.
•
A fferramenta
t possuii uma série
éi d
de conceitos
it específicos
ífi
porém
é estes
t são
ã
consideravelmente simples e a familiarização com os mesmos foi muito
rápida.
•
O Build Forge não substitui as ferramentas de construção de aplicativos,
pode-se afirmar que ele as complementa.
•
Recursos que propiciam o incremento da automação e do controle são
processo de construção.
ç
adicionados ao p
Conclusões e Considerações Finais
4
•
A implantação
i l t ã d
do B
Build
ild F
Forge no P
Projeto
j t HARPIA ainda
i d é recente
t e parcial
i l
porém os resultados obtidos até então foram interessantes e mostram que
a ferramenta pode contribuir para a melhoria da qualidade do trabalho de
constr ção e liberação de versões
construção
ersões está
estáveis
eis de ssubsistemas
bsistemas e
componentes.
•
A implantação total no Projeto dependerá ainda do incremento do nível de
familiarização com a ferramenta e principalmente aprimoramento da
estratégia de uso.
•
O caso apresentado foi um projeto-piloto para implantação da ferramenta
j
HARPIA. Melhorias p
podem e
no ambiente de desenvolvimento do Projeto
devem ser implementadas no projeto de construção ilustrado.
Conclusões e Considerações Finais
4
Outros recursos interessantes da ferramenta
ferramenta, não menos importantes e que
estão sendo explorados para as implantações, são:
– Adaptors
• Mecanismos que encapsulam ações que integram a ferramenta a
sistemas de terceiros, incluindo controladores de versão,
ferramentas de testes e ferramentas de rastreamento de defeitos
permitindo
iti d correlacionar
l i
elementos
l
t nessas fferramentas
t associadas
i d
à construção de versões de distribuição específicas.
– Threads
• Propiciam a execução de passos de Projetos de Construção em
paralelo propiciando ganho de desempenho
desempenho.
Questões?

Documentos relacionados