5. Implementação e Avaliação
5.1. Protótipo
5.1.1. Análise do Protótipo
processa os dados e os avalia conforme as regras cadastradas. A cada problema encontrado, a ferramenta o classifica conforme as Dimensões de Qualidade e armazenaa, para que possa ser relatado ao fim da avaliação. O armazenamento das informações é feito de forma que é possível resgatálas para a apresentação no relatório, ou para geração de gráficos na interface gerencial do protótipo. Portanto, ficam armazenadas na base de dados do protótipo as informações referentes aos problemas encontrados para cada registro e os dados contidos em cada registro que possui problema. Os registros que não possuem problema detectado não são duplicados para a base do protótipo.
Por fim, o protótipo também possui uma funcionalidade para emissão dos relatórios de problemas detectados. Os relatórios são apresentados não apenas em formato de gŕaficos que mostram quais as tabelas, ou até colunas, possuem mais problemas, mas também quais as Dimensões de Qualidade são mais afetadas. Além disso, permite a exportação de relatório em formato de planilha contendo a descrição de cada um dos problemas encontrados. Com a intenção de facilitar e estimular o uso da ferramenta, foi proposta uma interface amigável para uso dos gestores, que exibe, em formato de gráficos, os relatórios da avaliação da Qualidade dos Dados.
Esta seção está divida em duas subseções. A primeira apresenta os detalhes da etapa de análise do protótipo. E a segunda apresenta as telas desenvolvidas.
5.1.1.
Análise do Protótipo
Na sequência do andamento do trabalho, foi então iniciada a etapa de análise do protótipo a ser implementado. O primeiro artefato gerado nessa análise foi o Diagrama de Caso de Uso, apresentado na Figura 7, que representa os atores e as principais funcionalidades do protótipo.
Conforme apresentado no diagrama de caso de uso, o protótipo prevê a atuação de dois atores. O primeiro ator, denominado “Database Administrator”, deve possuir um perfil mais técnico e tem acesso às funcionalidades relacionadas ao cadastro dos Conjuntos de Dados e das Regras de Validação que devem ser verificados, que são: “ Create new DataSet” , ”Create new DataTable” , “ Create new DataColumn” , “ Create new Constraint to
DataColumn” . Já o segundo ator, denominado “ Business Analyst ”, possui um perfil para consulta aos Relatórios de Problemas de Qualidade, cuja funcionalidade é nomeada “ View evaluation Report ”, e para solicitar ao sistema que realize uma nova avaliação, nomeada “ Execute new evaluation ”. Figura 7 Diagrama de Caso de Uso Fonte: elaborada pelo autor
Além do Diagrama de Caso de Uso, outro artefato gerado na análise foi o Diagrama de Classes apresentado na Figura 8, que define a estrutura das classes da aplicação e, consequentemente, do banco de dados onde serão armazenados todos os dados referentes à definição dos conjuntos de dados, à definição das Regras de Validação e à detecção dos Problemas de Qualidade. O diagrama de classes se apresenta em três pacotes. Cada um deles destaca uma das partes do protótipo. No primeiros deles, nomeado “ Constrainsts_Dimensions ”, estão as classes que contêm as informações que já vêm pré definidas no protótipo, que são os tipos de dados, as Dimensões de Qualidade dos Dados, e os conjuntos de Regras de Validação que podem ser verificados pelo protótipo. As Regras de Validação já são associadas aos tipos de dados e às Dimensões de Qualidade. No segundo pacote, nomeado “ DataSet_Constraint ”, estão as classes que serão utilizadas para armazenar quais dados serão avaliados, e quais Regras de Validação serão aplicadas a cada atributo. No terceiro pacote, nomeado “ DataSet_Evaluation ”, estão as classes que
Figura 8 Diagrama de Classes
Após concluída a etapa inicial de análise do protótipo, outra etapa importante para iniciar o desenvolvimento foi a escolha da linguagem de programação. Para tomar essa decisão foram verificados, basicamente, dois fatores: a existência de um framework de desenvolvimento ágil para a Web , e a existência de ferramentas que auxiliam na validação de dados.
Atualmente, praticamente todas as linguagens de programação mais conhecidas já possuem bons frameworks de desenvolvimento ágil para a Web . Portanto, o passo inicial foi pesquisar por ferramentas que pudessem auxiliar no processo de Validação dos Dados.
Inicialmente, algumas bibliotecas de validação de dados foram encontradas, como formValidation , Cerberus , e outras. A maior parte das ferramentas encontradas2 3 destinamse a validação de dados de formulários Web . No entanto, apesar de ser uma aplicação Web, o protótipo deve detectar problemas em dados que já estão armazenados. Portanto, dentre todas as ferramentas analisadas, destacase a biblioteca Cerberus devido à sua aplicação dentre os conjuntos de Regras de Validação previamente definidos, a possibilidade de utilizála fora do ambiente de um navegador e a sua capacidade de ser estendida caso necessário.
Considerando os benefícios do uso da biblioteca Cerberus , que foi escrita em Python , e a existência do framework Django , que possibilita um desenvolvimento W eb rápido e foi 4
escrito na mesma linguagem de programação; foi definido que o protótipo seria desenvolvido com a linguagem de programação Python, fazendo uso do framework Django .
Além disso, como um dos requisitos era que o sistema possuísse uma interface amigável e intuitiva, foi definido que seria utilizado um framework para desenvolvimento de telas responsivas. Na escolha deste framework ficou definido o uso do Bootstrap , bem 5 como o uso de um template popular e gratuito para construção das telas. Dentre as opções de templates gratuitos para utilizar no protótipo foi definido o uso do AdminLTE , que possui 6 uma grande quantidade de componentes e plugins prédefinidos. 2 Encontrada em http://formvalidation.io/ 3 Encontrada em http://docs.pythoncerberus.org/ 4 Encontrada em https://www.python.org/ 5 Encontrado em http://getbootstrap.com/
5.1.2.
Desenvolvimento do Protótipo
O protótipo foi batizado com o nome DataQualityControl . A escolha do nome teve 7 origem no objetivo do uso da ferramenta, que é o de detectar Problemas de Qualidade em conjuntos de dados e, com isso, auxiliar no controle da Qualidade dos Dados.
A Figura 9 apresenta a tela inicial do protótipo, que é a tela de listagem dos Conjuntos de Dados que estão cadastrados para serem avaliados. A partir desta tela é possível visualizar os detalhes de cada conjunto de dados já cadastrados, cadastrar um novo conjunto de dados, ou visualizar os resultados das últimas avaliações realizadas para cada conjunto de dados. A listagem dos Conjuntos de Dados apresenta o nome e a descrição do Conjunto de Dados, assim como a quantidade de tabelas, colunas e Regras de Validação cadastradas para cada um deles. Figura 9 Tela Inicial: Listagem de Conjuntos de Dados Fonte: elaborada pelo autor 7 O código fonte do protótipo está disponível no repositório https://github.com/arturcalves/dqc