• Nenhum resultado encontrado

Ferramenta para gerar automaticamente perguntas de matemática

N/A
N/A
Protected

Academic year: 2021

Share "Ferramenta para gerar automaticamente perguntas de matemática"

Copied!
78
0
0

Texto

(1)

Capítulo I - Introdução

1

UNIVERSIDADE DE TRÁS-OS-MONTES E ALTO DOURO

ESCOLA DE CIÊNCIAS E TECNOLOGIAS

DEPARTAMENTO DE ENGENHARIAS

Ferramenta para Gerar Automaticamente Perguntas de

Matemática

Dissertação de Mestrado em Engenharia Eletrotécnica e de Computadores

Francisco André Gomes de Almeida

Orientadores:

Professor Doutor Carlos Manuel José Serôdio Professor Doutor João Luís Honório Matias

(2)
(3)

Capítulo I - Introdução

3

Universidade de Trás-os-Montes e Alto Douro

Ferramenta para Gerar Automaticamente Perguntas de

Matemática

Dissertação de Mestrado em Engenharia Eletrotécnica e de Computadores

Francisco André Gomes de Almeida

Orientador: Professor Doutor Carlos Manuel José Serôdio Orientador: Professor Doutor João Luís Honório Matias

Composição do Júri:

Professor Doutor João Pavão – Diretor do curso: Engenharia Eletrotécnica e de Computadores e Presidente da Mesa

Professora Doutora Aldina Correia – Arguente Professor Doutor João Matias – Coorientador

(4)

Capítulo I - Introdução

4

(5)
(6)

i Dissertação apresentada à Universidade de Trás-os--Montes e Alto Douro, como requisito para obtenção do grau de Mestre em Engenharia Eletrotécnica e de Computadores, sob a orientação da Professor Doutor Carlos Manuel José Serôdio e do Professor Doutor João Luís Honório Matias.

(7)
(8)

Capítulo I - Introdução

i

Declaração do autor:

Declaro que este trabalho escrito foi levado a cabo de acordo com os regulamentos da Universidade de Trás-os-Montes e Alto Douro. O trabalho é original, exceto onde indicado por referência especial no texto. Quaisquer visões expressas são as do autor e não representam de modo nenhum as visões da Universidade de Trás-os-Montes e Alto Douro. Este trabalho, no todo ou em parte, não foi apresentado para avaliação noutras instituições de ensino superior portuguesas ou estrangeiras.

(9)
(10)

Agradecimentos

i

AGRADECIMENTOS

Ao magnífico Reitor da Universidade Trás-os-Montes e Alto Douro pela permissão em ter frequentado o Mestrado em Engenharia Eletrotécnica e de Computadores.

Ao Professor Doutor Pedro Miguel Mestre Alves da Silva, pelo seu apoio imprescindível e pela revisão técnica de toda a codificação do programa.

Os meus agradecimentos ao Professor Doutor Carlos Manuel José Alves Serôdio, Professor Associado com Agregação na Universidade de Trás-os-Montes e Alto Douro, orientador desta dissertação, pela sua motivação, sugestões, orientações e ideias inovadoras.

Ao Professor Doutor João Luís Honório Matias, Professor Auxiliar do Departamento de Matemática da Universidade de Trás-os-Montes e Alto Douro, na qualidade de coorientador, pela revisão técnica na sua área de especialidade e de todo o presente documento que, sem dúvida, contribuiu para a finalização do mesmo.

Ao meu pai e minha mãe por me possibilitarem a oportunidade de alcançar este patamar académico, bem como todo o seu apoio e dedicação incondicional neste meu percurso, que foi muito a todos os níveis.

À Adriana Pires pelo seu enorme apoio durante esta fase complicada. A todos, um sincero obrigado!

(11)

Agradecimentos

(12)

Resumo

iii

RESUMO

O matUTAD consiste num jogo de matemática, concebido para alunos que frequentam o 3.º Ciclo do Ensino Básico, correspondente ao 7.º, 8.º e 9.ºanos de escolaridade, tendo como principal objetivo a correta resolução de problemas.

Este estudo teve como intuito melhorar o jogo matUTAD (existente desde 2003) e onde inicialmente as questões apresentadas eram elaboradas individualmente, tendo como referência a matéria lecionada nos respetivos anos letivos. Esta investigação procurou gerar automaticamente as questões; programar a plataforma de forma a incorporar a criação de perguntas automaticamente; incorporar as novas perguntas na base de dados à base de dados do matUTAD original; refletir sobre a forma como são apresentadas as questões e modificar a aplicação de acordo com a opinião dos utilizadores.

Esta plataforma permitirá assim avaliar os conhecimentos dos alunos, no que concerne ao nível dos conhecimentos matemáticos adquiridos sem perguntas repetidas, no final de cada ano letivo, bem como, proporcionar a oportunidade de criar pequenas competições em cada escola e inter-escolas, de modo a motivar o estudo no que diz respeito à resolução de problemas e aguçar o espírito competitivo de uma forma mais abrangente e imparcial.

Em jeito de conclusão podemos afirmar que os melhoramentos propostos ao jogo matUTAD, desenvolvido através dos programas JAVA e MySQL, foram essenciais para um melhor funcionamento do jogo, bem como para a visualização e compreensão das questões efetuadas. As novas perguntas contribuíram para melhorar a experiência de jogo. Este jogo tem a vantagem de poder ser melhorado de acordo com as características e dificuldades dos utilizadores. Quem sabe, num estudo futuro, o jogo se desenvolva de forma a permitir criar relatórios individuais por aluno, de maneira a que os professores possam avaliar o grau de compreensão matemático dos alunos, ou até mesmo evolua de forma a que os próprios alunos possam utilizar o jogo em telemóveis e/ou tablets para ter noção se adquiriram, ou não, os conhecimentos pretendidos.

Palavras-Chave: jogo, matUTAD, matemática, ensino básico, programação, JAVA,

(13)

Resumo

(14)

Abstract

v

ABSTRACT

matUTAD consists on a mathematical game, conceived for students attending the 3rd cycle of basic education, corresponding to 7.º, 8.º e 9.º years of schooling, with the main objective basing on correct troubleshooting.

This study was intended in improving the game matUTAD (existing since 2003) and where the questions presented were initially designed individually, with reference to the matter taught in their respective school years. This research sought automatically generate questions; to program the platform in order to incorporate automatically created questions; incorporate the new questions from the testing Data Base to the matUTAD’s own Data Base; reflect on how the questions are presented e modify the application according to the feedback from users.

This platform will then permit to assess the students’ knowledge, regarding the level of mathematical knowledge acquired without repeated questions, at the end of each school year, as well as, it will provide the opportunity to create small competitions in each school and interschools, in order to motivate the study in regards to troubleshooting and sharpen the competitive spirit in a more comprehensive and impartial manner.

In conclusion, we can say that the improvements made to the game matUTAD, developed using the tools JAVA and MySQL, were essential to a better functioning of said game, as well as for viewing and understanding of the questions made. The new questions contributed to the increase of the game’s database and improve the game’s experience. This game has the advantage of being able to improved according to the characteristics and constraints of the users. Who knows, in a future study, the game develops in order to allow the creation of individual students’ reports, so that teachers can assess the level of mathematical understanding of students, or even evolves so that the students can use the game in cellphones and/or tablets to get a sense if they acquired, or not, the required knowledge.

Keywords: Game, MatUTAD, mathematics, mandatory studies, programming, JAVA,

(15)

Abstract

(16)

Índice Geral vii ÍNDICE GERAL AGRADECIMENTOS ... i RESUMO ... iii ABSTRACT ... v

ÍNDICE GERAL ... vii

ÍNDICE DE FIGURAS ... ix

ÍNDICE DE ANEXOS ... x

ÍNDICE DE ABREVIATURAS E SIGLAS... xi

CAPÍTULO I – INTRODUÇÃO... 1

1.1. Metodologia (Investigação-ação) ... 1

1.2. Estrutura da Dissertação ... 2

CAPÍTULO II – matUTAD ... 5

2.1. Breve História do matUTAD ... 5

2.2. Descrição do Jogo... 5

2.3. Regras do Jogo ... 8

2.4. A Importância do Jogo no Ensino da Matemática ... 9

2.5. Conteúdos Programáticos do 3.º Ciclo do Ensino Básico ... 9

CAPÍTULO III - ENQUADRAMENTO TECNOLÓGICO ... 13

3.1. Programação ... 13

3.2. Linguagens Utilizadas ... 16

3.3. Ferramentas Utilizadas ... 18

3.4. Levantamento de Requisitos... 21

CAPÍTULO IV – CONCEÇÃO E IMPLEMENTAÇÃO ... 23

4.1. Análise do Sistema ... 23

4.2. Modelo de Desenvolvimento de Software ... 26

4.3. Arquitetura ... 27 4.3.1. Janela ... 27 4.3.2. Pergunta ... 29 4.3.3. Base de dados ... 30 4.4. Temas Abrangidos ... 33 4.4.1. Ângulos... 33

(17)

Índice Geral viii 4.4.2. Frações ... 34 4.4.3. Probabilidades ... 35 4.4.4. Fórmula Resolvente ... 38 4.4.5. Parábola ... 39 4.4.6. Gráficos ... 40 4.4.7. Triângulos ... 41 4.4.8. Teorema de Pitágoras... 43

4.4.9. Organização e Tratamento de Dados ... 45

4.5. Modelo de Funcionamento ... 46

CAPÍTULO V - TESTES, RESULTADOS E CONCLUSÕES ... 51

5.1. Limitações do Estudo ... 52

5.2. Sugestões para Trabalhos Futuros ... 52

REFERÊNCIAS BIBLIOGRÁFICAS ... 53

(18)

Índice de Figuras e Anexos

ix

ÍNDICE DE FIGURAS

Figura 1 – Registo da Escola ... 6

Figura 2 – Registo dos Professores ... 6

Figura 3 - Registo dos Alunos ... 7

Figura 4 - Registo dos Alunos (Opção 2) ... 7

Figura 5 – Ausência de seleção de resposta ... 8

Figura 6 – Diagrama Lógico da Aplicação ... 23

Figura 7 – Diagrama de Classes ... 25

Figura 8 - Arquitetura da aplicação matUTAD ... 27

Figura 9 – Exemplo da janela inicial ... 27

Figura 10 – Componentes da Janela ... 28

Figura 11 – Janela de Ausência de Resposta ... 29

Figura 12 – Classes de Perguntas ... 29

Figura 13 – Métodos comuns a todas as perguntas ... 30

Figura 14 – Tabelas da Base de Dados ... 31

Figura 15 – Estrutura de Pergunta ... 31

Figura 16 – Tabela Pergunta ... 32

Figura 17 – Tabela tipos de pergunta ... 32

Figura 18 – Classificação de Ângulos ... 33

Figura 19 – Exemplo de Ilustração relativa ao tema ângulos ... 34

Figura 20 – Exemplo de Pergunta relativa às frações ... 35

Figura 21 – Exemplo de Pergunta relativa às probabilidades ... 37

Figura 22 – Exemplo de Pergunta de Fórmula Resolvente ... 39

Figura 23 – Parábola ... 39

Figura 24 – Exemplo de Pergunta de Parábola ... 40

Figura 25 – Exemplo de Pergunta de Gráficos ... 41

Figura 29 – Exemplo da Pergunta sobre Triângulos ... 42

Figura 30 – Exemplo da Pergunta sobre Triângulos ... 42

Figura 26 - Exemplo de Teorema de Pitágoras ... 43

Figura 27 – Posições base da Ilustração ... 44

Figura 28 – Exemplo da Pergunta sobre o Teorema de Pitágoras ... 44

Figura 31 – Exemplo da Pergunta sobre Tratamento de Dados ... 46

(19)

Índice de Figuras e Anexos

x Figura 33 – Mensagem de erro ... 48 Figura 34 – Opção Inválida do ano letivo solicitado ... 48 Figura 35 – Versão final do programa no servidor do matUTAD ... 49

ÍNDICE DE ANEXOS

Anexo A – Classe Pergunta.Java ... 57 Anexo B – Classe PerguntaTrianguloAngulos.Java ... 57 Anexo C – Classe PerguntaTranguloLados.Java ... 57

(20)

Índice de Abreviaturas e Siglas

xi

ÍNDICE DE ABREVIATURAS E SIGLAS API – Application Programming Interface

BASIC – Beginner’s All-purpose Symbolic Instruction Code

BD – Base de Dados

COBOL – Common Business Oriented Language HTML – Hyper Text Markup Language

Id – Identificação da Pergunta

IDE - Integrated Development Environment

JAVA - General purpose computer programming language JDBC - Java Database Connectivity

MySQL – My S(Structured) Q(Query) L(Language) SGBD – Sistema de Gestão de Base de Dados

SQL – Structured Query Language TXT 1 – Texto 1

TXT 2 – Texto 2

UML – Unified Modeling Language

UTAD – Universidade de Trás-os-Montes e Alto Douro

(21)

Índice de Abreviaturas e Siglas

(22)

Capítulo I - Introdução

1

CAPÍTULO I – INTRODUÇÃO

No âmbito da dissertação de mestrado optamos por reformular a forma como a plataforma matUTAD gerava os problemas e afirmações, na medida em que, inicialmente, estes eram elaborados individualmente. A motivação que nos levou a escolher este tema, foi o facto de termos entrado em contacto com a plataforma e, depois de averiguar como funcionava, verificarmos que seria pertinente gerar as perguntas automaticamente, de forma a que, cada implementação, pudesse originar um conjunto distinto de problemas a colocar aos utilizadores. Com esta dissertação pretendemos atingir os seguintes objetivos: (1) programar a plataforma de forma a incorporar a criação de perguntas automaticamente, criando o layout da pergunta; (2) incorporar as novas perguntas à base de dados do matUTAD original; (3) refletir sobre a forma como são apresentadas as questões e (4) modificar a aplicação de acordo com a opinião dos utilizadores.

1.1. Metodologia (Investigação-ação)

A metodologia que iremos utilizar nesta investigação é a investigação-ação. Entende-se por investigação-ação “um processo reflexivo que caracteriza uma investigação numa determinada área problemática cuja prática se deseja aperfeiçoar ou aumentar a sua compreensão pessoal” (Máximo-Esteves, 2008:20). Como indica Alarcão “a investigação realiza-se num contexto específico” (2001:7). Assim, esta investigação realiza-se no âmbito do jogo matUTAD e pretende-se estruturar o mesmo de acordo com os programas curriculares em vigor e de forma a que seja lúdico, apelativo e, ao mesmo tempo, educativo, ou seja, pretende-se que o aluno possa usufruir de uma aprendizagem não-mecanizada, mas profícua, contribuindo para uma experiência educativa mais agradável.

Deste modo, o matUTAD induz de uma forma dinâmica, rápida e apelativa a estimulação do processo de aprendizagem. Isto verifica-se, uma vez que a apresentação em forma de jogo, por defeito, proporciona um maior interesse por parte dos alunos, tornando este processo cativante e podendo assim, de forma lúdica e descomplexada, incentivar a busca pela solução, ao invés de realizarem um exercício, e imediatamente, a seguir consultar a resposta. Pretende-se, desta forma, estimular o poder de raciocínio para, posteriormente, os alunos serem capazes de enfrentar e resolver novas situações ou problemas, evitando objetivamente a memorização ou mecanização dos exercícios em questão, ou seja, “os alunos devem ser capazes

(23)

Capítulo I - Introdução

2 de estabelecer conjeturas, em alguns casos, após a análise de um conjunto de situações particulares” (Ministério da Educação e Ciência, 2013:4).

Para que estes objetivos sejam alcançados, a plataforma deve ser testada, com a sua utilização por parte dos alunos e, a partir do feedback obtido, modificar eventualmente com objetivo de melhorar a sua eficácia. Desta forma, “as tarefas de aprendizagem são hierarquizadas de acordo com a complexidade crescente dos processos cognitivos: primeiro as operações mais simples e, de seguida, as mais complexas” (Marques, 1998:68).

Desta forma e como indica Alarcão “a investigação-ação, para ser investigação, tem de produzir conhecimentos novos, ser rigorosa na sua metodologia e tornar-se pública a fim de que possa ser apreciada, avaliada, reproduzida, desenvolvida” (2001:8). É isso mesmo que pretendemos, que se produza uma nova maneira de organizar a plataforma matUTAD e que possa futuramente ser apreciada, avaliada, reproduzida e desenvolvida.

1.2. Estrutura da Dissertação

A dissertação encontra-se estruturada em cinco capítulos. No primeiro capítulo faz-se uma introdução à dissertação, onde se aborda a metodologia e estruturação da mesma. No segundo capítulo faz-se uma breve introdução à história da aplicação matUTAD, assim como se descreve o funcionamento da plataforma, qual o seu público-alvo e objetivos a atingir. Também se procurou fundamentar teoricamente a importância do jogo no Ensino da Matemática e como o fazer com os conteúdos programáticos relativos ao 3.º Ciclo do Ensino Básico. No terceiro capítulo procura-se apresentar uma abordagem tecnológica sobre a conceção (programação) de aplicações, as linguagens de programação e ferramentas existentes, fundamentando aquelas que são utilizadas, bem como o levantamento de requisitos abordando o seu conceito e os tipos usados durante a conceção da dissertação.

Relativamente ao quarto capítulo, procurou-se fundamentar teoricamente a análise do sistema, a partir da apresentação de diagramas, além de que se procurou apresentar uma abordagem aos conceitos e tipos de modelos de desenvolvimento de software existentes. Procurou-se, igualmente, explicar a implementação da plataforma. Para isso, decidiu-se dividir a implementação em fases, sendo a primeira a criação de perguntas relativas à fórmula resolvente, teorema de Pitágoras e frações; a segunda fase engloba a construção da base de dados da aplicação; a terceira fase aborda as perguntas relativas a gráficos, ângulos, triângulos, parábola e função exponencial; e na quarta e última fase abordam-se as probabilidades.

(24)

Capítulo I - Introdução

3 No quinto e último capítulo abordam-se os testes, resultados e conclusões obtidas com esta dissertação, bem como apresentamos as limitações existentes e algumas sugestões para trabalhos futuros.

(25)

Capítulo I - Introdução

(26)

Capítulo II - matUTAD

5

CAPÍTULO II – matUTAD

Neste capítulo será descrito como surgiu o matUTAD, para que serve e qual o público-alvo a que se destina, bem como os objetivos e regras do jogo. Também se irá explicar a importância do jogo no ensino da matemática e, em relação ao público-alvo, identificar-se-ão os conteúdos programáticos em função do ano escolar dos alunos.

2.1. Breve História do matUTAD

Em 2003 iniciou-se o projeto matUTAD que consistia num jogo matemático, em formato digital, apresentado na Internet, destinado a alunos do 7.º, 8.º e 9.º anos de escolaridade, cujo objetivo consistia e ainda consiste em estimular os alunos a aprender matemática. Este jogo ainda se encontra em fase de desenvolvimento.

Este projeto tinha como responsáveis originais o Departamento de Matemática da Universidade de Trás-os-Montes e Alto Douro (UTAD) e contou inicialmente com a colaboração dos seus vários Núcleos de Estágio de Matemática e dos formandos da Oficina de Formação: Maratonas da Matemática.

Atualmente existe uma direção que coordena o projeto, composta por docentes da UTAD, promovendo o desenvolvimento da plataforma, com a colaboração do Departamento de Matemática e de outros Departamentos da UTAD, bem como alguns Docentes do 3.º Ciclo do Ensino Básico e Secundário.

Inicialmente o matUTAD era um jogo de resolução de problemas matemáticos em que as perguntas eram elaboradas individualmente. Um dos objetivos do presente trabalho é precisamente alterar este aspeto, dotando o matUTAD de mecanismos de geração/criação do par perguntas/respostas de modo automático, de acordo com o Programa e Metas Curriculares da Matemática para o Ensino Básico. Para isso, a aplicação foi desenvolvida de forma meticulosa, mais, de maneira a se poder testar o jogo, foram inseridas novos conteúdos, referentes aos temas de Geometria e Medida, Organização e Tratamento de Dados e Números e Operações.

2.2. Descrição do Jogo

Durante o ano letivo, os alunos das escolas associadas ao projeto, têm possibilidade de praticar, por outras palavras, treinar no jogo, a partir do acesso à plataforma matUTAD, em

(27)

Capítulo II - matUTAD

6 qualquer lugar desde que possuam um computador com acesso à Internet. Para isso torna-se necessário efetuar alguns passos. O primeiro passo consiste em registar a escola e associá-la ao projeto. Para isso, o administrador da plataforma preenche os dados da escola na caixa apresentada na Figura 1.

Figura 1 – Registo da Escola

O segundo passo consiste em registar os professores que desejam aceder à plataforma. Isto é, uma vez mais, executado pelo administrador, preenchendo um formulário semelhante ao da Figura 2, informando o professor, geralmente por e-mail, dos seus dados de acesso.

Figura 2 – Registo dos Professores

No momento do registo do professor, a escola já se encontra disponível para opção de escolha, apresentado na etapa anterior.

O terceiro passo consiste em registar os alunos. Este pode ser feito de duas formas diferentes, de acordo com quem o faz. No primeiro caso é o professor que faz o registo dos seus alunos, seguindo a opção “Inscrever Novos Alunos” que lhe é mostrado na sua área pessoal da plataforma como exemplifica a Figura 3.

(28)

Capítulo II - matUTAD

7

Figura 3 - Registo dos Alunos

Neste caso, alguns dos dados dos alunos são imediatamente definidos, em particular a escola e o professor. Para finalizar o processo, o professor terá de informar os seus alunos sobre os seus dados de acesso.

No segundo caso: é o próprio aluno que faz o registo. Deste modo o aluno tem que selecionar a sua escola, Figura 4, e o seu professor, Figura 5. Contudo o processo só fica terminado aquando da autenticação do professor.

Figura 4 - Registo dos Alunos (Opção 2)

Neste momento todos os participantes já têm o registo efetuado pelo que estão em condições de poder aceder à plataforma. Devemos destacar o facto de cada utilizador ter a opção de alterar, completar ou corrigir a sua informação pessoal. Hierarquicamente, o professor pode

(29)

Capítulo II - matUTAD

8 ainda alterar os dados pessoais dos seus alunos. Já o administrador pode modificar os dados dos professores e das escolas associadas ao projeto.

No final de cada ano letivo as escolas são convidadas a participar na Grande Final que se realiza nas instalações da UTAD, através da participação dos alunos que foram inscritos previamente pelos seus professores.

2.3. Regras do Jogo

O matUTAD era um jogo de matemática, com a duração de 20 minutos por sessão, sendo obrigatória a indicação de resposta a 20 questões. Atualmente a duração do jogo é de 30 minutos, a indicação de resposta passou para 25 questões.

Cada pergunta, contempla um nível de dificuldade entre “baixo” a “alto” sendo composta por quatro afirmações cuja resposta, do tipo verdadeiro ou falso, terá de ser assinalada, pois caso contrário a aplicação não permite o prosseguimento do jogo (Figura 6).

Figura 5 – Ausência de seleção de resposta

Por cada alínea assinalada corretamente, os alunos recebem um ponto, sendo um total de 4 pontos por pergunta. O jogador poderá, desta forma, obter uma pontuação máxima de 80 pontos. Neste momento, o jogador poderá atingir os 100 pontos.

Para motivar a continuidade no jogo, evitando o abandono e/ou a desistência é permitido aos alunos responder a todas as perguntas, independentemente de as respostas estarem certas ou erradas.

Aquele que obtiver um maior número de pontos será o vencedor. Em caso de empate, recorre-se à cronometragem do jogo, isto é, ganha aquele que o completar num menor período de tempo. No final, o resultado é divulgado apenas pela pontuação.

O matUTAD permite a escolha entre dois modos de jogo: o modo de treino – que pode ser jogado individualmente; e o modo competições - que é jogado a pares.

(30)

Capítulo II - matUTAD

9 Se em modo de treino, cada jogador pode utilizar outros recursos, já em modo de jogo, nomeadamente, na final, cada aluno apenas tem direito a papel de rascunho e máquina de calcular, não podendo esta ser gráfica.

2.4. A Importância do Jogo no Ensino da Matemática

Neste ponto vamos fazer uma breve referência à importância do jogo no Ensino da Matemática, na medida em que o matUTAD é caraterizado por ser um jogo matemático para os alunos do 3.º Ciclo do Ensino Básico. De acordo com Brands e Phillips “Os jogos proporcionam flexibilidade: flexibilidade de abordagem, de programação, de objetivos. É por intermédio desta sua flexibilidade que se pode fazer uma tentativa séria de desenvolver um programa integral de educação do indivíduo” (1977:8).

Quando utilizamos um jogo devemos ter sempre em consideração os objetivos que pretendemos atingir.

“Existem determinados objectivos que se podem atingir mediante o recurso a jogos específicos, desde que se controlem as suas orientações. Estas podem integrar-se num plano geral que poderá então dar ao professor uma visão global do que se está a passar e do que está em desenvolvimento dentro das suas temáticas” (Brandes e Phillips, 1977:8).

Resumindo, devemos evidenciar a importância do jogo no ensino da matemática, na medida em que permite aos alunos aprender enquanto “brincam”.

2.5. Conteúdos Programáticos do 3.º Ciclo do Ensino Básico

Atualmente, o ensino da matemática está organizado a partir de um currículo sequencial, premiando uma aprendizagem progressiva. Apesar de a abstração ser essencial na atividade matemática, nos primeiros anos essa atividade deve assentar apenas em casos concretos de forma a que, progressivamente e de uma forma gradual, se passe do concreto ao abstrato. Deste modo, o ensino da matemática encontra-se estruturado em três finalidades, como sendo: a estruturação do pensamento, a análise do mundo natural e a interpretação da sociedade.

A primeira finalidade caracteriza-se pela estruturação do pensamento, ou seja, a aquisição, a hierarquização de conceitos matemáticos e a argumentação clara e explícita, o que contribui para a base do raciocínio hipotético-dedutivo (Ministério da Educação e Ciência, 2013). É também o objetivo da dialética ensino/aprendizagem o entendimento, por parte dos alunos, do mundo real, assim como a matemática tem um papel particularmente determinante

(31)

Capítulo II - matUTAD

10 nesse aspeto, na medida em que é essencial para a compreensão da maior parte dos fenómenos do quotidiano, não excluindo a importância de outras disciplinas, como por exemplo da físico-química, ciências da terra, entre outras (Ministério da Educação e Ciência, 2013).

Finalmente, a utilização da matemática deve ser um instrumento relevante para que os alunos possam interpretar a sociedade, já que a matemática deve ter como base o quotidiano e, inicialmente, deve centrar-se nas quatros operações aritméticas, bem como na proporcionalidade e no cálculo de algumas medidas de grandeza, associadas às figuras geométricas. Desta forma, pode-se concluir que o “Ensino da Matemática contribui assim para o exercício de uma cidadania plena, informada e responsável” (Ministério da Educação e Ciência, 2013:2).

De acordo com o exposto no Programa e Metas Curriculares da Matemática para o Ensino Básico, estas finalidades “só podem ser atingidas se os alunos forem apreendendo adequadamente os métodos próprios da Matemática” (Ministério da Educação e Ciência, 2013:2).Ou seja, os alunos devem ser levados a compreender, passo a passo todos os conceitos, não sendo “possível, por exemplo, determinar as propriedades de um objeto que não se encontra adequadamente definido. Nesse sentido, as Metas Curriculares, articuladas com o presente Programa, apontam para uma construção consistente e coerente do conhecimento” (Ministério da Educação e Ciência, 2013:2).

No presente trabalho optamos por apenas inserir perguntas ao nível da Organização e Tratamento de dados devido à importância deste tema e, como indica Ponte e Serrazina:

“tem uma grande importância na sociedade atual. Todos os cidadãos precisam de compreender informação numérica relativa ao mundo da economia, da política, da ciência, do desporto e grande parte desta informação é dada através de representações e indicadores estatísticos” (2000:208).

Igualmente, também se optou por inserir perguntas no âmbito de Geometria e Medida e Números e Operações.

De acordo com o Programa e Metas Curriculares da Matemática para o Ensino Básico, no tema “Organização e Tratamento de Dados são introduzidas algumas medidas de localização e dispersão de um conjunto de dados e é feita uma iniciação às probabilidades e aos fenómenos aleatórios” (Ministério da Educação e Ciência, 2013:19).

Em relação aos conteúdos programáticos para o 7.º ano de escolaridade, estes contemplam as “Medidas de localização: Sequência ordenada dos dados; Mediana de um conjunto de dados; definição e propriedades; e Problemas envolvendo tabelas, gráficos e medidas de localização” (Ministério da Educação e Ciência, 2013:22). Nos conteúdos

(32)

Capítulo II - matUTAD

11 programáticos para o 8.º ano de escolaridade encontram-se os “Diagramas de extremos e quartis: Noção de quartil; Diagramas de extremos e quartis; Amplitude interquartil; e Problemas envolvendo gráficos diversos e diagramas de extremos e quartis” (Ministério da Educação e Ciência, 2013:24).

Por último, em relação aos conteúdos programáticos para o 9.º ano de escolaridade estes abordam entre outros, os seguintes temas:

“Variáveis estatísticas discretas e contínuas; classes; Histogramas; propriedades; tabelas de frequência […] Probabilidades: casos possíveis; casos favoráveis; Acontecimentos disjuntos ou incompatíveis e complementares; propriedades e exemplos; tabelas de dupla entrada e diagramas em árvore” (Ministério da Educação e Ciência, 2013:26-27).

(33)

Capítulo II – matUTAD

(34)

Capítulo III – Enquadramento Tecnológico

13

CAPÍTULO III - ENQUADRAMENTO TECNOLÓGICO

Este trabalho insere-se no curso de Engenharia Eletrotécnica e de Computadores, na área da programação visto que são utilizados conhecimentos adquiridos não só nas Unidades Curriculares, como também durante o estudo autónomo sobre a linguagens de programação em particular, JAVA (General purpose computer programming language) e base de dados em MySQL (My S(Structured) Q(Query) L(Language)).

Este capítulo encontra-se dividido em quatro partes. Na primeira iremos descrever o que é a programação e quais as suas utilidades. Na segunda iremos caracterizar as linguagens utilizadas. Na terceira parte faremos referência às ferramentas utilizadas. Na quarta parte iremos expor o levantamento de requisitos, o conceito de requisitos e de levantamento dos mesmos e dos tipos de requisitos existentes.

3.1. Programação

De acordo com Mendes e Marcelino (2012:1) “A programação é […] a arte de analisar um problema e encontrar um conjunto de ações (um algoritmo) capaz de o resolver corretamente. A noção de programação está intimamente relacionada com a programação informática, uma vez que o programador insere o código fonte (numa linguagem de programação) num software de forma a que o programa informático assinale o modo e forma de agir, para que, este possa escrever, averiguar e manter esse código.

Ou seja,

“Uma linguagem de programação atua como um tradutor entre você e o computador. Em vez de aprender a linguagem nativa do computador (conhecida como linguagem de máquina), você pode usar uma linguagem de programação para instruir o computador de uma maneira que é mais fácil de aprender e entender” (Microsoft, 2016).

É por esta razão que os modelos de desenvolvimento de software se inserem na engenharia de software, dado que é a partir da utilização de algoritmos, como sequências finitas, ordenadas e não ambíguas, ou seja, instruções escritas na linguagem de programação, que se resolvem os problemas. Os programas informáticos são escritos, pelo que se deve compilar o código de forma a ser executado pelo computador. “Um programa especializado conhecido como um compilador leva as instruções escritas na linguagem de programação e converte-as em linguagem de máquina. Isso significa que como um programador […] não precisa compreender o que o computador está fazendo ou como ele faz isso” (Microsoft, 2016).

(35)

Capítulo III – Enquadramento Tecnológico

14 A programação encontra-se dividida em vários conceitos: estruturada, modular, orientada a objetos e linear. No caso concreto desta investigação apenas se irá utilizar a programação orientada a objetos. Assim sendo, Voss (1991) define programação por objetos (objetos, classes, interface, variáveis) como sendo:

“Object orientated programing is a struturing technique. In object-oriented programming, objects are the principal elements of construction. However, simply understanding what an object is or using objects in a program does not mean you are programing in an object-oreintated fashion. It is the way objects are pieced together that counts” (Voss, 1991:11).

Em jeito de síntese podemos afirmar, a partir da citação acima exposta, que apenas utilizando um objeto ou objetos não significa que se sabe programar este tipo de conceito. Desta forma, convém ter a estrutura geral do programa bem delineada.

Segundo Campione, Walrath e Huml (2001:46) define-se objeto como um software com um pacote de variáveis e métodos relacionados: “an object is a software bundle of variables and related methods”.

No âmbito da programação procedimental é possível contruir um programa com elementos que o compõem podendo mesmo assim ser violados os princípios da construção sólida (Voss, 1991). Este princípio aplica-se tanto à abordagem orientada a objetos, como à programação procedimental. De acordo com o exposto conclui-se que, neste tipo de programação, o facto de se ter a ideia ou o algoritmo bem definido não garante que irá ser construído um código robusto, sem erros, fácil de ler, utilizar e modificar. Assim, surge a importância de se ter uma perspetiva geral da estrutura da programação orientada a objetos (Voss, 1991).

O mesmo autor refere, de forma mais rigorosa, que:

“the exact meaning of object-oriented programing, it is programing by sending messages to objects of unknown type. Such objects would be found in an array or in a collection such as a desktop. All objects in the collection share certain caractheristics. From programers perspective, selection of an object within the collection does not provide information about the object’s exact type” (Voss, 1991:12).

Já que o tipo do objeto não é conhecido quando a mensagem lhe é enviada, a reação exata do objeto não pode ser antecipada. O envio de mensagens aos objetos de tipo desconhecido é uma ferramenta de programação eficaz e é isso mesmo a programação orientada a objetos (Voss, 1991). As mensagens são enviadas ao objeto para ele invocar os seus métodos ou comportamentos.

Assim sendo, os objetos são a chave para entender este conceito de programação, na medida em que se pode ver diversos exemplos do quotidiano como: o cão, a mesa, a televisão

(36)

Capítulo III – Enquadramento Tecnológico

15 e a bicicleta. Estes objetos do quotidiano têm características em comum: um comportamento e um estado, ou seja, os cães têm atributos/estados como: nome, raça e um comportamento/método como: ladrar, buscar, abanar o rabo (Campione, Walrath e Huml, 2001).

Outra componente da programação por objetos, são as classes, que se podem definir como um desenho técnico, ou protótipo que define as variáveis e um método comum para todos os objetos de um certo tipo: “a class is a blueprint, or prototype, that defines the variables and the method common to all objects of certain kind” (Campione, Walrath e Huml, 2001:49).

Tal como na vida real o carro é um exemplo de um objeto entre os inúmeros existentes no planeta. Utilizando a terminologia orientada a objetos podemos referir que o objeto carro é um exemplo de uma classe de objetos conhecidos como carros, em que a mesma classe apresenta um estado (matricula, marca, entre outros) e comportamento (acelerar, travar, buzinar) em comum. No entanto o estado de cada carro é independente dos restantes. Também é possível no software orientado por objetos ter vários deles do mesmo tipo com as mesmas características, como por exemplo: retângulos, registos dos empregados, entre outros. Seguindo novamente o exemplo do carro verifica-se que, tal como os seus fabricantes, podemos tomar partido do facto daqueles objetos serem semelhantes e criar o seu próprio desenho técnico, que se denomina de classe (Jesus, 2013), no âmbito do software para esses mesmos objetos.

Na plataforma/jogo do matUTAD, de forma a controlar os acessos das classes, atributos e métodos das perguntas elaboradas e guardadas, utilizamos o conceito de encapsulamento usando os modificadores de acesso:

- Public: Permite a visualização por parte de qualquer classe a outras classes, atributos e métodos, feitas na construção de perguntas e imagens no programa do JAVA, bem como são guardadas na Base de Dados.

- Protected: As ligações à base de dados são protegidas de modo a que os métodos e atributos da classe pergunta sejam apenas visíveis para suas subclasses (tipos de pergunta); - Private: Restringe a visualização e o acesso das classes, métodos e atributos dentro da mesma classe (Jesus, 2013).

Na utilização do programa/plataforma o utilizador não necessitará de saber como estes métodos e subclasses são chamados, já que apenas são fornecidas as questões por métodos que retornam ou obtêm os valores (getters) (Jesus, 2013).

(37)

Capítulo III – Enquadramento Tecnológico

16 Naquele programa encontra-se o conceito de herança visto existir a superclasse Pergunta.java do qual são herdadas certas características para as suas subclasses (tipos de pergunta) (Jesus, 2013).

Neste programa foi necessário implementar uma classe abstrata, já que as classes concretas necessitam de uma estrutura delineada. Assim, a escolha de utilizar uma classe abstrata centrou-se na possibilidade de utilizar o template (modelo) de uma pergunta geral, no qual as classes derivadas (tipos de pergunta) iriam adicionar um comportamento especifico, neste caso a geração de pergunta mediante o tema pretendido.

Relativamente às variáveis, estas são itens de dados com um identificador, em que um objeto armazena o seu estado em variáveis. Assim sendo, na construção de um programa deverá fornecer-se um nome e um tipo a cada variável. O tipo da variável determina o valor que suporta as operações que se podem realizar (Campione, Walrath e Huml, 2001).

3.2. Linguagens Utilizadas

Entende-se por linguagem de programação as regras que os programadores utilizam para a codificação de instruções de um programa ou de um algoritmo de programação. Existem vários tipos de linguagem de programação, de onde se destacam os seguintes exemplos: linguagens de baixo nível, linguagens não estruturadas, linguagens procedimentais, linguagens funcionais, linguagens orientadas a objeto, linguagens específicas a aplicações e visuais (Gudwin, 1997). As linguagens de baixo nível “são linguagens totalmente dependentes da máquina, ou seja, que o programa que se realiza com este tipo de linguagem não pode ser migrado ou utilizado em outras máquinas” (Langa, 2006), como o Assembly, enquanto que as linguagens não estruturadas “são linguagens mais sofisticadas que as linguagens de baixo nível. Estas últimas são linguagens mais flexíveis, pois os seus comandos não estão tão vinculados ao processador e sistema utilizados, tornando o seu uso possível em diferentes plataformas” (Gudwin, 1997:2), como o COBOL (Common Business Oriented Language) e BASIC (Beginner’s All-purpose Symbolic Instruction Code). As linguagens procedimentais, ou estruturadas, diferenciam-se das não estruturadas pelo facto de existirem estruturas de controle, que permitem o teste de condições (if-then-else), bem como “controlam a repetição de blocos de código (for, while, do), fazem a seleção de alternativas (switch, case), e dividem o código do programa em módulos chamados de funções ou procedimentos” (Gudwin, 1997:3). Assim, as linguagens procedimentais possuem algoritmos que delineiam uma sequência de chamadas de

(38)

Capítulo III – Enquadramento Tecnológico

17 procedimentos constituintes do programa. “Essa característica é colocada em contraposição às linguagens funcionais, onde se descrevem expressões que caracterizam um certo tipo de conhecimento” (Gudwin, 1997:3), sendo exemplos o C, o Pascal e o Fortran.

No que diz respeito às linguagens funcionais, estas enfatizam a avaliação de expressões contrárias à execução de comandos, onde são formadas funções de forma a combinar valores básicos, sendo o LISP e o PROLOG exemplares deste género (Gudwin, 1997).

Dada a necessidade de organizar o processo de programação numa linguagem, originou-se a programação orientada a objetos, que suporta este estilo de programação e abrange linguagens de propósito geral, linguagens multimédia e a programação lógica, como o JAVA (Gudwin, 1997).

As linguagens específicas a aplicações dividem-se em quatro grupos: linguagens para bases de dados (Clipper e SQL – Structured Query Language), linguagens para simulação (MATLAB), linguagens de scripts (TCL/TK, PERL) e linguagens de formatação de texto (TeX/LaTeX, HTML, Postscript e PDF) (Gudwin, 1997).

Por último, as linguagens visuais têm como princípio fundamental o facto de os gráficos serem mais fáceis de perceber do que textos, utilizando diagramas, ilustrações e esquemas, o que proporcionam uma maior facilidade de compreensão, bem como tornam mais simples a própria programação para utilizadores sem muita experiência (Gudwin, 1997).

Neste trabalho iremos utilizar a linguagem orientada a objetos JAVA para o programa, a linguagem específica a aplicações, mais concretamente dirigida a bases de dados; o SQL, e a linguagem de programação visual, o UML (Unified Modeling Language) para a elaboração do diagrama de classes (Figura 8) servindo de modelo para as classes que seriam utilizadas no programa, que foi elaborado na fase inicial da conceção, bem como seus atributos, operações e associações.

O JAVA caracteriza-se, através da sua linguagem, pelo seguinte: simples, orientada a objetos, distribuída num vasto conjunto de bibliotecas (ou API - Application Programming Interface), de fácil interpretação, robusta, segura, com arquitetura neutra, portátil, alta performance, dinâmica (na medida em que os programas em Java são formados por uma coleção de classes armazenadas, independentemente, e que podem ser obtidas no momento de utilização), o código não apresenta qualquer restrição a nível do sistema operativo, possui facilidades na criação de programas distribuídos (múltiplas linhas de execução num mesmo programa) (Campione, Walrath e Huml, 2001).

(39)

Capítulo III – Enquadramento Tecnológico

18 O SQL “é uma poderosa linguagem declarativa que permite definir, questionar e manipular bases de dados” (Rocha, 2010).

O UML (Unified Modeling Language) é uma linguagem de programação visual que apresenta as seguintes particularidades: usa a semântica e a notação para proceder ao tratamento de diversos tópicos de modelação, bem como para o tratamento de frameworks e internet; serve-se de mecanismos de extensão para tornar possível o deserve-senvolvimento em UML; baserve-seia-serve-se na semântica e sintaxe para facilitar a troca de modelos em diferentes ferramentas (Silva e Videira, 2005).

O UML é uma linguagem de modelação no campo da Engenharia de Software. O seu nível básico proporciona um conjunto de técnicas de notação gráfica para criar modelos visuais de sistemas orientados a objetos, tendo como ponto de partida um dos vários exemplos das ferramentas em UML. Poder-se-á, deste modo, proceder à análise dos requerimentos e projetar uma solução utilizando os treze tipos de diagramas do UML para apresentar os resultados, ou seja, pretendeu-se com o desenvolvimento do UML que, qualquer que fosse o tipo de projeto, a ferramenta de suporte ou a organização envolvida, possibilitasse a adotação de processos/metodologias diferentes mantendo a mesma linguagem de programação (Silva e Videira, 2005). “Um princípio básico no esforço de definição do UML foi a simplicidade. Outro princípio foi a coerência a unificação de diferentes elementos existentes em vários métodos (Booch, OMT, OOSE)” (Silva e Videira, 2005:101). É possível modelar quase qualquer tipo de aplicação, correndo em qualquer tipo e combinação de hardware, sistema operativo, linguagem de programação, e rede, em UML. A sua flexibilidade deixa o utilizador modelar aplicações distribuídas que usam quase todos os middleware disponíveis no mercado que, baseado em conceitos orientados a objetos incluindo classes e operações, é perfeito para aquele tipo de linguagem como C++, Java, e o mais recente C#.

3.3. Ferramentas Utilizadas

Assim, referenciados o JAVA e o UML procuraremos definir claramente o que é uma ferramenta de programação. Como afirma Janssen (2010), uma ferramenta de programação pode ser qualquer programa de software que ajude os programadores na criação, edição, debugging, manutenção e/ou programação de qualquer tarefa específica. Assim sendo, as ferramentas utilizadas no desenvolvimento da plataforma MatUTAD foram: Netbeans, MySQL, StarUML, XAMPP, que serão explicadas detalhadamente de seguida.

(40)

Capítulo III – Enquadramento Tecnológico

19 O Netbeans é uma ferramenta gratuita, que permite desenvolver aplicações para micro e minicomputadores, portáteis, telemóveis e mesmo aplicações web.

“The IDE supports application development in various languages, including Java, HTML5, PHP and C++. The IDE provides integrated support for the complete development cycle, from project creation through debugging, profiling and deployment. The IDE runs on Windows, Linux, Mac OS X, and other UNIX-based systems” (NetBeans, 2013:1).

No que concerne ao MySQL, esta ferramenta caracteriza-se por ser um SGBD (Sistema de Gestão de Base de Dados). Entende-se por SGBD:

“Um Sistema Gestor de Bases de Dados (SGBD) é uma aplicação ou um conjunto de aplicações informáticas utilizadas para definir, aceder e gerir os dados existentes numa base de dados” (Damas, 2005:33).

Designa-se por SGBD uma aplicação informática que providencia a interface entre o utilizador (pessoa ou aplicação) e os dados armazenados.

Desta forma, verifica-se que um SGBD requer um grande espaço de armazenamento, tal como refere Geremia (2010). As tarefas de um SGBD minimizam o número de transições ou movimentos entre os discos e a memória principal, bem como organizam a interface entre os dados de baixo nível de armazenamento e os programas de aplicação e solicitações submetidas na base de dados (Geremia, 2010).

Para possibilitar o armazenamento das questões e das respetivas perguntas, recorremos ao MySQL que, de acordo com Damas (2005) “destina-se a todos os potenciais utilizadores, sejam eles programadores, administradores, gestores, de bases de dados etc.” (Damas, 2005). Este designa um sistema de gestão de base de dados cuja praticabilidade é relevante para o desenvolvimento do matUTAD e apresenta os seguintes objetivos: “é claramente manipulação de dados” (Damas, 2005:2). Mais, permite a implementação e gestão de bases de dados, ou seja, como afirma ainda o mesmo autor “mais especificamente, o objetivo da linguagem SQL é servir de interface entre o utilizador dos dados e o sistema gestor de bases de dados como Oracle ou SQL”. Esta ferramenta utiliza o modelo relacional que é largamente aceite e recomendado (Damas, 2005). “A utilização deste standart internacional reduz as incompatibilidades entre os sistemas e evita que se opte por arquiteturas proprietárias que implicam maiores custos de desenvolvimento e maior esforço financeiro e humano por parte dos intervenientes” (Damas, 2005:3).

Optamos por utilizar um Sistema Gestor de Bases de Dados, tendo em atenção os seguintes aspetos:

(41)

Capítulo III – Enquadramento Tecnológico

20 “Informação for armazenada de modo permanente; Controlo de dados; Controlo de

redundância; Controlo de consistência e integridade dos dados; Múltiplos utilizadores (concorrência); Controlo de acesso e segurança; Partilha de dados entre utilizadores; Independência dos dados das aplicações; Backup & Recovery” (Damas, 2005:34).

No que diz respeito ao StarUML, esta é uma plataforma de modelação de software que suporta UML. De modo geral, o UML é uma linguagem usada para visualizar, especificar, construir e documentar o sistema de software, utilizando uma linguagem representativa em termos visuais, para fazer modelos de software (StarUML, 2005). Esta ferramenta fornece uma excelente extensibilidade e flexibilidade, ou seja, fornece add-in frameworks que ampliam a funcionalidade da ferramenta e permite aos utilizadores criarem as suas próprias abordagens de acordo com as metodologias pretendidas e que podem ser integradas com qualquer ferramenta externa (StarUML, 2005).

O XAMPP (X (Cross Platform) A (Apache) M (MariaDB), P (PHP) e P (Perl)) é um pacote de ferramentas de desenvolvimento de servidores web open source, sendo leve e de fácil instalação, multiplataforma. Desta forma, o referido “XAMPP stands for Cross-Platform (X), Apache (A), MySQL (M), PHP (P) and Perl (P). It is a simple, lightweight Apache distribution that makes it extremely easy for developers to create a local web server for testing purposes” (Micoluk, 2013). Este pacote possui todas as ferramentas necessárias para configurar um servidor web, uma aplicação de servidor (Apache), uma base de dados(MySQL) e uma linguagem de encriptação(PHP), permitindo aos utilizadores e web-designers testarem os seus programas sem estarem conectados à internet.

Das ferramentas que este pacote fornece demos apenas uso ao servidor Web do Apache - aplicação web do servidor que processa e disponibiliza a informação ao computador - e à base de dados do MySQL – necessária para armazenar os dados adquiridos/colecionados (Micoluk, 2013). É a ferramenta ideal para desenvolvimento e teste de aplicações em PHP e MySQL e demora menos tempo a instalar do que os seus componentes individualmente. Podem existir simultaneamente vários exemplares de XAMPP no mesmo computador. Permite ainda aos designers de páginas web e programadores testarem o seu trabalho nos seus próprios computadores mesmo sem acesso à Internet, funcionando o computador como cliente e servidor. Por último, o XAMPP também fornece apoio na criação e manipulação de bases de dados em MySQL e SQLite, entre outros.

(42)

Capítulo III – Enquadramento Tecnológico

21

3.4. Levantamento de Requisitos

Entende-se por requisitos “uma coleção de sentenças que devem descrever de modo claro, sem ambiguidades, conciso e consistente todos os aspetos significativos do sistema proposto. Eles devem conter informações suficientes para permitir que os implementadores construam um sistema que satisfaça os requerentes.” (Mello e Meyer, 2010:4).

Ainda de acordo com Mello e Meyer, “o levantamento de requisitos é uma das fases do processo de desenvolvimento de um sistema” (2010:1), ou seja, “é umas das partes mais importantes do processo que resultará no desenvolvimento de um sistema” (2010:2).

Podemos pois, afirmar que, para o desenvolvimento de um sistema funcional que seja realmente eficaz é indispensável um excelente levantamento de requisitos e o mapeamento desse processo (Mello e Meyer, 2010:6).

De acordo com Sommerville há três tipos de requisitos: funcionais, não funcionais e de domínio (2006). Os requisitos funcionais são “declarações de serviços que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações” (Sommerville, 2006:5). Os requisitos não funcionais possuem “restrições sobre serviços ou funções oferecidas pelo sistema tais como restrições de timing, restrições sobre o processo de desenvolvimento, padrões, etc.” (Sommerville, 2006:5). Por último, os requisitos de domínio surgem do “domínio de aplicação do sistema e que refletem as características desse domínio” (Sommerville, 2006:5).

Nesta investigação apenas serão utilizados os requisitos funcionais e os não funcionais. Em relação aos requisitos funcionais o que se pretende nesta investigação é que o programa elabore uma pergunta a partir da informação contida na base de dados, como o texto e as variáveis, tendo como referência o ano letivo do aluno e o tipo de pergunta. Depois de ser gerada a pergunta, a partir da formulação e, depois de se obter resposta, é armazenada na base de dados. Relativamente aos requisitos não funcionais, nesta investigação optamos por utilizar a linguagem de programação JAVA, do ambiente de trabalho IDE (Integrated Development Environment), ou seja, o Netbeans e as restantes ferramentas de programação MySQL e StarUML. Os temas das perguntas formuladas no programa são os seguintes: Ângulos, Frações, Probabilidades, Fórmula Resolvente para Equações do 2º Grau, Parábola, Gráficos, Teorema de Pitágoras, Triângulos, Organização e tratamento de dados. Serão elaboradas vinte perguntas de nove tipos de acordo com os temas acima expostos, por forma a demonstrar a viabilidade e eficiência de tal implementação.

(43)

Capítulo III – Enquadramento Tecnológico

(44)

Capítulo IV – Conceção e Implementação

23

CAPÍTULO IV – CONCEÇÃO E IMPLEMENTAÇÃO

A JDBC (Java Database Connectivity) consiste numa tecnologia de base de dados recorrente à linguagem JAVA, na sua plataforma de edição standard. Por outras palavras, consiste numa interface de programação de aplicações que descreve como os componentes do software interagem entre si, isto é, funcionam como bibliotecas que contêm classes-objeto, estruturas de dados variáveis e rotinas previamente concebidas para auxiliar nos processos necessários à sua construção. Desta forma, neste capítulo será exposta, através de diagramas, a interligação entre a aplicação JAVA e a Base de Dados (MySQL), bem como o diagrama de classes utilizado na aplicação.

4.1. Análise do Sistema

De modo a clarificar e explicitar a resolução do problema serão descritos dois diagramas distintos. O primeiro (Figura 6) é o diagrama lógico na sua forma mais simples das ferramentas necessárias para proceder aos testes preliminares, antes da sua implementação, a título definitivo, na plataforma matUTAD. O segundo (Figura 7) consiste num diagrama de classes, onde será descrita a estrutura, na qual o programa se baseou, para a elaboração da superclasse Pergunta.java e das suas subclasses, descrevendo e demonstrando os respetivos atributos e métodos, com as suas especificidades de partilha, requeridos para a sua finalização.

O paradigma das classes origina-se a partir de um processo de abstração onde são assimilados os objetos preponderantes para o denominado sistema. Um objeto é um acontecimento que possui relevância para o prosseguimento da aplicação e cuja função consiste na descrição do seu ambiente, contendo a identidade e o comportamento. Posto isto, poderemos então proceder à descrição dos presentes diagramas.

Fonte: Elaboração Própria Figura 6 – Diagrama Lógico da Aplicação

(45)

Capítulo IV – Conceção e Implementação

24 O diagrama acima exposto (Figura 6) pretende demonstrar a ligação entre a aplicação JAVA criada e a respetiva base de dados, através da JDBC. É pertinente realçar que, sem este elemento, o processamento de perguntas e sua interligação à base de dados não seria possível, do mesmo modo que o resultado adquirido na aplicação, será no final, novamente, reportado à base de dados. Como é possível denotar estes dois elementos encontram-se em constante atualização, devido à natureza do programa.

Assim, os diagramas de classes fazem uma descrição formal da estrutura dos objetos relevantes no contexto que se pretende modelar, de acordo com as características comuns em termos de propriedades e de comportamento (operações). Os diagramas de classe têm ainda, como finalidade, mostrar a estrutura de classes e como essas se relacionam. O intuito deste tipo de esquema é que fornece uma base prática para a implementação do sistema.

(46)

Capítulo IV – Conceção e Implementação

25

Fonte: Elaboração Própria Figura 7 – Diagrama de Classes

(47)

Capítulo IV – Conceção e Implementação

26

4.2. Modelo de Desenvolvimento de Software

O modelo de desenvolvimento de software é uma representação de objetos e atividades integradas no processo de software, ou seja, uma combinação de métodos abrangentes no que diz respeito às fases de desenvolvimento do software.

De acordo com Ramos (2012) “existem vários modelos de processo de software (ou paradigmas de engenharia de software”, em que “cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica”.

Desta forma, Ramos (2012), indica que existem cinco modelos de desenvolvimento de software: sequencial linear (ou cascata) baseado em componentes, prototipagem, espiral e processo unificado. O modelo sequencial linear (ou em cascata) consiste numa abordagem sistemática e sequencial ao desenvolvimento de software. O modelo baseado em componentes assenta em tecnologias orientadas a objetos. O modelo de prototipagem procura compreender os requisitos do utilizador para obter mais informações relativas aos requisitos do sistema (Ramos, 2012). O modelo espiral integra a natureza interativa da prototipagem com os aspetos sistemáticos do modelo cascata. Por último, o modelo do processo unificado possui um

“conjunto de atividades bem definidas, com responsáveis, com artefatos de entrada e saída, com dependências entre as mesmas e ordem de execução, com modelo de ciclo de vida, descrição sistemática de como devem ser realizadas, guias (de ferramentas ou não),

templates, utilizando diagramas de UML” (Ramos, 2012).

No presente trabalho, no desenvolvimento do software foi utilizado o modelo de prototipagem, dado que este modelo “possibilita que o desenvolvedor crie um modelo (protótipo) do software que deve ser construído e apropriado para quando o cliente não definiu detalhadamente os requisitos” (Ramos, 2012).

Ou seja, quando o cliente define os objetivos gerais do software a ser elaborado, mas não especifica claramente as características que pretende ao nível dos requisitos de entrada, processamento e saída, leva a que o programador duvide da forma como se processará a interação homem-máquina e, de forma a atingir o que o cliente pretende, utilizando o modelo da prototipagem, pode pedir ao cliente para testar o programa à medida que vai sendo desenvolvido, de forma a ter em atenção todos os aspetos que o cliente deseja.

(48)

Capítulo IV – Conceção e Implementação

27

4.3. Arquitetura

A aplicação utiliza uma base de dados em MySQL, que interage com a aplicação em JAVA. A aplicação tem duas componentes principais: a Janela, que trata da parte visual da aplicação; e a Pergunta, que trata da parte lógica da aplicação. Nesta classe encontra-se o esqueleto que será utilizado em cada uma das perguntas, como por exemplo ligar à BD (Base de Dados), consultar dados e guardar respostas. Depois cada tipo de pergunta que herda da classe Pergunta.java, tem as suas especificidades, atributos e métodos, que iremos descrever mais detalhadamente no secção Pergunta.

Figura 8 - Arquitetura da aplicação matUTAD

4.3.1. Janela

É na janela que vai ser apresentada a pergunta, com a respetiva ilustração (opcional) e opções de resposta. Para iniciar a aplicação, devemos escolher no spinner o ano de escolaridade pretendido e clicar no botão Nova Pergunta, conforme ilustrado na figura seguinte.

(49)

Capítulo IV – Conceção e Implementação

28 Após o clique em “Nova Pergunta”, a aplicação gera automaticamente uma pergunta aleatória, onde pode utilizar um texto (TXT1) ou dois textos (TXT1 e TXT2) acrescidos das variáveis específicas dos mesmos, para compor a pergunta a apresentar. Caso a pergunta tenha uma ilustração, esta é desenhada na janela. As hipóteses geradas para a pergunta são mostradas na canvas. Algumas estão corretas e outras não. A estrutura da pergunta vem da base de dados, ou seja, da tabela estruturapergunta. Consoante o tipo de pergunta, cada classe calcula as hipóteses a apresentar de modo diferente, como iremos descrever no Capitulo 4.4.

Figura 10 – Componentes da Janela

A AreaDesenho é uma subclasse do componente Jpanel, sendo este um “contentor que consiste num painel ao qual se podem adicionar outros componentes.” (Jesus, 2013) que pertence ao pacote Swing do JAVA ajudando na organização dos mesmos e onde são adicionadas as ilustrações, como os desenhos, os gráficos, as frações ou shapes, isto é, triângulos, segmentos de reta para obtenção de ângulos.

Quando tentam validar a resposta sem ter selecionado nenhuma, aparece uma janela de erro (Figura 11). Podem ser escolhidas mais do que uma resposta.

(50)

Capítulo IV – Conceção e Implementação

29

Figura 11 – Janela de Ausência de Resposta 4.3.2. Pergunta

A Pergunta.java é uma classe abstrata, isto é, designa um modelo base para as suas subclasses associadas.

Figura 12 – Classes de Perguntas

Em relação à Figura 12, classes de perguntas, podemos verificar que a Pergunta serve de base para estruturar vários tipos de perguntas, com diversos temas, que serão completadas com a informação necessária.

(51)

Capítulo IV – Conceção e Implementação

30 Há variáveis comuns a todas as perguntas, como a valida (tem o valor verdadeiro se há uma estrutura de pergunta com o tipo e ano indicados), o tipo de pergunta (que vai indicar qual o tipo a consultar na base de dados), o ano da pergunta (ano de escolaridade), o nível de dificuldade (1-3) e o id (identificação da pergunta, caso o utilizador necessite de a rever e para guardar a ilustração da pergunta) (ver Anexo A – Classe Pergunta.Java).

Podemos pois afirmar que muito embora a classe Pergunta.java abranja estes métodos, tais como getTextoPergunta (ir buscar o texto composto com informação da base de dados e texto calculado a cada iteração), o getSolucoes (devolve as soluções calculadas para a pergunta), getValida (se é possível gerar uma pergunta do tipo e ano pedido), LigarBD (para estabelecer a ligação à base de dados), o gravarPergunta, (grava na tabela Perguntas da base de dados, com a pergunta final e as respostas do utilizador e imagem, data da pergunta). Teremos por isso de considerar, simultaneamente, que também outros métodos existem herdados da Pergunta.java (ex: constroiDesenho(), controiPergunta()) reportados para as subclasses da Pergunta.java.

Se for necessário alterar os dados de acesso à base de dados, isto deve ser alterar do no ficheiro Pergunta.java, no método LigarBD (Ver figura 13).

Figura 13 – Métodos comuns a todas as perguntas

4.3.3. Base de dados

Após a formulação de perguntas, as mesmas são armazenadas numa base de dados em MySQL.

Foi arquitetada a Base de Dados (Figura 14) segundo os parâmetros apresentados nas tabelas: estrutura das perguntas (estruturapergunta), perguntas armazenadas (perguntas) e tipos de pergunta (tipos).

(52)

Capítulo IV – Conceção e Implementação

31

Figura 14 – Tabelas da Base de Dados

A primeira tabela (Figura 15), denominada estruturapergunta consiste em parâmetros específicos para a criação das questões matemáticas, que podem também ser mapeadas não permitindo quaisquer combinações, à exceção no sentido horizontais.

Figura 15 – Estrutura de Pergunta

A segunda tabela é apelidada de perguntas (Figura 16) e tem como finalidade o armazenamento de todos os dados relativos às perguntas geradas pela aplicação, bem como, as respostas indicadas pelo utilizador (aluno).

(53)

Capítulo IV – Conceção e Implementação

32

Figura 16 – Tabela Pergunta

A terceira e última tabela tipos (Figura 17) corresponde à tipologia de perguntas que podem ser geradas.

(54)

Capítulo IV – Conceção e Implementação

33

4.4. Temas Abrangidos 4.4.1. Ângulos

Rosa, Neves e Vaz (2010:12) indicam que “duas semirretas com a mesma origem determinam no plano duas regiões – cada uma delas é um ângulo. A unidade de medida considerada são os graus (º), nunca ultrapassando os 360º (ângulo giro). A medida do ângulo encontra-se relacionada com a amplitude do mesmo. Há vários tipos de ângulos, sendo eles:

- Agudo: 0⁰ < 𝐴Ô𝐵 < 90⁰ - Reto: 𝐴Ô𝐵 = 90⁰

- Obtuso: 90⁰ < 𝐴Ô𝐵 < 180⁰ - Raso: 𝐴Ô𝐵 = 180⁰

Para evitar más interpretações, ou geração de figuras dúbias, a aplicação gera apenas ângulos entre 30º a 180º, múltiplos de 15º graus. Deste modo, o ângulo giro/nulo foi descartado porque ultrapassa esses limites. No método desta classe, constroiSolucoes, contido na classe perguntaAngulos , o ângulo é construído utilizando a seguinte fórmula:

anguloCorrecto = 15 + numeroAletorio(11) * 15

É pertinente referir que todos os ângulos utilizados no estudo, são definidos como ângulos convexos (𝐵Ô𝐴), conforme ilustrado na figura 18.

Figura 18 – Classificação de Ângulos

Ao ser gerada a pergunta, o ângulo construído é o único “ângulo correto”. As quatro opções de resposta são sempre apresentadas na mesma ordem (agudo, reto, obtuso e raso), devido às instruções pertencentes ao método ConstroiSolucoes desta classe.

Imagem

Figura 2 – Registo dos Professores
Figura 3 - Registo dos Alunos
Figura 5 – Ausência de seleção de resposta
Figura 8 - Arquitetura da aplicação matUTAD
+7

Referências

Documentos relacionados

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

As IMagens e o texto da Comunicação (com as legendas incluídas) devem ser enviadas por correio eletrônico. Comitê

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Após retirar, da maré observada, o valor da maré teórica, aplicou-se uma linha de tendência aos dados resultantes, a qual representa a variação do nível médio das águas no

Sendo os resultados experimentais (verde) obtidos nas amostras sem desvolatilizacão da Figura 37, fizeram-se a descrição feita acima onde a media final serviu

A solução, inicialmente vermelha tornou-se gradativamente marrom, e o sólido marrom escuro obtido foi filtrado, lavado várias vezes com etanol, éter etílico anidro e

Quando o pai novamente pode perceber que ali, onde via a síndrome, havia antes de tudo um bebê, que precisava de seus cuidados e carinho para se fazer cumprir a promessa de “vir