• Nenhum resultado encontrado

Sistema de Análise Exploratória de Dados

N/A
N/A
Protected

Academic year: 2021

Share "Sistema de Análise Exploratória de Dados"

Copied!
310
0
0

Texto

(1)

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

(2)

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

(3)

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.

(4)

Dedico este trabalho à minha família, em especial à

minha filha Luana, que foi quem mais sentiu a

minha falta durante esta jornada.

(5)

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.

(6)

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,

which 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.

(7)

LISTA DE ILUSTRAÇÕES

Figura 1 Esquema geral de Estatística - Fonte: Costa Neto, 1977. ... 16

Figura 2 Classificação das variáveis e dos dados ... 19

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. ... 21

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. ... 23

Figura 5 Quartil inferior (Q

I

), Mediana (M

d

) e Quartil superior (Q

S

). ... 25

Figura 6 Tipos de Assimetria ... 28

Figura 7 Diagrama de casos de uso do Sistema ... 39

Figura 8 Modelo Conceitual 1 ... 41

Figura 9 Diagrama de classes de projeto 1 ... 45

Figura 10 Tela Principal do Protótipo com um arquivo importado do Excel ... 48

Figura 11 Tela com gráfico construído pelo protótipo ... 49

Figura 12 Modelo Conceitual 2 ... 53

Figura 13 Classes da interface gráfica do software ... 56

Figura 14 Classes de Controle ... 58

Figura 15 Tela principal do Sistema ... 59

Figura 16 Caixa de diálogo padrão para escolha de arquivo ... 60

Figura 17 Caixa de diálogo para importar arquivos do Excel ... 61

Figura 18 Tela de apresentação de dados ... 63

Figura 19 Caixa de diálogo para mudar tipo da variável ... 64

Figura 20 Caixa de diálogo para editar variáveis ... 65

Figura 21 Caixa de diálogo distribuição de freqüência de variáveis qualitativas ... 66

Figura 22 Apresentação de tabela de distribuição freqüência em texto tabulado ... 67

Figura 23 Caixa de diálogo distribuição de freqüência variável quantitativa ... 68

Figura 24 Apresentação de tabela de distribuição freqüência em texto tabulado ... 69

Figura 25 Caixa de diálogo para cálculo de medidas descritivas ... 70

(8)

Figura 27 Caixa de diálogo descrição de variáveis grupando por categoria... 71

Figura 28 Apresentação de medidas descritivas grupadas por categoria ... 72

Figura 29 Apresentação gráfica de distribuição de freqüência de variável qualitativa ... 73

Figura 30 Apresentação gráfica de distribuição de freqüência de variável quantitativa ... 73

Figura 31 Caixa de diálogo para criar diagrama de dispersão ... 74

(9)

SUMÁRIO

1

INTRODUÇÃO ... 13

1.1

OBJETIVOS ... 13

1.1.1

GERAL ... 13

1.1.2

ESPECÍFICOS ... 14

1.2

JUSTIFICATIVA PARA O DESENVOLVIMENTO DO PROJETO ... 14

1.3

ESTRUTURA DO TRABALHO ... 15

2

ANÁLISE EXPLORATÓRIA DE DADOS ... 16

2.1

ARQUIVOS DE DADOS ... 17

2.2

TIPOS DE VARIÁVEIS ... 19

2.3

DISTRIBUIÇÃO DE FREQÜÊNCIA ... 20

2.4

MEDIDAS DESCRITIVAS ... 23

2.4.1

MÉDIA ARITIMÉTICA ... 24

2.4.2

PERCENTIL, MEDIANA E QUARTIL ... 24

2.4.3

MODA ... 26

2.4.4

AMPLITUDE ... 26

2.4.5

VARIÂNCIA E DESVIO PADRÃO ... 26

2.4.6

COEFICIENTE DE VARIAÇÃO ... 27

2.4.7

COEFICIENTE DE ASSIMETRIA ... 27

3

VISÃO GERAL DO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 29

3.1

CARACTERÍSTICAS DO PROCESSO UNIFICADO ... 29

3.2

ETAPAS DO DESENVOLVIMENTO ... 30

(10)

3.4

MODELAGEM DE SISTEMAS ... 31

4

DEFINIÇÃO DO SISTEMA ... 33

4.1

VISÃO GERAL DO SISTEMA ... 33

4.2

ESPECIFICAÇÃO DOS REQUISITOS ... 34

4.2.1

REQUISITOS FUNCIONAIS ... 34

4.2.2

REQUISITOS NÃO-FUNCIONAIS ... 36

4.3

CASOS DE USO DE ALTO NÍVEL ... 37

5

CICLO DE DESENVOLVIMENTO 1 ... 40

5.1

ANÁLISE ... 40

5.2

PROJETO ... 43

5.2.1

ARQUITETURA DO SISTEMA ... 43

5.2.2

CLASSES DE PROJETO ... 44

5.3

IMPLEMENTAÇÃO ... 46

5.3.1

PROTÓTIPO DE INTERFACE COM USUÁRIO ... 47

6

CICLO DE DESENVOLVIMENTO 2 A 6 ... 50

6.1

ANÁLISE ... 50

6.1.1

CASO DE USO GERENCIAR ARQUIVOS ... 50

6.1.2

CASO DE USO MANIPULAR DADOS ... 51

6.1.3

CASO DE USO FAZER DISTRIBUIÇÃO DE FREQÜÊNCIAS ... 53

6.1.4

CASO DE USO CALCULAR MEDIDAS DESCRITIVAS ... 54

6.1.5

CASO DE USO CONSTRUIR GRÁFICOS ... 55

6.2

PROJETO ... 56

6.2.1

PADRÕES DE PROJETO UTILIZADOS ... 58

(11)

6.3.1

IMPLEMENTAÇÃO DO CASO DE USO GERENCIAR ARQUIVOS ... 59

6.3.2

IMPLEMENTAÇÃO DO CASO DE USO MANIPULAR DADOS ... 62

6.3.3

IMPLEMENTAÇÃO DO CASO DE USO DISTRIBUIÇÃO DE FREQÜÊNCIA ... 65

6.3.4

IMPLEMENTAÇÃO DO CASO DE USO CALCULAR MEDIDAS DESCRITIVAS 69

6.3.5

IMPLEMENTAÇÃO DO CASO DE USO CONSTRUIR GRÁFICOS ... 72

7

CONSIDERAÇÕES FINAIS ... 75

7.1

OBJETIVOS ATINGIDOS ... 75

7.2

TRABALHOS FUTUROS ... 76

REFERÊNCIAS ... 78

ANEXO A – ARTIGO SOBRE O TCC ... 79

1. INTRODUÇÃO ... 79

2. ANÁLISE EXPLORATÓRIA DE DADOS COM O SOFTWARE DESCRIDADOS ... 80

2.1. ARQUIVOS DE DADOS ... 80

2.2. TIPOS DE VARIÁVEIS ... 81

2.3. DISTRIBUIÇÃO DE FREQÜÊNCIA ... 83

2.4. MEDIDAS DESCRITIVAS ... 84

3. O PROCESSO DE DESENVOLVIMENTO DO DESCRIDADOS ... 85

3.1. APLICAÇÃO DAS CARACTERÍSTICAS DO PROCESSO UNIFICADO NO

DESENVOLVIMENTO DO DESCRIDADOS ... 85

4. CONCLUSÃO ... 88

REFERÊNCIAS ... 89

ANEXO B – CÓDIGO FONTE DO DESCRIDADOS ... 90

CLASSES DO MODELO ... 90

(12)
(13)

1

INTRODUÇÃO

Vivemos atualmente em um mundo de informação onde o armazenamento e a

recuperação dessa informação são cada vez mais facilitados 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

automatizam 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. Desse modo 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

(14)

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.

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

(15)

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.

1.3 ESTRUTURA DO TRABALHO

O presente trabalho pode ser dividido em duas partes. Uma parte teórica, constituída

pelos capítulos 2 e 3, e o relatório de desenvolvimento do software, do capítulo 4 a 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

desenvolvimento 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 capítulo é

definida uma visão geral do sistema. São listadas 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 desenvolvimento 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.

(16)

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 Dados 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 Probabilidades e Técnicas de Amostragem, conforme Figura

1.

Figura 1 Esquema geral de Estatística - Fonte: Costa Neto, 1977.

Amostragem

Estatística

Descritiva

Cálculo de

Probabilidades

Estatística

Indutiva

(17)

A seguir são mostrados alguns conceitos importantes relacionados à estatística,

focando na Análise Exploratória de Dados, a qual é o tema central abordado no trabalho.

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 os 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).

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

(18)

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 ):

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 observação, como é o caso 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

neste caso os valores 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 às 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.

(19)

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.

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 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 enumerá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 possíveis. Sim (usa programa de alimentação popular), e Não (não

Dados quantitativos

Dados qualitativos

ou categorizados

Variável

Quantitativa

Qualitativa ou

categorizada

(20)

usa o programa). É fácil perceber, que nesta variável não há uma ordem determinada entre as

categorias. Já a variável INSTRUÇÃO, apresenta treis categorias. Nenhum grau de estudo,

primeiro grau e segundo grau. Neste caso, percebe-se certa ordem ou hierarquia, tratando-se,

portanto de uma variável qualitativa ordinal.

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

19 famílias do Saco Grande II, Florianópolis – SC, 1988.

Grau de instrução

Freqüência

Percentagem

Nenhum grau

18

31,9%

Primeiro grau

41

31,9%

Segundo grau

30

36,1%

(21)

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üências 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.

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 variáveis categóricas, desde que a variável seja discreta e a

quantidade de diferentes valores observados seja pequena. Para as variáveis contínuas ou

discretas com grande quantidade de valores distintos, os dados devem ser, primeiramente,

(22)

grupados em classes ou intervalos de modo a facilitar a sua análise. A Tabela 3 exemplifica

uma distribuição de freqüências de uma variável quantitativa contínua grupada em intervalos.

Tabela 3 Distribuição de freqüências da renda do chefe da família em salários mínimos, em

uma 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

(23)

Para as variáveis quantitativas as representações gráficas mais usadas são os

histogramas e os polí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.

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, podem-se 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

(24)

(Costa Neto,1977). Exemplos de medidas de dispersão são: amplitude, variância,

desvio-padrão e coeficiente de variação, coeficiente de assimetria.

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 de posição mais comumente usada e existem várias fórmulas

para o cálculo da média, como por exemplo, média aritmética, geométrica, e ponderada. A

mais popular e mais simples de todas é a média aritmética, a qual pode ser definida como a

soma dos valores(x) dividida pelo número(n) de valores observados.

n

X

X

=

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 k-ésimo percentil tem no mínimo k% dos valores abaixo daquele

ponto e no mínimo (100 - k)% dos valores acima.

Para converter o k-ésimo percentil no valor amostral correspondente deve-se

executar os seguintes passos(Triola, 2008):

Ordenar os dados do menor para o maior;

Calcular o localizador que dá a posição do valor amostral através da expressão

n

k

L

=

100

, onde n é o número de valores e k é o percentil em questão;

Se L é um valor inteiro, então o valor do k-ésimo percentil está a meio caminho entre

o L-ésimo valor e o valor seguinte no conjunto ordenado de dados. Neste caso o k-ésimo

percentil é achado somando o L-ésimo valor e o valor seguinte e dividindo o total por 2;

(25)

Se L é um valor fracionário, então arredonda-se L para inteiro. O k-ésimo percentil é

o L-ésimo valor na amostra.

Os percentis com k igual a 25, 50 e 75 são chamados, respectivamente, de primeiro

quartil (simbolizado por Q

1

), de segundo quartil (Q

2

) igual à mediana (Md) e de terceiro

quartil (Q

3

). 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 (Q

I

), Mediana (M

d

) e Quartil superior (Q

S

).

Fonte: Barbetta, 2002.

25

%

25

%

25

%

25

%

Q

I

M

d

Q

S

(26)

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álculo 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 inconveniente é sanado com a definição do desvio

padrão, que nada mais é do que a raiz quadrada positiva da variância.

Variância:

1

)

(

2 2

=

n

X

X

S

Desvio Padrão:

1

)

(

2

=

n

S

X

X

(27)

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.

X

S

CV =

Como tanto o desvio padrão quanto à média, está 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.

2.4.7 COEFICIENTE DE ASSIMETRIA

O coeficiente de assimetria caracteriza o grau de desvio ou de afastamento de uma

distribuição em torno de sua média. Quando a curva é simétrica, a média, a mediama e a

moda coincidem, num mesmo ponto, de ordenada máxima, havendo um perfeito equilíbrio na

distribuição. Quando o equilíbrio não acontece, isto é, a média, a mediana e a moda recaem

em pontos diferentes da distribuição esta será assimétrica; enviesada a direita ou esquerda.

3 1

1

=

=

N j j

S

x

x

N

α

0

=

α

à Distribuição simétrica;

0

<

α

à Distribuição assimétrica negativa;

0

>

(28)

(29)

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

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,

(30)

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 seqüê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 necessidades 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

algoritmos das operações.

Implementação: O projeto é traduzido em código de programação e estruturas de

bancos de dados.

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 à relutância 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

(31)

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 seqüê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 a um único ciclo(PE modelo cascata). Pode-se

citar também o modelo espiral, no qual entre as etapas do modelo cascata, são inseridas as

atividades de planejamento da etapa seguinte, determinaçã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.

3.4 MODELAGEM DE SISTEMAS

Esta seção não pretende explicar o que é a UML (Unified Modeling Language), mas

defini-la como a linguagem utilizada na modelagem do Sistema de Análise Exploratória de

Dados.

Uma das técnicas 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

(32)

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).

(33)

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, 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 Descritiva e Indutiva, e

que a Estatística Indutiva depende das técnicas de organização 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

expectativas 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 realizado

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 pretensão de concorrer com esses softwares

analisados, ao contrário, tem a pretensão de ser um software simples que atenda as

necessidades de estudantes iniciantes no aprendizado de estatística.

O software desenvolvido consiste em uma aplicação desktop, desenvolvida com a

tecnologia Java, e deverá ser distribuído 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.

(34)

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 levantados os principais requisitos funcionais e não

funcionais que o software deverá ter.

4.2.1 REQUISITOS FUNCIONAIS

Os dados a serem analisadas 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 requisitos 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).

(35)

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áficos de Linha, e Diagramas de

Dispersão.

Tabela 4 Requisitos Funcionais

# Requisito

Funcional

Funçã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.

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

(36)

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 de imagem

RF-28

Imprimir os gráficos.

RF-29

Possibilitar 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-funcional

Atributo

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 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 sistemas

operacionais. Windows, Linux, etc.

(37)

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 sucinta 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, identificaram-se os seguintes casos de uso para o

Sistema de Análise Exploratória de Dados: gerenciar arquivo, manipular dados, calcular

medidas descritivas, fazer distribuiçã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

copie os dados para outro software. As Tabelas 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 a planilha eletrônica ou arquivo de texto.

Referências

cruzadas:

Funções: RF-1 a RF-9, RF-30.

(38)

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.

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

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

(39)

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 7 mostra o diagrama UML dos casos de uso

definidos para o sistema.

(40)

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

(41)

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 8 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.

Figura 8 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

observaçã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

(42)

(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 Variável. 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

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 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 se preferiu 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 discretas e contínuas, pois

para se fazer os cálculos tanto das variáveis quantitativas contínuas quanto das discretas, as

mesmas 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 Estatística

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 Gráfico para representar conceitualmente os gráficos estatísticos diversos

que o software será capaz de produzir.

A fase de análise enfatiza a compreensão dos requisitos, 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.

(43)

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

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 definiram-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üentemente durante o desenvolvimento de software, podendo ser

considerado um par problema/solução (Buschmann, 1996). Padrões de projeto podem se

referir a 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;

(44)

- O controle, define o comportamento do sistema enviando a entrada do usuário para

o modelo.

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 descrevemos a adequação do diagrama de classes à arquitetura MVC,

e explicamos as principais responsabilidades das classes.

5.2.2 CLASSES DE PROJETO

A Figura 9 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, distribuímos as classes em três pacotes diferentes,

cada um contendo classes de Visão, Controle e Modelo do sistema.

(45)

Figura 9 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 divide um

modelo, tornando-o mais fácil de entender e gerenciar.

Na Figura 9 temos um pacote maior, com a inscrição Sistema na parte superior, que

representa o Sistema como um todo. Dentro do pacote 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 a 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

(46)

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 funcionalidades de criação e exibição de gráficos. A classe

ControleGraficos 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 Estatística é responsável por fazer os cálculos 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 uma

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.

Referências

Documentos relacionados

SENSOR DE

2. Identifica as personagens do texto.. Indica o tempo da história. Indica o espaço da história. Classifica as palavras quanto ao número de sílabas. Copia do texto três

Em janeiro, o hemisfério sul recebe a radiação solar com menor inclinação e tem dias maiores que as noites, encontrando-se, assim, mais aquecido do que o hemisfério norte.. Em julho,

Os caçadores tinham estendido uma grossa corda ligada a uma rede, no caminho por onde o leão costumava passar, de maneira que, quando o leão tropeçou na corda, a rede caiu-- lhe em

Quero ir com o avô Markus buscar a Boneca-Mais-Linda-do-Mundo, quero andar de trenó, comer maçãs assadas e pão escuro com geleia (17) de framboesa (18).... – Porque é tão

Corograpliiu, Col de Estados de Geografia Humana e Regional; Instituto de A lta C ultura; Centro da Estudos Geográficos da Faculdade de Letras de Lisboa.. RODRIGUES,

Note on the occurrence of the crebeater seal, Lobodon carcinophagus (Hombron &amp; Jacquinot, 1842) (Mammalia: Pinnipedia), in Rio de Janeiro State, Brazil.. On May 12, 2003,

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos