A partir do modelo
sugerido pode-se modificar as entidades, dimensões, hierarquias, membros,
atributos, medidas e relacionamentos para adequar a estrutura de acordo com
outras características associadas à visualização das informações geradas,
independente da ferramenta de build utilizada. A implementação do modelo
descrito no artigo pode ser feita em qualquer ferramenta OLAP que suporte um
modelo multidimensional e possua uma interface para consultas que filtrem os
dados das medidas de acordo com os níveis e membros das dimensões.
O desenvolvimento de software profissional conta com diversas etapas. Dentre as principais, podemos destacar o processo de build, ou seja, o passo onde é necessário realizar diversas ações para produzir uma versão do software. Este processo pode ser composto de ações automáticas ou manuais como, por exemplo, compilação, empacotamento, realização de testes, checagem de dependências e outras atividades necessárias para completar o build.
É comum que empresas preocupadas com a qualidade de desenvolvimento e produção de software invistam em tornar o processo de build automático e adequado para gerar todos os artefatos necessários para lançar uma nova versão do software.
Isso implica em diversas verificações, chamadas de softwares externos, checagem de padrões de desenvolvimento, geração de documentação e tarefas de deploy que, se realizadas manualmente, certamente consumiriam muitos recursos humanos e possuiriam alta probabilidade de falhas.
Portanto, a maioria das equipes de desenvolvimento tem como uma das prioridades iniciais de seus projetos a automação do processo de build.
A execução automática de processos de build gera diversos dados importantes que devem ser analisados tanto pelos membros técnicos da equipe quanto pelo gerente de projeto, pois esta análise vai fornecer indicadores de como anda a qualidade do projeto e outros aspectos relevantes.
Contudo, ainda são poucos os sistemas que fornecem estas informações produzidas pelo processo de build automático em um formato analítico que suporte tomadas de decisão e permita o acompanhamento quantitativo e qualitativo do desenvolvimento do software como um todo.
A partir deste cenário, este artigo apresentará como montar um modelo multidimensional que se baseia nos dados gerados por um processo de build incluindo o tipo, resultado, plataformas suportadas, usuários, commits, bugs e outras entidades.
O modelo descrito neste artigo é multidimensional e pode ser implementado em bancos de dados relacionais e visualizado com qualquer ferramenta que utilize a tecnologia OLAP (OnLine Analytical Processing), com o objetivo de apresentar as informações agregadas em formatos adequados para análises e suporte à tomada de decisões táticas e estratégicas.
O modelo conta com diversas entidades que abordam os principais aspectos relacionados às etapas, ações e verificações realizadas durante o processo de build automático.
Apesar de contemplar diversas características de um processo de build de software típico, o modelo apresentado neste artigo é razoavelmente simples e pode ser adaptado a diferentes tipos de projetos que utilizam build automático de acordo com os requisitos e cenários de utilização. As entidades do modelo são criadas para a visualização dos dados em um modelo multidimensional.
Contudo, o artigo não detalha como obter as informações que foram armazenadas nestas entidades, pois tais informações são dependentes dos formatos de dados específicos de cada projeto e das ferramentas utilizadas para o build.
Funcionamento do build automático
Para começar a compreender o cenário no qual vamos nos basear para montar o modelo, é preciso primeiro estudar um pouco as ações e dados gerados por um build automático a partir de um cenário que demonstre o que é tipicamente feito neste processo.
Como atualmente existem diversas informações e maneiras diferentes de apresentar tais informações, faz sentido delimitar o escopo e escolher um tipo de build e ferramentas comuns que possam ser utilizadas como cenário para a elaboração e detalhamento dos dados com os quais precisamos trabalhar.
O cenário no qual vamos nos basear para criar o modelo de dados utiliza uma plataforma de desenvolvimento Java que geralmente emprega ferramentas como Ant, Maven ou Gradle para automatizar o processo de build de projetos, sejam eles projetos para aplicações desktop, para a Web ou até mesmo para o desenvolvimento mobile para a plataforma Android.
Quando um build é iniciado, ele requer algumas informações importantes, tais como o tipo de build, o local de armazenamento dos arquivos gerados e parâmetros de compilação. São estas informações que vão indicar quais ações precisam ser feitas.
Tipos comuns incluem “Compilação”, “Empacotamento”, “Clean” e “Completo”. Cada um deles possui diversas características e pode conter ações que vão determinar o que efetivamente será fe ...