[DIGITE O TÍTULO DA TESE] - Coordenação de Projetos  · Web viewWord-key: Basic statistics ......

103
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

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

Atenção, 03/01/-1,
Nome da instituição
Atenção, 03/01/-1,
Ano de depósito
Atenção, 03/01/-1,
Local (cidade) da instituição onde deve ser apresentado
Atenção, 03/01/-1,
Nome do autor
Atenção, 03/01/-1,
Nome do curso ou programa
Atenção, 03/01/-1,
Nome do centro

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

Atenção, 03/01/-1,
Local (cidade) da instituição onde deve ser apresentado
Atenção, 03/01/-1,
Nome do orientador e, se houver do co-orientador
Atenção, 03/01/-1,
Grau pretendido. Exemplo: Doutor em Administração Mestre em Ciências da Computação
Atenção, 03/01/-1,
Indicação da natureza acadêmica do trabalho (tese de doutorado, dissertação de mestrado, monografia ou trabalho de conclusão de curso)
Atenção, 03/01/-1,
Nome do autor

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.

Atenção, 03/01/-1,
Abreviatura da instituição a qual o membro pertence
Atenção, 03/01/-1,
Titulação do membro
Atenção, 03/01/-1,
Nome do membro
Atenção, 03/01/-1,
Abreviatura da instituição a qual o membro pertence
Atenção, 03/01/-1,
Titulação do membro
Atenção, 03/01/-1,
Nome do membro
Atenção, 03/01/-1,
Abreviatura da instituição a qual o membro pertence
Atenção, 03/01/-1,
Titulação do membro
Atenção, 03/01/-1,
Nome do Presidente da banca, orientador do trabalho
Atenção, 03/01/-1,
Grau pretendido. Exemplo: Doutor em Administração Mestre em Ciências da Computação
Atenção, 03/01/-1,
Indicação da natureza acadêmica do trabalho (tese de doutorado, dissertação de mestrado, monografia ou trabalho de conclusão de curso)
Atenção, 03/01/-1,
Nome do autor

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.

Atenção, 15/11/07,
Elemento obrigatório com as mesmas características do resumo em língua vernácula é apresentado em folha separada (em inglês Abstract, em espanhol Resumen, em francês Résumé).

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

Atenção, 03/01/-1,
O sumário é elemento obrigatório que conforme a NBR 6027 (2003), consiste na enumeração dos principais divisões, seções e outras partes de um documento, na mesma ordem em que a matéria nele se sucede. Para atualizar o sumário, click com o botão direito do mouse sobre o sumário, selecione a opção atualizar campo no menu rápido selecione atualizar o índice inteiro e click em OK.

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

Atenção, 03/01/-1,
O sumário é elemento obrigatório que conforme a NBR 6027 (2003), consiste na enumeração dos principais divisões, seções e outras partes de um documento, na mesma ordem em que a matéria nele se sucede.

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.

Pedro, 08/05/08,
Wanderlei, veja se não fica melhor inverter, ou seja, o objetivo principal ser a construção do Software. Depois complementar “pôr em prática ...”

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.

75

ANEXO A – CÓDIGO FONTE DO SISTEMA DE ANÁLISE EXPLORATÓRIA DE

DADOS