[DIGITE O TÍTULO DA TESE] - Coordenação de Projetos · Web viewWord-key: Basic statistics ......
Transcript of [DIGITE O TÍTULO DA TESE] - Coordenação de Projetos · Web viewWord-key: Basic statistics ......
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA
CURSO DE BACHAREL EM SISTEMAS DE INFORMAÇÃO
SISTEMA DE ANÁLISE EXPLORATÓRIA DE DADOS
WANDERLEI PASSOS
FLORIANÓPOLIS
2008
WANDERLEI PASSOS
SISTEMA DE ANÁLISE EXPLORATÓRIA DE DADOS
Trabalho de conclusão de curso apresentado como requisito parcial para a obtenção do grau de Bacharel em Sistemas de Informação.
Orientador: Prof. Pedro Alberto Barbetta, Dr.
FLORIANÓPOLIS
2008
SISTEMA DE ANÁLISE ESPLORATÓRIA DE DADOS
Por
WANDERLEI PASSOS
Trabalho de conclusão de curso aprovado para a obtenção do grau de Bacharel em Sistemas de Informação, pela Banca examinadora formada por:
_________________________________________________Presidente: Prof. Pedro Alberto Barbetta, Dr. - Orientador, UFSC.
_________________________________________________Membro: Prof. José Eduardo De Lucca,Dr. - Coorientador, UFSC.
_________________________________________________Membro: Prof. Paulo José Ogliari, Dr., UFSC.
Florianópolis, 19 de maio de 2008.
Dedico este trabalho à minha família, em especial à minha filha Luana, que foi quem mais sentiu a minha falta durante esta jornada.
RESUMO
O uso da informática está presente em tudo que fazemos, e sua utilização nas atividades de ensino
está, a cada dia, mais intensa. Este trabalho busca desenvolver um sistema para realizar análise
exploratória de dados, qual poderá servir como ferramenta para os alunos porem em prática o
conteúdo aprendido em disciplinas de estatística básica. Podemos dizer que a estatística é uma
ciência muito vasta, que abrange desde a organização e descrição, até análise e interpretação de
dados. Este software preocupa-se apenas com a parte de organização e descrição de dados, ou
seja, com a análise exploratória de dados.
Palavras-chave: Estatística Básica, Análise exploratória de dados, Desenvolvimento de Software.
ABSTRACT
The use of the computer science is present in everything that we do, and your use in the teaching
activities is, every day, more intense. This work search to develop a system to accomplish
exploratory analysis of data, which can serve as tool for the students to put in practice the content
learned in disciplines of basic statistics. We can say that the statistics is a very vast science, that it
embraces from the organization and description, even analysis and interpretation of data. This
software just worries about the organization part and description of data, in other words, with the
exploratory analysis of data.
Word-key: Basic statistics, Exploratory analysis of data, Development of Software.
LISTA DE ILUSTRAÇÕES
Figura 1 Esquema geral de Estatística - Fonte: Costa Neto, 1977.................................................14
Figura 2 Classificação das variáveis e dos dados...........................................................................17
Figura 3 Distribuição de freqüências do grau de instrução do chefe da casa, numa amostra de 119
famílias do Saco Grande II, Florianópolis – SC, 1988...................................................................19
Figura 4 Distribuição de freqüências da renda do chefe da família em salários mínimos, numa
amostra de 119 famílias do Saco Grande II, Florianópolis – SC, 1988.........................................20
Figura 5 Quartil inferior (QI), Mediana (Md) e Quartil superior (QS)............................................23
Figura 6 Diagrama de casos de uso do Sistema.............................................................................37
Figura 7 Modelo Conceitual 1........................................................................................................39
Figura 8 Diagrama de classes de projeto 1.....................................................................................43
Figura 9 Tela Principal do Protótipo com um arquivo importado do Excel..................................46
Figura 10 Tela com gráfico construído pelo protótipo...................................................................47
Figura 11 Modelo Conceitual 2......................................................................................................51
Figura 12 Classes da interface gráfica do software........................................................................54
Figura 13 Classes de Controle........................................................................................................56
Figura 14 Tela principal do Sistema...............................................................................................57
Figura 15 Caixa de diálogo padrão para escolha de arquivo..........................................................59
Figura 16 Caixa de diálogo para importar arquivos do Excel........................................................59
Figura 17 Tela de apresentação de dados.......................................................................................61
Figura 18 Caixa de diálogo para mudar tipo da variável................................................................62
Figura 19 Caixa de diálogo para editar variáveis...........................................................................62
Figura 20 Caixa de diálogo distribuição de freqüência de variáveis qualitativas..........................63
Figura 21 Apresentação de tabela de distribuição freqüência em texto tabulado..........................64
Figura 22 Caixa de diálogo distribuição de freqüência variável quantitativa................................65
Figura 23 Apresentação de tabela de distribuição freqüência em texto tabulado..........................65
Figura 24 Caixa de diálogo para cálculo de medidas descritivas...................................................66
Figura 25 Apresentação de resultados de cálculo de medidas descritivas.....................................67
Figura 26 Caixa de diálogo descrição de variáveis grupando por categoria..................................67
Figura 27 Apresentação de medidas descritivas grupadas por categoria.......................................68
Figura 28 Apresentação gráfica de distribuição de freqüência de variável qualitativa..................69
Figura 29 Apresentação gráfica de distribuição de freqüência de variável quantitativa................69
Figura 30 Caixa de diálogo para criar diagrama de dispersão........................................................70
Figura 31 Diagrama de dispersão...................................................................................................70
SUMÁRIO
1 INTRODUÇÃO.............................................................................................................12
1.1 OBJETIVOS....................................................................................................................12
1.1.1 Geral................................................................................................................................12
1.1.2 Específicos.......................................................................................................................13
1.2 JUSTIFICATIVA PARA O DESENVOLVIMENTO DO PROJETO...........................13
1.3 ESTRUTURA DO TRABALHO....................................................................................14
2 ANÁLISE EXPLORATÓRIA DE DADOS................................................................15
2.1 ARQUIVOS DE DADOS...............................................................................................16
2.2 TIPOS DE VARIÁVEIS.................................................................................................17
2.3 DISTRIBUIÇÃO DE FREQÜÊNCIA............................................................................19
2.4 MEDIDAS DESCRITIVAS............................................................................................22
2.4.1 MÉDIA ARITIMÉTICA.................................................................................................22
2.4.2 PERCENTIL, MEDIANA E QUARTIL.........................................................................23
2.4.3 MODA.............................................................................................................................24
2.4.4 AMPLITUDE..................................................................................................................24
2.4.5 VARIÂNCIA E DESVIO PADRÃO..............................................................................25
2.4.6 COEFICIENTE DE VARIAÇÃO...................................................................................25
3 VISÃO GERAL DO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 26
3.1 CARACTERÍSTICAS DO PROCESSO UNIFICADO..................................................26
3.2 ETAPAS DO DESENVOLVIMENTO...........................................................................27
3.3 CICLO DE VIDA DO DESENVOLVIMENTO............................................................28
3.4 MODELAGEM DE SISTEMAS....................................................................................28
4 DEFINIÇÃO DO SISTEMA........................................................................................30
4.1 VISÃO GERAL DO SISTEMA......................................................................................30
4.2 ESPECIFICAÇÃO DOS REQUISITOS.........................................................................31
4.2.1 REQUISITOS FUNCIONAIS.........................................................................................31
4.2.2 REQUISITOS NÃO-FUNCIONAIS...............................................................................34
4.3 CASOS DE USO DE ALTO NÍVEL..............................................................................35
5 CICLO DE DESENVOLVIMENTO 1........................................................................39
5.1 ANÁLISE........................................................................................................................39
5.2 PROJETO........................................................................................................................42
5.2.1 ARQUITETURA DO SISTEMA....................................................................................42
5.2.2 CLASSES DE PROJETO................................................................................................43
5.3 IMPLEMENTAÇÃO......................................................................................................45
5.3.1 PROTÓTIPO DE INTERFACE COM USUÁRIO.........................................................46
6 CICLO DE DESENVOLVIMENTO 2 A 6.................................................................49
6.1 ANÁLISE........................................................................................................................49
6.1.1 CASO DE USO GERENCIAR ARQUIVOS..................................................................49
6.1.2 CASO DE USO MANIPULAR DADOS........................................................................50
6.1.3 CASO DE USO FAZER DISTRIBUIÇÃO DE FREQÜÊNCIAS.................................52
6.1.4 CASO DE USO CALCULAR MEDIDAS DESCRITIVAS..........................................53
6.1.5 CASO DE USO CONSTRUIR GRÁFICOS...................................................................54
6.2 PROJETO........................................................................................................................55
6.2.1 PADRÕES DE PROJETO UTILIZADOS......................................................................57
6.3 IMPLEMENTAÇÃO......................................................................................................58
6.3.1 IMPLEMENTAÇÃO DO CASO DE USO GERENCIAR ARQUIVOS.......................58
6.3.2 IMPLEMENTAÇÃO DO CASO DE USO MANIPULAR DADOS.............................61
6.3.3 IMPLEMENTAÇÃO DO CASO DE USO DISTRIBUIÇÃO DE FREQÜÊNCIA.......64
6.3.4 IMPLEMENTAÇÃO DO CASO DE USO calcular medidas descritivas.......................67
6.3.5 IMPLEMENTAÇÃO DO CASO DE USO CONSTRUIR GRÁFICOS........................69
7 CONSIDERAÇÕES FINAIS........................................................................................72
7.1 OBJETIVOS ATINGIDOS.............................................................................................72
7.2 TRABALHOS FUTUROS..............................................................................................73
REFERÊNCIAS...........................................................................................................................75
anexo a – CÓDIGO FONTE DO SISTEMA de análise exploratória de dados.............................76
12
1 INTRODUÇÃO
Vivemos atualmente em um mundo de informação onde o armazenamento e
recuperação dessa informação é cada vez mais facilitada pelo desenvolvimento tecnológico.
Muitas vezes a utilização da informação não é simples e nem direta. Ou seja, é preciso um
trabalho de processamento para que os dados que dispomos sejam transformados em
informação e conhecimento. A estatística é justamente uma ciência que se preocupa com a
transformação de dados em informações e conhecimento por meio da organização, descrição,
análise e interpretação de dados; e é aplicável a qualquer ramo do conhecimento em que se
manipulam dados. A estatística é uma ciência de inegável importância, tanto que é cadeira
obrigatória na maioria dos cursos de nível superior.
Levando-se em consideração as enormes quantidades de dados que temos de
analisar, o uso da estatística se torna muito mais eficiente através de ferramentas de software
que atomatizam os métodos estatísticos, incluindo a organização dos dados e apresentação de
diversos tipos de gráficos de forma automática. De fato existem muitos softwares estatísticos
no mercado, mas em geral são caros e difíceis de serem usados por estudantes que estão
iniciando o aprendizado da Estatística, de modo que a proposta deste trabalho é o
desenvolvimento de um software livre para análise estatística básica, ou mais precisamente,
para análise exploratória de dados, voltado para estudantes de disciplinas de estatística básica.
1.1 OBJETIVOS
1.1.1 Geral
O objetivo principal deste trabalho de conclusão de curso é o desenvolvimento de um
software de análise estatística básica, que busca atender as necessidades dos alunos de
Estatística dos cursos de graduação da UFSC. Através do desenvolvimento deste software
pretende-se pôr em prática os conhecimentos adquiridos no transcorrer do curso de Sistemas
de Informação, com ênfase na Engenharia de Software, Engenharia de Usabilidade e
Estatística Básica.
13
1.1.2 Específicos
a) Como objetivos específicos, o trabalho busca, em um primeiro momento,
desenvolver um software, para Análise Exploratória de Dados.
b) Fazer a análise e projeto do sistema utilizando a UML (Unified Modeling
Language) como a linguagem de modelagem do sistema.
c) Utilizar o Processo Unificado como metodologia de desenvolvimento de
software.
d) Programar o sistema utilizando a linguagem de programação orientada a objetos
Java versão cinco, buscando maximizar o reuso através da utilização de
bibliotecas Java, disponíveis na Internet.
e) Construir o software utilizando a arquitetura MVC (Model, View, Controller), de
modo a separar as responsabilidades da interfase com o usuário (GUI), das
responsabilidades das demais partes do sistema.
f) E, por fim, construir uma interface amigável para o usuário operar o sistema.
1.2 JUSTIFICATIVA PARA O DESENVOLVIMENTO DO PROJETO
O desenvolvimento desse projeto é justificado pela necessidade do autor pôr em
prática o conhecimento adquirido no curso através do desenvolvimento de um software
completo e funcional, e pela necessidade do professor-orientador de disponibilizar aos alunos
um software livre, simples e em português para análise estatística básica. Os softwares
existentes são, em geral, caros e complexos demais para estudantes iniciantes em Estatística.
Muitos estão em inglês, o que pode ser uma barreira no aprendizado dos estudantes.
14
1.3 ESTRUTURA DO TRABALHO
O presente trabalho pode ser dividido em duas partes. Uma parte teórica, constituida
pelos capítulos 2 e 3, e o relatório de desenvolvimento do software, dos capítulos 4 ao 7.
Na parte teórica, o Capítulo 2 explana de forma sucinta os principais conceitos de
Estatística envolvidos no projeto. Já o Capítulo 3, dá uma visão geral do processo de
desenvolviomento de software, especificamente sobre o Processo Unificado, o qual foi
utilizado como guia neste projeto.
O Capítulo 4, inicia o relatório de desenvolvimento do software. Neste caítulo é
definida uma visão geral do sistema. São elencadas as funcionalidades do software através da
especificação dos requisitos e dos casos de uso do software. No Capítulo 5, tratamos do
primeiro ciclo de desnvolvimento onde passamos pelas etapas de análise e projeto do sistema
e implementação de um protótipo. Na de análise abstraímos os conceitos do domínio do
problema, relevantes em uma primeira análise, e desenhamos o diagrama conceitual do
sistema. Na etapa de projeto descrevemos sobre a arquitetura de software empregada no
sistema e projetamos as classes do sistema, que deverão ser traduzidas em linguagem de
programação Java. O capítulo 6 relata o desenvolvimento do sistema descrevendo a evolução
do trabalho durante os ciclos de desenvolvimento 2 a 6. Finalmente, no Capítulo 7, são feitas
as considerações finais sobre o projeto.
15
2 ANÁLISE EXPLORATÓRIA DE DADOS
A estatística é uma área do conhecimento e também uma ciência que, baseia-se na
teoria estatística, um ramo da matemática aplicada, para explicação de eventos, estudos e
experimentos. Tem por objetivo obter, organizar e analisar dados, determinar as correlações
que apresentem, tirando delas suas conseqüências para descrição e explicação do que passou e
previsão e organização do futuro (Wikipedia).
Segundo (Costa Neto,1977) a estatística pode ser dividida basicamente em duas
partes: a Estatística Descritiva ou Análise Exploratória de Dado que, compreende a
organização, apresentação e sintetização dos dados, e a Estatística Indutiva que cuida da
análise e interpretação dos dados.
De acordo com (Costa Neto, 1977) um estudo estatístico completo que recorra às
técnicas de Estatística Indutiva irá envolver também, direta ou indiretamente, tópicos de
Estatística Descritiva, Cálculo de Probalidades e Técnicas de Amostragem, conforme Figura
1.
Figura 1 Esquema geral de Estatística - Fonte: Costa Neto, 1977.
A seguir são mostrados alguns conceitos importantes relacionados a estatística,
focando na Análise Exploratória de Dados, a qual é o tema central abordado no trabalho.
Amostragem
EstatísticaDescritiva
Cálculo deProbabilidades
Estatística Indutiva
16
2.1 ARQUIVOS DE DADOS
Para a aplicação das técnicas de análise exploratória de dados em um conjunto de
dados previamente observados, é necessário que os dados estejam organizados de uma forma
padronizada para facilitar a análise. Essa padronização consiste em codificar o dados
coletados, em uma matriz de dados, onde cada coluna se refere a uma variável e cada linha a
um respondente ou observação. As variáveis são as características que podem ser observadas
ou medidas em cada elemento da população, sob as mesmas condições (Barbetta, 2002).
Para exemplificar, a Tabela 1 mostra os dados já codificados de unidades
observacionais.
Tabela 1 Dados codificados de 5 famílias (Barbetta, 2002).
Nº LOCAL P.A.P. INSTRUÇÃO TAMANHO RENDA
1 1 0 3 4 10,3
2 1 0 3 4 15,4
3 1 1 2 4 9,6
4 1 0 2 5 5,5
5 1 1 3 1 9
Na Tabela 1, temos cinco variáveis que foram codificadas da seguinte maneira:
LOCAL(localidade da moradia):
1 = Conjunto Residencial Monte Verde,
2 = Conjunto Residencial Parque da Figueira,
3 = Encosta do Morro.
P.A.P. ( uso de algum programa de alimentação popular ) :
17
0 = não;
1 = sim.
INSTRUÇÃO ( grau de instrução do chefe da casa ):
1 = nenhum grau de oficialmente completo;
2 = primeiro grau completo;
3 = segundo grau completo.
TAMANHO (número de pessoas residentes no domicílio).
RENDA (renda familiar mensal, em quantidades de salários mínimos).
Normalmente os dados para análise estatística são codificados em códigos numéricos
que representam o valor real da observção, como é o saso das variáveis LOCAL, P.A.P. e
INSTRUÇÃO. Em alguns casos não é necessária nenhuma codificação, por exemplo, a
variável TAMANHO, que representa a quantidade de pessoas residentes no domicílio, pois os
valores desta variável já estão em formato numérico. No entanto, pode haver casos em que
variáveis cujos dados já estão em formato numérico precisem ser codificadas. É o caso da
variável RENDA que está codificada em quantidade de salários mínimos, pois provavelmente
os valores originais desta variável deveriam estar em valores da moeda corrente da época da
pesquisa. Se os dados de RENDA tivessem sido deixados em seu formato original seria muito
difícil analisar hoje o nível da renda familiar, devido as várias transformações econômicas
ocorridas desde a época da pesquisa. Ou seja, todas as variáveis devem passar por um
processo de codificação que, deve levar em conta os objetivos da pesquisa.
Na seção 2.2 são mostrados os diferentes tipos de variáveis que podem existir.
2.2 TIPOS DE VARIÁVEIS
As variáveis podem ser classificadas em Quantitativa ou Qualitativa de acordo com
os possíveis resultados das mesmas (Barbetta, 2002), conforme ilustra a Figura 2 .
18
Figura 2 Classificação das variáveis e dos dados
Fonte: Barbetta, 2002.
Quando os possíveis resultados de uma variável são números de uma certa escala, ou
seja, quando sua medida tem sentido de quantidade, a variável é classificada como
quantitativa. As variáveis quantitativas podem ainda ser divididas em contínuas e discretas.
As contínuas são as variáveis quantitativas que podem assumir, teoricamente, qualquer valor
dentro de um intervalo contínuo. Por exemplo, a variável RENDA, da tabela 1 apresentada na
seção anterior, é uma variável contínua. Já as variáveis quantitativas discretas, podem
assumir apenas valores enumráveis dentro de um determinado domínio, e geralmente são
números inteiros positivos. A variável TAMANHO, da tabela 1 apresentada na seção anterior,
é um exemplo de variável discreta.
As variáveis qualitativas não apresentam um valor de medida com sentido de
quantidade, mas sim atributos ou qualidades do elemento em observação. As variáveis
qualitativas podem ser divididas em qualitativa nominal e qualitativa ordinal. Como exemplo
de variável qualitativa nominal no conjunto de dados da seção anterior tem-se a variável
P.A.P. com duas categorias posíveis. Sim (usa programa de alimentação popular), e Não (não
usa o programa). É fácil perceber, que nesta variável não há um ordem determinada entre as
categorias. Já a variável INSTRUÇÃO, apresenta treis categorias. Nenhum grau de estudo,
primeiro grau e segundo grau. Aqui percebe-se uma certa ordem ou hierarquia, tratando-se
portanto de uma variável qualitativa ordinal.
Dados quantitativos
Dados qualitativosou categorizados
Variável
Quantitativa
Qualitativa oucategorizada
19
2.3 DISTRIBUIÇÃO DE FREQÜÊNCIA
A distribuição de freqüência compreende a organização dos dados de acordo com as
ocorrências dos diferentes resultados observados (Barbetta, 2002). Por exemplo, a Tabela 2
apresenta a distribuição de freqüências para 119 famílias do Saco Grande II, com relação ao
grau de instrução do chefe da família. A distribuição de freqüências é obtida contabilizando
quantos chefes de família (ou a percentagem) se enquadram em cada categoria de grau da
variável instrução.
Tabela 2 Distribuição de freqüências do grau de instrução do chefia da casa, numa amostra de 119 famílias do Saco Grande II, Florianópolis – SC, 1988.
Grau de Intrução Freqüência Percentagem
Nenhum grau 38 31,9%
Primeiro grau 38 31,9%
Segundo grau 43 36,1%
Total 119 100,0%
As distribuições de freqüências podem ser apresentadas em tabelas como a mostrada
acima ou através de gráficos. As distribuições de freqüênciasa de variáveis qualitativas são
normalmente apresentadas em gráficos de setores, de barras ou colunas. A Figura 3 ilustra um
exemplo de gráfico de setores.
20
Figura 3 Distribuição de freqüências do grau de instrução do chefe da casa, numa amostra de 119 famílias do Saco Grande II, Florianópolis – SC, 1988.
Quanto as variáveis quantitativas, a distribuição de freqüência pode ser feita da
mesma forma que é feita para variaveis categóricas, desde que a variável seja discreta e a
quantidade de diferentes valores observados seja pequena. Para a variáveis contínuas ou
discretas com grande quantidades de valores distintos, os dados devem ser, primeiramente,
grupados em classes ou intervalos de modo a facilitar a sua analise. A Tabela 3 exemplifica
uma distribuição de freqüências de uma variável quantitativa contínua grupada em intervalos.
21
Tabela 3 Distribuição de freqüências da renda do chefe da família em salários mínimos, numa amostra de 119 famílias do Saco Grande II, Florianópolis – SC, 1988.
Renda em salários mínimos Freqüências
0,10 |-- 2,66 18
2,66 |-- 5,22 41
5,22 |-- 7,78 30
7,78 |-- 10,34 13
10,34 |-- 12,90 11
12,90 |-- 15,47 2
15,47 |-- 18,03 1
18,03 |-- 20,59 2
20,59 |-- 23,15 0
23,15 |-- 25,71 1
Total 119
Para as variáveis quantitativas as representações gráficas mais usadas são os
histogramas e ospolígonos de freqüência. Ver exemplo de histograma na Figura 4.
Figura 4 Distribuição de freqüências da renda do chefe da família em salários mínimos, numa amostra de 119 famílias do Saco Grande II, Florianópolis – SC, 1988.
22
2.4 MEDIDAS DESCRITIVAS
Muitas vezes é necessário sumarizar certas características das distribuições de
freqüências por meio de medidas usualmente denominadas de medidas da distribuição de
freqüência (Costa Neto, 1977). Temos, assim, medidas de posição, de dispersão, de assimetria
e de achatamento ou curtose.
As medidas de posição e de dispersão são as mais importantes, tendo grande
aplicação em problemas de Estatística Indutiva. Como medidas de posição podemos citar a
média, a mediana, a moda, os quartis e os percentis. As três primeiras medidas indicam por
critérios diferentes, o centro da distribuição de freqüência.
As medidas de dispersão complementam a informação fornecida pelas medidas de
posição, indicando o quanto os dados se encontram dispersos em torno da região central
(Costa Neto,1977). Exemplos de medidas de dispersão são: amplitude, variância, desvio-
padrão e coeficiente de variação.
Nas seções 2.4.1 à 2.4.3, são definidas as medidas de posição, e nas seções 2.4.4 à
2.4.6 são definidas as medidas de dispersão.
2.4.1 MÉDIA ARITIMÉTICA
A média é a medida posição mais comumente usada e existem várias fórmulas para o
cálculo da média, como por exemplo média aritimética, geométrica, e ponderada. A mais
popular e mais simples de todas é a média aritimética, a qual pode ser definida como a soma
dos valores(x) dividida pelo número(n) de valores observados.
2.4.2 PERCENTIL, MEDIANA E QUARTIL
Um percentil é uma medida da posição relativa de uma unidade observacional em
relação a todas as outras. O p-ésimo percentil tem no mínimo p% dos valores abaixo daquele
ponto e no mínimo (100 - p)% dos valores acima.
23
Considere a notação X[np]+ , que significa anotar a próxima observação acima de np
(onde n é o total de valores e p o percentil em decimais, por exemplo 25% = 0,25). Com os
dados ordenados de modo crescente, se np não é inteiro, o percentil é a média do valor desta
posição e da observação seguinte. Se np é inteiro, então os colchetes em torno do índice
representam a posição do percentil após os dados terem sido ordenados de modo crescente.
Por exemplo, se o conjunto de dados tem 75 observações, então o 25º percentil é o
, isto é, a 19ª menor observação após a ordenação. O 30º percentil é
, isto é, . Ou seja, a média das 22ª e 23ª observações
após a ordenação(LOPES). Os percentis de números 25, 50 e 75 são chamados,
respectivamente, de primeiro quartil (simbolizado por Q1), de segundo quartil (Q2) igual à
mediana (Md) e de terceiro quartil (Q3).
A mediana junto com os quartis são as medidas de posição baseadas na ordem dos
valores mais utilizadas, sendo a mediana definida como o valor do conjunto de dados que,
divide a distribuição ao meio deixando os 50%, menores valores de um lado e os 50%,
maiores valores do outro lado (Barbetta, 2002).
Figura 5 Quartil inferior (QI), Mediana (Md) e Quartil superior (QS).
Fonte: Barbetta, 2002.
25%25%
25%
25%QI Md QS
24
2.4.3 MODA
A moda é definida como o valor que ocorre com maior freqüência na distribuição.
Das medidas de posição central é a de menor importância, pois dependendo do conjunto de
dados pode haver mais de uma moda ou, simplesmente, pode não haver moda para a
distribuição em análise.
2.4.4 AMPLITUDE
A amplitude é definida como a diferença entre o maior e o menor valor do conjunto
de dados. É a medida de dispersão mais simples, facilmente calculada a partir de apenas dos
valores da distribuição. Porém, é uma medida imprecisa, pois o cáculo envolve só dois valores
observados, não importando se o conjunto de dados tenha 1000 observações.
2.4.5 VARIÂNCIA E DESVIO PADRÃO
A variância é, por definição, a média dos quadrados das diferenças dos valores em
relação à sua média. Como a variância de um conjunto de dados é calculada em função dos
desvios quadráticos, sua unidade de medida equivale à unidade de medida dos dados ao
quadrado (Barbetta, 2002). Na prática, esse incoveniente é sanado com a definição do desvio
padrão, que nada mais é do que a raiz quadrada positiva da variância.
Variância:
Desvio Padrão:
25
2.4.6 COEFICIENTE DE VARIAÇÃO
O coeficiente de variação é uma medida de dispersão relativa que é melhor para
comparar a variabilidade entre diversos conjuntos de dados que têm médias bem diferentes. O
coeficiente de variação é obtido dividindo-se o desvio padrão pela média da distribuição.
Como tanto o desvio padrão quanto a média, é dado que estão na mesma unidade, o
CV é independente de unidade de medida. Uma desvantagem do CV é que não é utilizável se
a média for muito próximo à zero.
3 VISÃO GERAL DO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
Um processo de desenvolvimento de software provê uma base para a produção
organizada de software, usando uma coleção de técnicas e notações predefinidas (Blaha e
Rumbaugh, 2006). Existem hoje no mercado diversos processos para desenvolvimento de
software. Nesta seção abordaremos, bem superficialmente, algumas características do
Processo Unificado o qual pretendemos utilizar no desenvolvimento do sistema proposto.
Destacamos que não pretendemos cumprir religiosamente todos os requisitos exigidos por
este processo, visto que são muitos. E como não existe ainda uma metodologia considerada
perfeita, no decorrer do desenvolvimento do projeto, caso seja necessário, serão feitas
adaptações a fim de conseguir sucesso no seu desenvolvimento. A seguir explanaremos as
principais características do Processo Unificado.
3.1 CARACTERÍSTICAS DO PROCESSO UNIFICADO
O processo unificado possui três características principais. Ele é um processo
dirigido por casos de uso, é centrado em arquitetura e seu ciclo de vida é iterativo e
incremental.
Num processo dirigido por casos de uso, o processo de desenvolvimento segue um
fluxo, em que os casos de uso são especificados, projetados, implementados, e no fim são a
26
fonte a partir dos quais os testes são definidos e realizados (SILVA e VIDEIRA, 2001).
Basicamente podemos dizer que casos de uso representam as funcionalidades que o sistema
deve disponibilizar para o usuário do sistema.
Ser centrado na arquitetura significa que há a preocupação de como vemos o
software como um todo. Quando pensamos em questões de orçamento, tecnologias, se o
software será ou não composto por camadas, ambientes de software e hardware sobre o qual o
novo software estará pautado, estamos falando de sua arquitetura (MEDEIROS, 2004).
A terceira importante característica do Processo Unificado é que este processo é
iterativo e incremental. O desenvolvimento de um software, segundo esta metodologia,
envolve a execução de várias atividades, como: levantamento de requisitos, análise, projeto,
implementação e testes. Uma passagem completa por este ciclo de atividades constitui uma
iteração, e normalmente resulta como produto uma nova versão do software que está sendo
desenvolvido. A cada iteração, novas funcionalidades (incrementos) vão sendo acrescentadas
até que o software esteja completamente pronto. Por isso que esta metodologia é considerada
iterativa e incremental.
3.2 ETAPAS DO DESENVOLVIMENTO
Segundo Blaha e Rumbaugh (2006), o desenvolvimento de um software se dá através
de uma sequência de etapas bem definidas. A apresentação das etapas é linear, embora o
processo real raramente o seja.
Concepção do sistema: Nessa etapa alguém concebe uma idéia para uma aplicação,
levando em consideração as nessecidades do negócio e as capacidades tecnológicas.
Análise: Nesta etapa busca-se entender profundamente os requisitos, construindo
modelos. O objetivo da análise é especificar o que precisa ser feito, não como é feito.
Projeto: Aqui é criada a arquitetura para resolver o problema da aplicação. O modelo
desenvolvido na etapa de análise é ajustado à arquitetura definida, de modo que sejam
passíveis de serem implementados em computador. Também devem ser determinados os
agorítmos das operações.
Implementação: O projeto é traduzido em código de programação e estruturas de
bancos de dados.
27
Teste: Esta etapa assegura que a aplicação esteja adequada para o uso real e que
realmente satisfaça os requisitos.
Treinamento: Os usuários devem ser treinados para dominar a nova aplicação, caso
contrário o sucesso do projeto pode ser comprometido, devido a relutancia dos usuários em
utilizar o software.
Implantação: Consiste em colocar a aplicação em produção e, harmoniosamente,
ajustar às demais aplicações quando for o caso.
Manutenção: é um engano pensar que o desenvolvimento de um software termina
com a sua implantação no cliente. Na verdade, a viabilidade de longo prazo da aplicação
depende da manutenção que sem dúvida será necessária à nova aplicação, seja para corrigir
problemas ou para atender a novas solicitações do cliente.
3.3 CICLO DE VIDA DO DESENVOLVIMENTO
Uma abordagem Orientada a Objetos para desenvolvimento de software aceita vários
tipos de ciclo de vida. Por exemplo, pode-se citar a abordagem em cascata para realizar as
etapas de análise, projeto, implantação e testes em uma sequência única para o sistema inteiro.
A abordagem modelo em V na qual, alternativamente ao modelo cascata, destaca a
necessidade de os testes serem planejados ao longo do desenvolvimento. Outra abordagem é o
modelo de desenvolvimento incremental, em que os requisitos não estão completamente
definidos(evoluirão), as atividades não se esgotam ao final de cada etapa, e os ciclos devem
ser tantos quanto necessário, não se limitando à um único ciclo(p.e. modelo cascata). Pode-se
citar também o modelo espiral, no qual entre as etapas do modelo cascata, são inseridas
atividades de planejamento da etapa seguinte, determinão de objetivos, alternativas e
limitações, avaliação das alternativas, identificação e solução de riscos e
prototipação(simulações, avaliações).
Na prática é raro adotar um modelo puro, visto que todos apresentam limitações, e
desvantagens. O que acontece é a aplicação das boas características de cada modelo. O mais
recomendado (BLAHA e RUMBAUGH, 2006), e o que vai ser utilizado para guiar o
desenvolvimento deste projeto é uma estratégia de desenvolvimento iterativa e incremental,
como é o caso do Processo Unificado explicado anteriormente, no final da seção 3.1.
28
3.4 MODELAGEM DE SISTEMAS
Esta seção não pretende explicar o que é a UML (Unifield Modeling Language), mas
definí-la como a linguagem utilizada na modelagem do Sistema de Análise Exploratória de
Dados.
Uma das técnicadas de projeto é a criação de modelos que são abstrações do
problema, com a finalidade de entendê-lo antes de construir uma solução. O desenvolvimento
precisa abstrair diferentes visões do sistema, montar modelos com notações exatas, verificar
se os modelos satisfazem aos requisitos do sistema e acrescentar detalhes gradualmente, a fim
de transformar os modelos em uma implementação.
A UML é a linguagem de modelagem que possibilita modelar um sistema a partir de
vários pontos de vista diferentes. Para uma descrição completa de um sistema são necessários
pelo menos três pontos de vista distintos, porém relacionados. O modelo de classes representa
os aspectos estáticos e estruturais, ou seja, os “dados” do sistema. O modelo de estados
representa os aspectos temporais e comportamentais, ou seja, o “controle” ou os “processos”
do sistema. E o modelo de interações representa a colaboração de objetos individuais, os
aspectos de “interações” do sistema. Cada modelo tem referências a entidades em outros
modelos. Por exemplo, o modelo de classes anexa operações às classes, enquanto os modelos
de estado e de interações elaboram as operações (BLAHA e RUMBAUGH, 2006).
29
4 DEFINIÇÃO DO SISTEMA
A primeira etapa do projeto é a concepção do sistema, o que foi feito quando
definimos os objetivos do presente trabalho. No entanto, é preciso definir com mais detalhes
as funcionalidades do sistema, as quais delimitam o escopo do sistema.
4.1 VISÃO GERAL DO SISTEMA
Como vimos no capítulo 2, a Estatística pode ser dividida em Estatística Descritiva e
Estatística Indutiva, e que a Estatística Indutiva depende das técnicas de organizaçao e
descrição dos dados da Estatística Descritiva para poder fazer a análise e interpretação dos
dados observados. Tendo isso em vista, e que desenvolver um software estatístico completo,
estaria além das espectativas para um TCC e dos recursos disponíveis, delimitamos o escopo
do projeto ao desenvolvimento de um software que atenda apenas as funcionalidades
necessárias para a análise exploratória de dados..
Para definir as funcionalidades que o Sistema de Análise Exploratória de Dados deve
ter, fizemos uma pequena análise de alguns softwares estatísticos existentes (MINITAB,
INSTAT e SPSS), procurando por funcionalidades que se adeqüem a proposta do nosso
projeto. Uma observação importante é que entre esses softwares analisados apenas o INSTAT
é software livre, sendo os demais softwares comerciais. Com base no estudo realisado
definimos os requisitos do nosso sistema, que estão listados na seção 4.2. Ressaltamos que o
software que será desenvolvido não tem a pretenção de concorrer com esses softwares
analisados, ao contrário, tem a pretenção de ser um software simples que atenda as
necessidades de estudantes iniciantes no aprendizado de estatística.
O software desenvolvido consite em uma aplicação desktop, desenvolvida com a
tecnologia Java, e deverá ser distribuido sob os termos da GNU Lesser General Public
Licence (LGPL), que permite uso em aplicações proprietárias. O software poderá ser
disponibilizado nos laboratórios da UFSC, onde os professores poderão utilizá-lo em aulas
práticas. Além disso, os alunos poderão baixar o software de algum repositório e usá-lo nos
seus computadores pessoais para a prática de exercícios passados pelo professor, bem como
para realizar análises estatísticas de seu próprio interesse.
30
4.2 ESPECIFICAÇÃO DOS REQUISITOS
Conforme apresentado nos tópicos anteriores, a finalidade do software é atender as
necessidades de análise de dados dos estudantes de disciplinas de Estatística dos cursos de
graduação da UFSC, e para isso foram levantadas os principais requisitos funcionais e não
funcionais que o software deverá ter.
4.2.1 REQUISITOS FUNCIONAIS
Os dados a serem analizados pelo sistema devem ser fornecidos pelo usuário e serão
tratados de forma indiferente quanto ao fato de os dados serem apenas uma amostra ou serem
dados de toda a população. Para que seja possível fazer a análise de dados do usuário, um dos
primeiros requisitos que o software deve atender é a capacidade de lidar com o arquivo em
que os dados do usuário estão armazenados. Definimos, então, que o software terá a
capacidade de importar dados armazenados em planilhas eletrônicas e, de arquivos texto,
desde que os mesmos estejam dispostos de uma maneira estruturada, como por exemplo,
dados tabulados.
Uma vez que o arquivo é importado, e o usuário tenha feito suas atividades de
análise, o sistema deve permitir que este seja salvo em formato próprio ou exportado, para o
programa de planilhas eletrônicas ou arquivo texto com os dados separado por tabulações. O
sistema deverá ser capaz de manipular os dados, deixando-os em um estado propício para a
análise estatística. Essa capacidade de manipular os dados constitui um requisito do software
e pode ser dividido em várias funcionalidades, tais como alterar tipos de dados das variáveis,
editar atributos das variáveis, etc. Uma lista completa, não só dessas funcionalidades, mas de
todos os requitos do sistema é mostrada na Tabela 4.
Uma das principais tarefas estatísticas que o sistema deverá realizar é a distribuição
de freqüências para uma determinada variável, devendo inclusive ter a capacidade de fazer a
distribuição de freqüências contabilizando as freqüências desta variável, por categorias de
uma outra variável qualquer. A apresentação dos resultados é feita através de tabelas
cruzadas, ou gráficos, tais como gráficos de setores, gráficos de barras, ou histogramas. As
distribuições de freqüência poderão ser apresentas em valores absolutos ou relativos
(percentual).
31
Outro requisito do software, evidentemente, é a capacidade de fazer os cálculos de
medidas descritivas. Basicamente o software deve ser capaz de calcular as seguintes medidas
descritivas: média aritmética, desvio padrão, variância, coeficiente de variação, 1º quartil,
mediana, 3º quartil, percentil, moda, mínimo, máximo, amplitude, nº de valores perdidos, e nº
total de valores. Os resultados serão apresentados em texto .
O sistema deve ter a capacidade de construir diversos tipos de gráficos com a
finalidade de permitir ao usuário uma fácil visualização dos resultados de suas análises. Como
um conjunto mínimo de gráficos que o sistema deve fornecer, definimos os seguintes:
Histograma, Gráficos de Barras, Gráficos de Setores, Gráfico de Séries Temporais, Gráficos
de Linha, Gráficos de freqüência e, Diagramas de Dispersão.
Tabela 4 Requisitos Funcionais
# Requisito
FuncionalFunção
RF-1 Criar novo arquivo.
RF-2 Abrir arquivo existente.
RF-3 Fechar arquivo.
RF-4 Salvar arquivo.
RF-5 Salvar arquivo com outro nome.
RF-6 Importar arquivo de planilha de programa conhecido.
RF-7 Importar arquivo de texto.
RF-8 Exportar arquivo para planilha de programa conhecido.
RF-9 Exportar arquivo para texto.
RF-10 Copiar seleção.
RF-11 Colar valores copiados.
32
RF-12 Limpar seleção.
RF-13 Selecionar tudo.
RF-14 Desfazer/Refazer última ação
RF-15 Encontrar e substituir valores.
RF-16 Criar nova coluna.
RF-17 Duplicar coluna existente.
RF-18 Excluir coluna(s).
RF-19 Editar propriedades de coluna: formato, nome, largura.
RF-20 Criar nova linha.
RF-21 Excluir linha(s).
RF-22 Calcular medidas descritivas: Média aritmética, Desvio padrão, Variância,
Coeficiente de variação, 1º Quartil, Mediana, 3º Quartil, Percentil, Mínimo,
Máximo, Amplitude, Número valores perdidos, Número total valores.
RF-23 Construir tabelas resumo com medidas descritivas por categorias das
variáveis qualitativas ou por classes intervalares das variáveis quantitativas.
RF-24 Calcular distribuição de freqüências
RF-25 Construir tabelas de freqüências cruzadas
RF-26 Exibir gráficos estatísticos: Histograma, Gráficos de Barras, Gráficos de
Setores, Gráficos de Linhas, Diagrama de Dispersão.
RF-27 Exportar os gráficos para arquivos arquivos de imagem
RF-28 Imprimir os gráficos.
33
RF-29 Possibitar a cópia dos resultados das medidas descritivas e distribuições de
freqüência para arquivos texto ou planilha eletrônica.
4.2.2 REQUISITOS NÃO-FUNCIONAIS
Os requisitos não-funcionais não são funcionalidades do software, mas sim atributos
ou características que o sistema deve apresentar e que podem ou não estar relacionados
diretamente às funcionalidades do software. A Tabela 5 relaciona os requisitos não-funcionais
para o Sistema de Análise Exploratória de Dados.
Tabela 5 Requisitos não-funcionais
# Requisito não-
funcionalAtributo Descrição
RNF-1 Metáfora de
interface
Aplicação desktop com janelas de formulários e caixas
de diálogo.
RNF-2 Tempo de resposta Ao realizar alguma tarefa estatística ou de manipulação
de dados, o resultado deve ser exibido dentro de 5
segundos.
RNF-3 Tratamento de erros O sistema deve informar ao usuário de forma clara,
caso ocorra algum erro durante a realização das tarefas.
RNF-4 Correção O sistema deve apresentar resultados corretos, tanto
para resultados de cálculos realizados, quanto para a
apresentação de gráficos.
RNF-5 Simplicidade O software deve ser fácil de utilizar.
RNF-6 Tamanho O software deve ser pequeno (máximo 10 MB), para
34
facilitar a distribuição via download.
RNF-7 Robustez O software deve lidar adequadamente com os tipos de
dados, avisando o usuário quando alguma
incompatibilidade ocorrer.
RNF-8 Compatibilidade Capacidade de trabalhar com diversos tipos de
arquivos. No mínimo arquivos planilhas eletrônicas e
arquivos de texto.
RNF-9 Portabilidade O software deve funcionar em vários sistema
operacionais. Windows, Linux, etc.
4.3 CASOS DE USO DE ALTO NÍVEL
Um caso de uso é um documento narrativo que descreve a seqüência de eventos de
um ator que usa um sistema para completar um processo (Jacobson,1992). Um caso de uso de
alto nível descreve de uma maneira suscinta a interação entre um ator e o sistema, a fim de
realizar uma ou mais funcionalidades descritas nos requisitos funcionais.
Um ator é um usuário externo direto do sistema, podendo ser pessoas, dispositivos ou
outros sistemas (qualquer coisa que interaja diretamente com o sistema). Para o nosso sistema
identificamos apenas um ator, o usuário do software, que utilizará o software para fazer
análises exploratórias de dados.
Tendo feito a análise dos requisitos, identificou-se os seguintes casos de uso para o
Sistema de Análise Exploratória de Dados: gerenciar arquivo, manipular dados, calcular
medidas descritivas, fazer distibuição de freqüências e, construir gráficos.
A princípio não considerávamos a manipulação dos dados como um caso de
utilização do software, mas apenas pré-requisito para os casos de uso de análise exploratória
de dados. No entanto, percebemos que nada impede que o usuário use o software apenas para
manipular os dados, sem fazer qualquer análise estatística nos mesmos, e depois exporte ou
35
copie os dados para outro software. As 6, 7, 8, 9 e 10 mostram os casos de uso de alto nível
identificados para o Sistema de Análise Estatística Básica.
Tabela 6 Caso de uso de alto nível 1
Caso de uso: Gerenciar Arquivos
Atores: Usuário
Visão geral: Um usuário inicia o sistema, e carrega ou abre um arquivo pré-
existente. Opcionalmente o usuário pode importar os dados de uma
planilha eletrônica ou arquivo de texto. Após concluir as alterações
desejadas o usuário fecha o arquivo salvando suas alterações ou
exportando para o planilha eletrônica ou arquivo de texto.
Referências
cruzadas:
Funções: RF-1 a RF-9, RF-30
Tabela 7 Caso de uso de alto nível 2
Caso de uso: Manipular dados
Atores: Usuário
Visão geral: Um usuário manipula os dados executando as várias opções disponíveis
no software, tais como editar as variáveis, editar os valores, etc. Após
concluir as alterações desejadas o usuário salva ou exporta os dados,
para uso em outra aplicação.
Referências
cruzadas:
Funções: RF-1 a RF-22, RF-30
36
Tabela 8 Caso de uso de alto nível 3
Caso de uso: Calcular medidas descritivas
Atores: Usuário
Visão geral: Um usuário escolhe Medidas Descritivas no menu . Na janela exibida
pelo sistema escolhe as variáveis e, as opções de medidas disponíveis e
executa os cálculos, que são apresentados em formato texto. Após
concluir os cálculos desejados o usuário pode copiar os resultados, para
uso em outra aplicação.
Referências
cruzadas:
Funções: RF-1 a RF-9, RF-28, RF-29, RF-34, RF-35
Tabela 9 Caso de uso de alto nível 4
Caso de uso: Fazer distribuição de freqüências
Atores: Usuário
Visão geral: Um usuário escolhe Distribuição de Freqüências no menu. Na janela
exibida pelo sistema escolhe a variável para fazer a distribuição de
freqüência. Após concluir as distribuições de freqüências o usuário
imprime ou exporta os resultados, para uso em outra aplicação.
Referências
cruzadas:
Funções: RF-1 a RF-9, RF-30, RF-31, RF-34, RF-35
Tabela 10 Caso de uso de alto nível 5
Caso de uso: Construir Gráficos
Atores: Usuário
37
Visão geral: Um usuário escolhe Gráficos no menu. Na janela exibida pelo sistema
escolhe as variáveis de acordo com o tipo de gráfico. Após construir o
gráfico o usuário imprime ou exporta o gráfico para um arquivo de
imagem, para uso em outra aplicação.
Referências
cruzadas:
Funções: RF-1 a RF-9, RF-32 a RF-35
Neste capítulo definimos o sistema dando uma visão geral dos requisitos e dos casos
de uso do sistema que servem como ponto de partida para a etapa de análise onde são
construídos modelos mais detalhados do domínio do problema, que por sua vez servem como
ponto de partida para o projeto. A Figura 6 mostra o diagrama UML dos casos de uso
definidos para o sistema.
Figura 6 Diagrama de casos de uso do Sistema
38
5 CICLO DE DESENVOLVIMENTO 1
5.1 ANÁLISE
Na etapa anterior do projeto definimos os requisitos e os casos de uso em um alto
nível, de abstração. Ou seja, definimos o que o sistema deve fazer. Agora começamos o
desenvolvimento propriamente dito, através de várias iterações, onde a cada ciclo de
desenvolvimento passamos pelas etapas de análise, projeto e implementação, tendo como
resultado, de cada iteração, uma versão do software funcionando.
Verificamos as dependências entre os casos de uso levantados, e distribuímos os
casos de uso em cinco ciclos de desenvolvimento, conforme está descrito na tabela 11 a
seguir:
Tabela 11 Escalonamento dos casos de uso
Ciclo/Iteração Casos de Uso Prazo
2 Gerenciar Arquivos 31 de Dezembro de 2007
3 Manipular Dados 31 de Janeiro de 2008
4 Fazer Distribuição de Freqüências 28 de Fevereiro de 2008
5 Calcular Medidas Descritivas 31 de Março de 2008
6 Construir Gráficos 30 de Abril de 2008
Nesta primeira etapa de análise fizemos a abstração dos conceitos mais relevantes do
domínio do problema e deixamos os detalhes para as etapas de projeto e implementação.
A Figura 7 ilustra o digrama de classes com os principais conceitos do domínio do
problema e, na seqüência, damos uma breve descrição de cada classe do diagrama.
39
Figura 7 Modelo Conceitual 1
A classe Dados representa uma tabela de dados que o usuário está analisando. Uma
tabela de dados contém um conjunto de Variáveis, sendo que cada coluna da tabela representa
uma variável. Cada variável, por sua vez, possui um conjunto de valores os quais são
representados no modelo pela classe Valor. Cada linha, nesta tabela representa uma
observção, que em Estatística também é chamada de “elemento”. Ou seja, em cada linha estão
armazenados os valores das respectivas variáveis, para cada elemento em estudo.
Uma variável, conforme foi apresentado na seção 2.2, sobre os tipos de variáveis,
pode ser classificada em dois grupos: variável quantitativa e variável qualitativa ou categórica
(Barbetta, 2002). Esta classificação está representada no diagrama de classes acima pelas
setas com ponta fechada que ligam as classes VariavelQualitativa e VariavelQuantitativa à
classe Variavel. Os valores das variáveis estão representados no digrama pela classe Valor,
que está associada à classe Variável. As variáveis qualitativas possuem valores que
40
representam uma qualidade ou categoria e este conceito foi representado no diagrama através
da classe Categoria que está associada à classe VariavelQualitativa.
É importante dizer que em Estatística as variáveis qualitativas podem ainda ser
ordinais, casos em que as categorias obedecem a uma certa ordem, ou nominais, casos em que
as categorias não obedecem nenhuma ordem, e que as variáveis quantitativas podem ser
divididas em discretas (geralmente números inteiros) e contínuas(números dentro de um
intervalo de números reais). Estes conceitos não estão representados no modelo acima porque
no atual ciclo de desenvolvimento estes conceitos parecem não influenciar a implementação
do software, de modo que preferiu-se simplificar o modelo conceitual atual.
No caso das variáveis qualitativas, a análise exploratória desse tipo de variável
envolve basicamente a distribuição de freqüências, caso em que a diferenciação entre
variáveis qualitativas ordinais e nominais, não influenciará na implementação do software.
Da mesma forma a diferenciação entre as variáveis quantitativas discreta e contínua, pois
embora a análise das variáveis quantitativas envolva o cálculo de medidas descritivas , tais
como média, desvio padrão, etc., além da distribuição de freqüências, os resultados
invariavelmente serão números reais, ou seja, para se fazer os cálculos tanto das variáveis
quantitativas contínuas quanto das discretas serão tratadas como números reais, não havendo
diferença na implementação do software.
Porém ressalva-se que, como se trata de um desenvolvimento iterativo e incremental,
caso seja necessário nas próximas iterações, o modelo conceitual poderá ser alterado
(incrementado).
Desenhamos, também, no diagrama de classes, uma classe denominada Estatistica
que será responsável pelos processos estatísticos do software, tais como realizar os cálculos
de medidas descritivas e fazer a distribuição de freqüências. Por fim, adicionamos no
diagrama a classe Grafico para representar conceitualmente os gráficos estatísticos diversos
que o software será capaz de produzir.
A fase de análise enfatiza a compreenção dos resquisitos, dos conceitos e das
operações do sistema, através da criação de diversos artefatos, tais como Casos de Uso,
Modelo Conceitual, Diagramas de Seqüência, Diagramas de Estado, Diagramas de Atividade,
entre outros.
Nesta primeira iteração, definimos os requisitos do software, identificamos os casos
de uso e, desenhamos um diagrama de classes com o modelo conceitual, onde identificamos
41
os conceitos básicos envolvidos no sistema. No próximo ciclo de análise focaremos a escrita
dos casos de uso expandidos, detalhando a seqüência das interações do usuário com o sistema,
seguindo a ordem definida no escalonamento de casos de uso da Tabela 11, mostrada
anteriormente.
5.2 PROJETO
A análise trata do quê uma aplicação deve fazer e o projeto trata do como deve fazer.
Nesta primeira iteração de projeto definiu-se a arquitetura do sistema e as classes de projeto,
com base nas classes do modelo conceitual do sistema, definidas na etapa de análise.
5.2.1 ARQUITETURA DO SISTEMA
Como falamos no capítulo sobre o Processo Unificado, ele é um processo centrado
em casos de uso e na arquitetura, além de ser iterativo e incremental. Bem, é na etapa de
projeto que definimos a arquitetura do sistema.
E para isso recorreu-se a utilização de padrões de projeto. No contexto do
desenvolvimento de software, os padrões de projeto descrevem uma solução para um
problema que ocorre freqüêntemente durante o desenvolvimento de software, podendo ser
considerado um par problema/solução (Buschmann, 1996). Padrões de projeto podem se
referir à diferentes níveis de abstração no desenvolvimento de sistemas orientados a objetos.
Assim, existem padrões arquiteturais, em que os níveis de abstração são bem altos, padrões de
análise, padrões de código, entre outros.
No corrente projeto decidiu-se aplicar o padrão arquitetural MVC (do inglês Model
View Controller). Os padrões de projeto arquiteturais, como é o caso do MVC, incentivam o
baixo acoplamento entre os subsistemas que compõem o software. O padrão MVC (Modelo,
Visão e Controle) divide as responsabilidades do sistema em três partes:
o modelo, contém todos os dados e a lógica do programa;
a visão, fornece a apresentação visual para o modelo e;
o controle, define o comportamento do sistema enviando a entrada do usuário
para o modelo.
42
Usando o controle, o usuário altera os dados no modelo. O modelo, então, informa à
visão sobre a alteração nos dados. A visão altera sua apresentação visual para refletir as
alterações no modelo (Deitel, 2003).
Uma vantagem fundamental do padrão de arquitetura MVC é que os
desenvolvedores podem modificar cada parte individualmente sem ter que modificar as outras
partes. Por exemplo, os desenvolvedores podem modificar a componente visão do sistema,
que representa a interface com o usuário, sem ter que fazer qualquer alteração nos
componentes, controle ou modelo.
O objetivo da utilização dessa arquitetura, no desenvolvimento do software proposto,
é simplificar o processo de desenvolvimento através da divisão do problema em partes que
têm propósitos diferentes, e da correta atribuição de responsabilidades.
Na seção 5.2.2 fizemos a adequação do diagrama de classes, definido na etapa de
análise, à arquitetura MVC e, explicamos as principais responsbilidades das classes.
5.2.2 CLASSES DE PROJETO
A Figura 8 mostra o diagrama de classes de projeto, que aprimora o diagrama
conceitual, adicionando classes reais (não apenas conceitos) que, na fase de implementação,
deverão ser codificadas em um programa de computador.
Como pode ser visto no diagrama, distribuimos as classes em três pacotes diferentes,
cada um contendo classes de Visão, Controle e Modelo do sistema.
43
Figura 8 Diagrama de classes de projeto 1
Segundo Blaha e Rumbagh (2006), um pacote é um grupo de elementos (classes,
associações, generalizações e pacotes menores) com um tema comum. Um pacote particiona
um modelo, tornando-o mais fácil de entender e gerenciar.
Na Figura 8 temos um pacote maior, com a inscrição Sistema na parte superior, que
representa o Sistema como um todo. Dentro do pacode Sistema temos três pacotes menores
denominados de Visão, Controle e Modelo, contendo, respectivamente, as classes que
representam a interface com o usuário, as classes que controlam o comportamento do sistema
e as classes que contém os dados e a lógica da aplicação.
Um dos objetivos da Análise e Projeto Orientado à Objetos é o reaproveitamento de
código. Buscamos, portanto, utilizar bibliotecas externas de modo a simplificar o
desenvolvimento do software. No caso, para o Sistema de Análise Exploratória de Dados,
encontramos duas bibliotecas Java que nos pouparam muito trabalho.
Delegamos a funcionalidade de importar/exportar arquivos do Excel a biblioteca
JavaExcelAPI. A classe de controle ControleArquivos, será responsável pelo gerenciamento
de arquivos, e fará a interação do Sistema com essa biblioteca externa quando o usuário quiser
44
importar/exportar arquivos do Excel. Além disso, a classe ControleArquivos também será
responsável por abrir, fechar e salvar arquivos do próprio software.
Outra biblioteca Java que será de grande valia para o software, é a biblioteca
JfreeChart a qual, delegamos as funcionalides de criação e exibição de gráficos. A classe
ControleArquivos será responsável por controlar a interação do Sistema com a biblioteca
JfreeChart. Note que a classe Gráfico que aparecia no modelo conceitual de análise foi
retirada do diagrama de classes de projeto, visto que este conceito já é inteiramente modelado
pela biblioteca JfreeChart.
A Estatistica é responsável por fazer os cáculos estatísticos e as distribuições de
freqüências. As demais classes do pacote Modelo são as mesmas definidas na etapa de análise
e representam o modelo de dados da aplicação.
O pacote Visão tem duas classes. A classe VisaoPrincipal que modela a janela
principal do sistema, com a qual o usuário irá interagir para realizar suas atividades de análise.
E a classe VisaoDados que será responsável por exibir os dados ao usuário através de um
tabela, e permitir o usuário manipular os dados.
5.3 IMPLEMENTAÇÃO
Na etapa de implementação, devemos traduzir os artefatos de projeto em uma
linguagem de programação, banco de dados ou hardware específicos.
Buscando alcançar os objetivos de colocar em prática os conhecimentos adquiridos
no curso, e de desenvolver um software simples, pequeno e de código livre, pretende-se
implementar o sistema utilizando a linguagem de programação Java. Primeiro porque é uma
linguagem livre e com uma vasta coleção de bibliotecas livres disponíveis na internet e,
segundo porque é a linguagem de programação ensinada no curso e, portanto a linguagem de
programação que o autor do trabalho tem domínio suficiente para poder desenvolver o
software.
Como ferramenta de desenvolvimento para a implementação do sistema, escolhemos
a IDE (Interface Development Environment) NetBeans que, é uma das mais completas e
populares ferramentas livres, para programação Java.
45
Embora existam plugins para o NetBeans, para modelagem UML, escolhemos o Jude
Community 5.1. O Jude é uma ferramenta mais simples, mas excelente para a modelagem
UML que inclui a funcionalidade de geração de código Java apartir do modelo de classes.
Para encerrar este primeiro ciclo de desenvolvimento, desenvolvemos um protótipo
mínimo que será descrito na seção 5.3.1.
5.3.1 PROTÓTIPO DE INTERFACE COM USUÁRIO
Na fase inicial do presente trabalho, sentimos a necessidade de desenvolver um
protótipo, com os seguintes objetivos. Primeiro compreender melhor os requisitos do sistema
e segundo sentir as difilcudades reais de implementação do sistema.
O protótipo foi desenvolvido em Java, com a utilização do NetBeans e, embora o
NetBeans ofereça ferramentas de desenho de interfaces Java Swing, a manipulação dos dados
da tabela não é tão fácil, exigindo bastante conhecimento do funcionamento dos componentes
Java Swing. A idéia inicial era ancontrar alguma biblioteca Java que já implementasse uma
Spreadsheet(estilo planilha do Excel), maximizando o reaproveitamento de código, mas não
encontramos nada de código livre que se adequasse ao nosso projeto, até o momento da
implementação deste protótipo.
Esse protótipo persite os arquivos simplismente através do uso de serialização de
objetos do Java e importa e exporta arquivos do Excel, através da biblioteca Java
JavaExcelAPI, exibindo os dados em uma Jtable (Uma JTable é um componente gráfico do
Java Swing que implementa a visão de uma tabela).
Possui também um menu Estatística que já permite a geração de alguns gráficos
simples através da utilização da biblioteca JfreeChart.
A seguir as Figuras 9 e Figura 10, mostram alguns PrintScreen da interface desse
protótipo.
46
Figura 9 Tela Principal do Protótipo com um arquivo importado do Excel
A Figura 9 mostra o menu “Arquivo” aberto e uma tabela . A tabela exibe os dados
de um arquivo que foi importado do Excel acionando o item “Importar Arquivo...” do menu
“Arquivo”.
47
Figura 10 Tela com gráfico construído pelo protótipo
A Figura 10 mostra o menu “Gráficos” aberto e um gráfico de setores que foi
produzido quando acionamos o item “Gráfico de Setores” do menu “Gráficos”. Cabe aqui
fazer uma observação sobre o gráfico exibido na Figura 10 acima. Por se tratar de um
protótipo, o gráfico não apresenta a distribuição de freqüência de forma correta, servindo na
verdade apenas para testar o uso da biblioteca JfreeChart.
48
6 CICLO DE DESENVOLVIMENTO 2 A 6
No capítulo anterior, descrevemos os resultados obtidos no primeiro ciclo de
desenvolvimento, no qual definimos um primeiro modelo conceitual, projetamos os elementos
principais da arquitetura do sistema e, implementamos um pequeno protótipo para testar
alguns componentes de software(biblioteca para importar arquivos Excel e de geração de
gráficos), bem como para entender melhor os requisitos do software.
Nos ciclos de desenvolvimento 2 a 6, aos quais foi alocado o desenvolvimento dos
casos de uso: gerenciar arquivos, manipular dados, fazer distribuição de freqüência, calcular
medidas descritivas e construir gráficos, respectivamente, algumas pequenas alterações foram
necessárias no modelo conceitual e na arquitetura do sistema para atender os requisitos do
software. A seguir as seções 6.1, 6.2 e 6.3, etapas de análise, projeto e implementação do
sistema respectivamente, descrevem, a evolução do projeto à medida que cada caso de uso foi
sendo desenvolvido.
6.1 ANÁLISE
Através da análise, feita em cada ciclo de desenvolvimento, o modelo conceitual foi
sendo alterado, passando a ter novas classes (Intervalo, VaraivelContinua, VariavelDiscreta e
DescricaoVariavel), perdendo a classe Gráficos e modificando as relações entre as mesmas.
Nas sub-seções são descritos os casos de uso de forma mais detalhada, onde
apresentamos o novo diagrama de classes com a visão conceitual do sistema, e as alterações
são relatadas e justificadas.
6.1.1 CASO DE USO GERENCIAR ARQUIVOS
Este caso de uso envolve a realização de atividades de abrir, fechar e salvar arquivos,
comumente encontradas na maioria dos softwares que lidam com algum tipo de arquivo. O
usuário aciona uma dessas opções no menu arquivo e como resposta o sistema exibe uma
49
caixa de dialogo típica para o usuário escolher o arquivo a ser aberto ou salvo em algum local
escolhido pelo usuário.
Muitos softwares possibilitam a abertura para edição de múltiplos arquivos ao
mesmo tempo, cada um em uma janela interna à janela principal da aplicação. No caso do
Sistema de Análise Exploratória de Dados, esta funcionalidade não será implementada, para
simplificar o desenvolvimento. Desse modo o software permite a abertura e edição de apenas
um arquivo por vez, sendo necessário fechar o arquivo em edição antes da abertura de um
outro.
Além dessas atividades básicas, esse caso de uso também envolve as atividades de
importar e exportar arquivos do Excel e arquivos de texto. No caso da importação de arquivos
do Excel, o programa deve apresentar a típica caixa de diálogo para a localização e abertura
do arquivo. Na seqüência, é necessário que o programa apresente outra caixa de diálogo, na
qual o usuário deve informar em qual planilha, estão os dados desejados. Isso é necessário
porque o arquivo Excel a ser importado pode ter várias planilhas e o software ora
desenvolvido terá a capacidade de manipular apenas uma planilha por vez. Após escolher a
planilha, deve ser informado também o intervalo de linhas e colunas em que os dados se
encontram, visto que os dados desejados podem estar em qualquer parte da planilha.
Geralmente os dados, armazenados em tabelas, contém na primeira linha o nome das
colunas ou variáveis, mas pode haver casos em que isso não ocorra. Então uma outra
informação importante, antes do software importar o arquivo, é se os nomes das variáveis
estão ou não localizados na primeira linha da tabela a ser importada. Isso também é válido no
caso da importação dos arquivos de texto.
O caso de uso gerenciar arquivo, está mais diretamente ligado às etapas de projeto e
implementação e, portanto não afetou o modelo conceitual proposto no capítulo anterior.
6.1.2 CASO DE USO MANIPULAR DADOS
Este caso de uso é dividido em várias atividades, tais como: copiar, colar, limpar,
selecionar tudo, desfazer última ação, incluir/excluir linhas e variáveis, etc. Assim como no
caso de uso gerenciar arquivos, a interação entre o usuário e o software para a realização
dessas atividades é análoga aos demais softwares existentes que seguem o padrão Windows.
Ou seja, as formas de interação são bastante similares. Como no Windows, o software
50
oferecerá várias formas de acesso aos comandos, através de barras de ferramentas, menus,
comandos de teclado, etc. Por exemplo, o comando “copiar”, no Sistema de Análise
Exploratória de Dados, pode ser acessado através de um item no menu, através de um ícone
na barra de ferramentas e através do comando de teclado “Ctrl c”. Da mesma forma para
excluir uma linha da tabela, primeiramente seleciona-se a linha a ser excluída e em seguida
executa-se o comando a partir do menu ou da barra de ferramentas, e assim sucessivamente
para as demais atividades listadas no início do parágrafo.
As colunas da tabela de dados no Sistema de Análise Exploratória de Dados são
conceitualmente diferentes das colunas em uma tabela do Excel ou de outro programa de
planilhas eletrônicas. No nosso caso as colunas são variáveis estatísticas, e são tratadas como
tal pelo software. Ou seja, devem ter obrigatoriamente um nome que às identifica e são de um
tipo pré-definido, ou seja, variáveis qualitativas ou quantitativas. Isto resulta em um
tratamento diferenciado dos eventos que manipulam colunas. Por exemplo, para incluir uma
nova variável o software ao invés de simplesmente incluir uma nova coluna em branco na
tabela, precisa primeiro apresentar uma caixa de diálogo solicitando informações sobre a nova
variável a ser criada. Nesta caixa de diálogo o usuário deve informar primeiramente, o nome e
o tipo da variável. No caso das variáveis qualitativas, o usuário pode opcionalmente, informar
o conjunto de categorias da variável. Por exemplo, se desejarmos criar uma variável
qualitativa denominada “Sexo”, pode-se incluir as categorias, “Masculino” e “Feminino”,
com códigos 1 e 2 respectivamente para representar as categorias da variável. E no caso das
variáveis quantitativas, o usuário deve informar número de casas decimais default e a unidade
de medida da variável, que definirão a forma de apresentação dos valores das variáveis
quantitativas.
Uma vez criadas as variáveis, o software deve oferecer também a possibilidade de
editar essas informações das variáveis através de uma caixa de diálogo, incluindo alterar o
tipo da variável, o que é bastante útil, quando na importação de arquivos as variáveis não
sejam importadas com o tipo correto.
Nesta etapa de análise, tivemos que fazer algumas alterações no modelo conceitual
(ver Figura 11 abaixo). Especificamente incluíram-se os conceitos de variável quantitativa
discreta e variável quantitativa. Essas novas classes foram incluídas porque quando da
implementação do protótipo, no primeiro ciclo de desenvolvimento, percebemos a
necessidade desta diferenciação, pois embora os cálculos e resultados sejam feitos com
valores reais, a apresentação dos valores inteiros na tabela de dados não deveriam apresentar
51
casas decimais. Ou seja, exige uma forma diferenciada de tratamento quando da apresentação
de valores discretos e contínuos na tela da aplicação.
Figura 11 Modelo Conceitual 2
6.1.3 CASO DE USO FAZER DISTRIBUIÇÃO DE FREQÜÊNCIAS
O caso de uso fazer distribuição de freqüências foi o primeiro caso de uso que
efetivamente faz análise exploratória de dados, e é o responsável por mais alguns acréscimos
no modelo conceitual, através da inclusão da classe DescricaoVariavel e da classe Intervalo.
Também foi incluída a associação da classe Estatística, à classe Variável (ver Figura 11
acima).
A classe DescricaoVariavel representa conceitualmente uma descrição da variável, a
qual para o caso de uso que estamos tratando representará uma distribuição de freqüência. Isto
é, representará uma tabela com os resultados das contagens dos elementos associados a cada
52
categoria de uma variável qualitativa, ou no caso das variáveis quantitativas, os resultados das
contagens das repetições dos valores distintos da variável quantitativa em análise.
As variáveis quantitativas discretas podem conter uma variedade muito grande de
valores distintos, e as variáveis quantitativas contínuas os valores dificilmente se repetem, o
que pode dificultar a análise dos dados pela técnica de distribuição de freqüência. Este
problema é solucionado grupando o conjunto de observações em intervalos preestabelecidos
mutuamente exclusivos, tais que quando reunidos abrangem todo o conjunto de dados
(Barbetta, 2002). Desta forma, a distribuição de freqüência é feita contando-se os elementos
que pertencem a cada intervalo. Isso justifica a inclusão da classe Intervalo no modelo
conceitual, associada à classe VariavelQuantitativa.
Quanto às interações entre o usuário e o software, para fazer a distribuição de
freqüência, o usuário escolhe no menu fazer distribuição de freqüências. Como resposta o
software apresenta uma caixa de diálogo na qual o usuário escolhe a variável. O software faz
então a distribuição de freqüência e apresenta os resultados em uma tabela no formato de
texto, contendo na última linha os totais. O software apresenta também a freqüência relativa
(percentual) como default. Caso o usuário não queira apresentar a freqüência relativa, deve
então, desmarcar esta opção na caixa de diálogo, antes de clicar em Ok.
Para as variáveis qualitativas o software oferece a opção de fazer a distribuição de
freqüência por categorias de outra variável qualitativa. Para isso, na mesma caixa de diálogo,
o usuário deve escolher também a variável pela qual a distribuição de freqüência será
contabilizada. Se a variável for quantitativa, o usuário poderá informar o número de intervalos
em que os valores serão grupados, caso queira fazer a distribuição de freqüência grupando os
resultados em intervalos.
6.1.4 CASO DE USO CALCULAR MEDIDAS DESCRITIVAS
O caso de uso calcular medidas descritivas não causou nenhuma alteração no modelo
conceitual, pois as alterações realizadas durante a análise do caso de uso fazer distribuição de
freqüência já englobaram as necessidades do caso de uso calcular medidas descritivas. As
medidas descritivas também são representadas pela classe DescricaoVariavel, visto que os
resultados dos cálculos, também podem ser representados por uma tabela, só que, neste caso,
53
cada linha da tabela terá o nome da respectiva medida (media, desvio padrão, etc.) e o valor
calculado.
Para calcular as medidas descritivas o usuário escolhe no menu a opção calcular
medidas descritivas. Como resposta o software exibe uma caixa de diálogo na qual o usuário
informa a variável a ser analisada, informa quais medidas deseja calcular e clica em Ok. O
software então faz os cálculos solicitados e apresenta o resultado em uma tabela no formato
de texto, assim como no caso de uso fazer distribuição de freqüência.
Opcionalmente o software poderá calcular as medidas descritivas grupando os
resultados por categoria de alguma variável qualitativa ou por valores distintos de uma
variável discreta. Neste caso, o usuário deve marcar esta opção escolhendo também a
variável, pela qual os resultados serão grupados.
6.1.5 CASO DE USO CONSTRUIR GRÁFICOS
Os gráficos são uma forma alternativa de apresentação de distribuição de freqüência,
e fornecem uma visualisação mais sugestivas do que as tabelas (Barbetta, 2002). O Sistema de
Análise Exploratória de Dados oferecerá basicamente os seguintes tipos de gráficos conforme
descrito anteriormento no levantamento de requistos do software: gráfico de setores, gráfico
de barras ou de colunas, gráfico de linhas, histograma e diagrama de dispersão.
Os gráficos de setores e de barras ou colunas são usualmente utilizados para
apresentar distribuições de freqüências de variáveis qualitativas, enquanto que os gráficos de
linhas e os histogramas são usualmente utilizados para apresentar as distribuições de
freqüências das variáveis quantitativas. O diagrama de dispersão é oferecido opcionalmente
no software, somente para visualisar graficamente alguma possível correlação entre variaveis
quantitativas.
Para utilizar essa função do sistema o usuário acessa o menú escolhendo o tipo de
gráfico desejado. Como resposta o software apresenta ao usuário uma caixa de diálogo
semelhante à caixa de diálogo utilizada para fazer a distribuição de freqüência, na qual o
usuário escolhe a variável de acordo com tipo de gráfico, marcando também as opções de
freqüência relativa, opções de grupamentos por categorias de variáveis qualitativas ou por
intervalos de variáveis quantitativas e, clicka Ok. O sosftware então procede da mesma forma
54
que para o caso de uso fazer distribuição de freqüência, porém desta vez, os resultados são
apresentados em forma de gráficos.
O caso de uso construir gráficos, assim como o caso de uso fazer distribuição de
freqüência, também não causou alterações no modelo conceitual.
6.2 PROJETO
Da mesma forma que na etapa de análise, o projeto do sistema evoluiu durante o
desenvolvimento dos casos de uso. A Figura 12 mostra o novo diagrama de classes para a
componente Visão do software. A classe central do diagrama é a classe VisaoPrincipal, que
representa a janela principal do software que é exibida assim que o software é executado. A
partir desta janela principal o usuário acessa as demais janelas do sistema para realizar suas
atividades de análise exploratória de dados.
Figura 12 Classes da interface gráfica do software
55
No atual diagrama de classes da visão do sistema foi excluída a classe VisaoDados
existente na primeira versão do projeto de classes. A classe VisaoDados não fazia mais
sentido para o projeto porque, por decisão anterior, o software não implementará o conceito
de múltiplos arquivos abertos simultaneamente em janelas separadas. Ou seja, a aplicação
exibirá apenas um arquivo de dados por vez, de modo que os dados serão exibidos na região
central da janela principal do software. As demais classes em torno da classe VisaoPrincipal,
representam as caixas de diálogo, pelas quais o usuário interage com o software. Estas classes
foram todas incluídas durante o desenvolvimento de cada caso de uso da aplicação.
Primeiramente, foi incluída a classe ImportarExcel, no ciclo de desenvolvimento 2,
no qual foi desenvolvido o caso de uso gerenciar arquivos. No ciclo de desenvolvimento 3,
que tratou do caso de uso manipular dados, foram incluídas as classes DialogoNovaVariavel,
DialogoEditarVariavel e DialogoMudarTipoVariavel. No ciclo 4, quando foi desenvolvido o
caso de uso fazer distribuição de freqüência, foram incluídas as classes DialogoFreqQuali e
DialogoFreqQuanti. Depois, no ciclo 5, em que foi desenvolvido o caso de uso calcular
medidas descritivas, foram incluídas a classe DialogoDescricaoVariavel e a classe
DialogoDescricaoPorCategoria.
Note que projetamos uma caixa de diálogo para fazer a distribuição de freqüência
para cada tipo de variável(qualitativa, e quantitativa). Da mesma forma, projetamos uma caixa
de diálogo para fazer o cálculo de medidas descritivas de uma única variável, separada da
caixa de dialogo para medidas descritivas grupadas por categoria de outra variável. Isto foi
feito para simplificar a lógica de implementação das caixas de diálogo, e ao mesmo tempo,
para diminuir o acoplamento entre a visão e o modelo da aplicação.
Por último, no ciclo 6, que tratou do desenvolvimento do caso de uso construir
gráficos foram incluídas as classes DialogoGraficoSetores, DialogoGraficoBarras
DialogoGraficoColunas, DialogoGraficoLinhas, DialogoGraficoHistograma e por fim a classe
DialogoDiagramaDispersao.
O controle da aplicação também teve seu projeto de classes bastante modificado,
conforme pode ser visualizado na Figura 13 abaixo. A classe ControleDados foi substituída
pela classe ControleAplicacao que, como o próprio nome já diz, é responsável pelo controle
geral da aplicação e atua como intermediária entre as classes da interface gráfica e as classes
do modelo do sistema. Esta classe conta com classes auxiliares de controle as quais, delega o
controle de diversas funções do software. Para a classe ControleArquivo, delega a função de
56
abrir, fechar e salvar arquivos. A classe ControleImportarExportarArquivo é responsável por
importar e exportar, tanto arquivos de texto quanto arquivos do Excel e, portanto é através
desta classe que o sistema vai interagir com a biblioteca JavaExcelAPI. E a classe
FabricaGraficos é responsável por construir os gráficos da aplicação interagindo com a
biblioteca Java JFreeChart.
Figura 13 Classes de Controle
6.2.1 PADRÕES DE PROJETO UTILIZADOS
A arquitetura central do software manteve-se sem alterações, ou seja, manteve-se a
arquitetura MVC (Visão, Controle, Modelo). Além do padrão arquitetural MVC, adotado
desde o primeiro ciclo de desenvolvimento, outros padrões de projeto foram utilizados para
garantir a qualidade do software através da aplicação de soluções já testadas e conhecidas.
Um outro padrão de projeto utilizado no projeto é o padrão denominado Singleton.
Este padrão é útil quando o sistema possue classes que não devam ou não precisem ter mais
de um objeto instanciado, isto é, depois que o programa instancia aquele objeto, o sistema não
deve mais ser autorizado a instanciar mais objetos daquela classe. No caso do nosso projeto,
todas as classes de interface gráfica, ou seja, todas as caixas de diálogo que o sistema utiliza,
só precisam ser intanciadas uma única vez. O mesmo ocorre com a classe Estatística do
57
modelo conceitual do sistema. Esta classe é responsável por fazer os cálculos das medidas
descritivas e da distribuição de freqüências, e uma vez instanciada fica disponível durante
todo tempo em que a aplicação estiver rodando sem precisar ser instanciada novamente. Na
seção a seguir são comentados padrões de projeto implementados pelo pacote Java Swing.
6.3 IMPLEMENTAÇÃO
O Sistema de Análise Exploratória de Dados foi desenvolvido utilizando a
plataforma Java 5, especificamente o pacote Java Swing. O desenho das janelas da aplicação
foi facilitado pelo uso da ferramenta de desenvolvimento NetBeans versão 6, que tem um
ótimo editor de interfaces gráficas para java. Nesta etapa do desenvolvimento do sistema,
definimos um nome para o software, quando da criação do projeto no NetBeans. Escolheu-se
o nome DescriDados, e a partir deste ponto usaremos este nome para se referir ao Sistema de
Análise Exploratória de Dados. A Figura 14 abaixo, exibe a janela principal do sistema.
Figura 14 Tela principal do Sistema
6.3.1 IMPLEMENTAÇÃO DO CASO DE USO GERENCIAR ARQUIVOS
Os arquivos do DescriDados são controlados pela classe ControleArquivo. Esta
classe usa os recursos de serialização de objetos do java para fazer a persistência dos dados
58
em um formato de arquivo próprio. Ela possui métodos para salvar, salvar como, abrir e
fechar arquivos. Os arquivos são salvos com a extenção .ddat. Além dos arquivos próprios o
DescriDados pode importar arquivos de texto e arquivos do Excel através da classe
ControleImportaExportaArquivo.
Para importar e exportar arquivos de texto a classe utiliza os recursos da linguagem
java, especificamente as classes FileReader e FileWriter do pacote java.io do java. Os
arquivos de texto podem ser importados desde que os mesmos estejam organizados de forma
tabular, onde cada linha representa um elemento observado e as colunas (variáveis) são
separadas por tabulações. Para importar os arquivos do Excel o DescriDados utiliza a
biblioteca JavaExcelAPI. Esta biblioteca possui diversas funcionalidades para trabalhar com
arquivos Excel. A classe ControleImportaExportaArquivo utiliza esta biblioteca para fazer a
leitura e a criação de arquivos Excel. No processo de importação de arquivos, a classe
ControleImportaExportaArquivo cria um objeto da classe Dados e passa esse objeto para a
classe ControleArquivo, que a partir de então será a responsável por serializar e salvar os
dados. As Figuras 15 e 16 mostram a seqüência de interação do usuário com software para o
caso de importar um arquivo do Excel.
59
Figura 15 Caixa de diálogo padrão para escolha de arquivo
Figura 16 Caixa de diálogo para importar arquivos do Excel
60
6.3.2 IMPLEMENTAÇÃO DO CASO DE USO MANIPULAR DADOS
Na implentação deste caso de uso o utilizou-se a biblioteca java denominada
Jspreadsheet como componete de apresentação e edição dos dados. Este componente consiste
de uma tabela no estilo spreadsheet(planilha eletrônica). Além de apresentar a tabela este
componente já veio com algumas funcionalidades que atederam de pronto alguns dos
requisitos de manipulação de dados tais como copiar, colar, excluir, desfazer, refazer, inserir e
excluir linhas e colunas. Como a Jspreadsheet é um componete de software livre que permite
a alteração de seu código fonte, alterou-se o código deste componete de forma todas as
alterações feitas nos dados da tabela fossem refletidas na classe Dados do DescriDados. A
implementação da classe Dados é responsável pelo armazenamento dos dados da aplicação
através da utilização de estruturas de dados, nas quais são armazenadas objetos das classes
VariávelQualitativa, VariavelQuantitativaDiscreta e VariavelQuantitativaContinua. A Figura
17 mostra a tabela com dados importados do Excel. As açoes de manipulação de dados podem
ser acessados através do menu editar ou através da barra de ferramentas localizada entre o
menu principal e a tabela de dados.
61
Figura 17 Tela de apresentação de dados
Como descrito anteriormente na etapa de análise, o DescriDados trata as colunas da
tabela como variáveis, o que acarreta um tratamento deferenciado das tarefas de insersão e
exclusão de colunas da tabela de dados.
Quando importando dados, as variáveis podem não ser importadas com o tipo correto
para a análise exploratória, por isso implementamos no DescriDados a caixa de diálogo
mostarda pela Figura 18 abaixo.
62
Figura 18 Caixa de diálogo para mudar tipo da variável
A Figura 19 abaixo mostra a caixa de diálogo para edição dos atributos das variáveis.
Figura 19 Caixa de diálogo para editar variáveis
63
De acordo com a variável selecionada, se for uma variável qualitativa ou quantitativa
os campos da caixa de diálogo ficam habilitados ou desabilitados.
6.3.3 IMPLEMENTAÇÃO DO CASO DE USO DISTRIBUIÇÃO DE FREQÜÊNCIA
A cálculo da disdtribuião de freqüência para variáveis qualitativas foi implementado
pela classe VariavelQualitativa. Esta classe implementa um método para calcular a
distribuição de freqüência da variável qualitativa selecionada, e implementa outro método
para calcular a distribuição de freqüência por categoria de outra variável. A classe
ControleAplicacao repassa para a classe VariavelQualitativa os parâmetros informados pelo
usuário através da caixa de diálogo exibida na Figura 20, abaixo. De acordo com os
parâmetros recebidos, a classe VariavelQualitativa calcula a distribuição de freqüência e
devolvepara o controle da aplicaçao uma instância da classe DescricaoVariavel que contém o
resultado do cálculo.
Figura 20 Caixa de diálogo distribuição de freqüência de variáveis qualitativas
64
Então a classe ControleAplicacao, utiliza o objeto retornado para fazer a
apresentação dos resultados através de uma tabela de freqüências no formato de texto
tabulado, conforme pode ser visto na Figura 21, abaixo.
Figura 21 Apresentação de tabela de distribuição freqüência em texto tabulado
Para o cálculo da distribuição de freqüência de variáveis quantitativas, utiliza-se a
classe VariavelQuantitativa. O procedimento é o mesmo, exceto que no caso das variáveis
quantativas os resusltados podem ser grupados em intervalos em vez de categorias de outra
variável. A seguir as Figura 22 mostra a caixa de diálogo para o usuário solicitar o cáculo de
dsitribuição de freqüência para variáveis quantitativas, e a Figura 23 exibe um exemplo de
tabela de freqüência de variáveis quantitativas.
65
Figura 22 Caixa de diálogo distribuição de freqüência variável quantitativa
Figura 23 Apresentação de tabela de distribuição freqüência em texto tabulado
66
6.3.4 IMPLEMENTAÇÃO DO CASO DE USO calcular medidas descritivas
A seqüêcia de operações implementada para o cálculo de medidas descritivas é
similar a seqüência implementada para o cálculo das distribuições de freqüências. Primeiro o
usuário utiliza a caixa de diálogo mostrada na Figura 24 à seguir, para escolher as variáveis e
marcar os cálculos que deseja fazer. Então o controle da aplicação repassa os parâmetros para
a classe VariavelQuantitativa, que de acordo com os parâmetros recebidos, utiliza a classe
Estatistica para fazer os cálculos solicitados. A classe VariavelQuantitativa armazena os
resultados dos cálculos em um objeto da classe DescricaoVariavel, e devolve este objeto para
o controle da aplicação. Por fim o controle da aplicação exibe os resultados para o usuário,
conforme mostrado na Figura 25. Na seqüência, a Figura 26 mostra a caixa de diálogo para o
cálculo de medidas descritivas por categoria de outra variável e a Figura 27 mostra o resultado
obtido.
Figura 24 Caixa de diálogo para cálculo de medidas descritivas
67
Figura 25 Apresentação de resultados de cálculo de medidas descritivas
Figura 26 Caixa de diálogo descrição de variáveis grupando por categoria
68
Figura 27 Apresentação de medidas descritivas grupadas por categoria
6.3.5 IMPLEMENTAÇÃO DO CASO DE USO CONSTRUIR GRÁFICOS
O ususário pode apresentar os resultados da distribuição de freqüência em gráficos.
Os procedimentos para a geração de gráficos de distribuição de freqüência são os mesmos,
descritos acima na seção sobre a implementação do cálculo da distribuição de freqüência, para
apresentação de tabelas de freqüência. Porém, quando o controle da aplicação recebe o objeto
da classe DescricaoVariavel, ele repassa esse objeto para a classe FabricaGrafico, que cria o
gráfico através da utilização da biblioteca JfreeChart, e apresenta o gráfico em uma nova
janela. As Figuras 28 e 29 mostram exemplos de gráficos utilizados para apresentar
distribuição de freqüência de variáveis qualitativas e quantitativas, respectivamente.
69
Figura 28 Apresentação gráfica de distribuição de freqüência de variável qualitativa
Figura 29 Apresentação gráfica de distribuição de freqüência de variável quantitativa
70
Opcionalmente, o DescriDados pode construir diagramas de dispersão, para
apresentar graficamente, a correlação entre duas variáveis quantitativas. A Figura 30, mostra a
caixa de diálogo utilizada para solicitar o diagrama de dispersão, e a Figura 31, exibe uma
exemplo de diagrama de dispersão criado pelo Descridados.
Figura 30 Caixa de diálogo para criar diagrama de dispersão
Figura 31 Diagrama de dispersão
71
7 CONSIDERAÇÕES FINAIS
O presente trabalho relatou o desenvolvimento de um software para análise
exploratória de dados, com a finalidade de ser utilizado por estudantes de estatística básica.
Buscou-se, durante o desenvolvimento do software, colocar em prática a teoria estudada
durante o curso de Bacharel em Sistemas de Informação, o que envolveu principalmente o
conteúdo de disciplinas como estatística básica, engenharia de software, engenharia de
usabilidade, e programação.
O trabalho pode ser dividido em duas partes. Uma parte teórica que abrangeu o
estudo das técnicas de análise exploratória de dados, que constitui a finalidade do software, e
o estudo de uma metodologia de desenvolvimento, para garantir que os objetivos propostos
para o software fossem alcançados. A segunda parte consiste no relato do desenvolvimento do
software propriamente dito.
7.1 OBJETIVOS ATINGIDOS
O software resultante do desenvolvimento do presente trabalho, atingiu o principal
objetivo proposto, que é fazer a análise exploratória de dados, através do emprego de técnicas,
tais como a distribuição de freqüência e o cálculo de medidas descritivas.. O software
desenvolvido pode ser caracterizado pela capacidade de apresentar tabelas em formato texto,
para apresentar resultados de distribuições de freqüências e apresentar resultados de cálculos
de estatística descritiva. Têm também, a capacidade de apresentar gráficos que podem ser
impressos ou exportados para arquivos de imagem no formato PNG. O software apresenta
uma interface fácil de usar, com a qual o usuário interage através de menus e caixas de
diálogo. Como características não-funcionais o DescriDados foi desenvolvido em Java e
portanto, pode rodar na plataforma Windows ou Linux. O software ocupa apenas cerca de
2,5MB em arquivo compactado o que facilida a sua distribuição via Internet. Outro ponto
forte do software é que o mesmo faz a persistência dos dados através dos recursos se
serialização de objetos do Java, não requerendo por parte do usuário qualquer instalação
adicional de banco de dados. Além disso o software permite exportar os dados para planilhas
do Microsoft Excel e para arquivos de texto em formato tabular.
72
Um aspecto que poderia ser melhorado no DescriDados, é a sua capacidade de
edição dos dados. No decorrer da implentação da planilha de dados, se desejava obter um
comportamento o mais semelhante possível ao das planilhas eletrônicas dos softwares
conhecidos. Porém isso estava tomando muito tempo, então para não perder o foco, isso foi
colocado em segundo plano, e partiu-se para a implementação dos demais casos de uso.
O uso de uma metodologia de desenvolvimento de software foi fundamental durante
o desenvolvimento do DescriDados. Embora seja um software que pode ser considerado
pequeno por desenvolvedores experientes, o uso da metologia adotada para o projeto
contribuiu enormemente para o sucesso do projeto, através da organização do trabalho em
etapas de análise, projeto e implementação. Na etapa de análise definiu-se “o que” o software
deveria fazer, definindo desta forma o escopo do projeto, com o objetivo de não abraçar mais
coisas do que seria possível fazer no tempo disponível para o desenvolvimento do projeto. Na
etapa de projeto definiu-se a arquitetura do sitema, o que nos deu uma visão de como o
software seria desenvolvido e serviu como guia durante a etapa de implementação do
software. Outro ponto importante da metodologia foi o escalonamento dos casos de uso de
acordo com o grau de dependência entre os mesmos.
7.2 TRABALHOS FUTUROS
Como trabalhos futuros vislumbrou-se primeiramente, a possibilidade de incrementar
as capacidades do software, através do acréscimo de novas funcionalidades. Uma delas seria a
capacidade de guardar os resultados das análises de dados feitas no software para uso
posterior. Atualmente isto é possível no DescriDados apenas com os gráficos que, como
mencionado anteriormente podem ser impressos ou exportados para arquivos de imagem
PNG. Outra funcionalidade desejável seria a capacidade de exportar os resultados para o
formato PDF, o que o software atualmente não faz, nem com as tabelas de freqüência e de
medidas descritivas, nem com os gráficos.
Atualmente a tendência de uso do compuador é, cada vez mais, voltada a aplicações
que rodam na Internet, então um trabalho futuro que seria o desenvolvimento de uma interface
web para o DescriDados. Isso é perfeitamente possível de ser realizado, visto que no
desenvolvimento do software buscou-se separar ao máximo as responsabilidades da camada
de apresentação da interface gráfica das demais funcionalidades do software.
73
E como principal trabalho futuro, destacamos o incremento do software de tal forma
que o mesmo passe a abranger capacidades para realização de tarefas de estatística indutiva, o
que daria, de fato, uma grande utilidade ao software.
74
REFERÊNCIAS
BARBETTA, P. A. Estatística Aplicada às Ciências Sociais 5. ed.rev. Florianópolis: Ed. da UFSC, 2002.
BLAHA, M.; RUMBAUGH, J. Modelagem e Projetos Baseados em Objetos com UML 2: 2. ed.rev. Tradução: Daniel Vieira. Rio de Janeiro: Elsevier, 2006.
BUSCHMANN, F. A System of Patterns. Wiley, 1996.
COSTA NETO, P. L. de O. Estatística. São Paulo: Edgard Blücher, 1977.
DEITEL, H. M.; DEITEL, P. J. Java, como programar. 4. ed. Tradução: Carlos Arthur Lang Lisboa. Porto Alegre: Bookman, 2003.
DINIZ, A. Apostila Estatística Básica. Universidade Federal de Minas Gerais, Geoprocessamento 2000.
LARMAN, C. R. Utilizando UML e Padrões: uma introdução à análise e ao projeto orientado a objetos. Tradução Luiz A. Meirelles Salgado. – Porto Alegre, 2000.
LOPES, P.A. Percentis. Disponível em: < http://www.estatistica.eng.br/Percentis.htm >. Acesso em: 16/05/2008.
SILVA, A.; VIDEIRA, C. UML, Metodologias e Ferramentas Case. Edições Centro Atlântico – Portugal/2001.