• Nenhum resultado encontrado

4.3 Ferramentas Utilizadas

4.3.2 Django

Django é uma framework desenvolvida em Python, e é baseado no padrão de arquitec- tura modelo-vista-controlador. Neste padrão, o modelo representa os dados da aplicação (de uma forma simplificada, um modelo corresponde a uma tabela na base de dados), enquanto que a vista é responsável por exprimir o estado do modelo, através da aceitação de pedidos e consequente envio de respostas (a vista está muitas vezes associada a uma janela de visualização, mas não é mandatário que tal aconteça). Por fim, o controlador é responsável pela interpretação das acções de entrada do utilizador, e o respectivo envio para o modelo e para a vista [51].

Esta framework é ainda caracterizada pela filosofia empregue pelos seus criadores, da qual se destacam os seguintes princípios [52]:

• Menos código - assenta na ideia de que mais código traduz-se em mais erros, o que se traduz num maior tempo de desenvolvimento;

• Menos duplicação - a redundância deve ser evitada, ou seja, cada conceito dis- tinto deve estar num, e apenas um, sítio;

• Acoplamento fraco - consiste na ideia de que cada elemento deve ser tão in- dependente dos restantes quanto possível, o que permite adicionar, remover e até migrar elementos e funcionalidades de uma aplicação para outra facilmente; • Explicitude - deve-se evitar a complexidade do sistema. Um sistema mais simples

e explícito é de mais fácil leitura, e permite uma melhor aprendizagem por parte de novos desenvolvedores.

Como referido na secção 2.7.2, o back-end de uma aplicação tem uma relação muito íntima com a base de dados. Neste campo, Django apresenta suporte para um grande número de sistemas de gestão de bases de dados, incluindo todos os mencionados na an- teriormente, e possibilitando a substituição deste sistema de uma forma rápida e simples [53].

O Django é ainda uma ferramenta muito utilizada, principalmente nas comunidades open-source, o que resulta numa grande comunidade online. Como já foi referido na secção anterior, o facto de uma ferramenta possuir uma grande comunidade é valorizado no âmbito desta dissertação, pois existe uma forte probabilidade de existirem resoluções online para problemas semelhantes aos passíveis de serem encontrados. A sua vasta popularidade, associada aos seus princípios de desenvolvimento e vasta documentação, tornam esta numa das ferramentas indicadas para novos desenvolvedores de aplicações web.

4.3.3 AJAX

AJAX, ou Asynchronous JavaScript and XML, é uma tecnologia que permite aumen- tar o grau de interactividade de uma página web. A abordagem clássica destas páginas consistia num pedido HTTP através da interacção do utilizar. Esta tecnologia permite a realização destes pedidos de forma automática, sem que seja necessário recarregar a página para visualizar a resposta. Isto torna as páginas web muito mais dinâmicas, e permite a utilização destas aplicações para, por exemplo, validar a introdução de dados numa página por parte do utilizador ou monitorizar e controlar em tempo real dispositi- vos IoT que se encontrem ligados à mesma rede [54, 55].

4.4 Considerações Adicionais

O sistema deve ser composto por duas partes: um terminal individual, através do qual os alunos poderão responder a questões de escolha múltipla, e uma estação base- receptora, que recebe e processa as respostas vindas dos terminais, para além de servir de servidor para a aplicação web, através da qual os professores poderão criar e realizar questionários.

O terminal deve ser de dimensões reduzidas, uma vez que se pretende que este seja portátil. Para além disso, o terminal desenvolvido deverá ser robusto o suficiente para a realização de testes de escalabilidade em ambiente realista.

A aplicação deverá correr num browser, de forma a ser independente do sistema ope- rativo da máquina e para poder ser acedido de forma remota. Esta aplicação, cujo público alvo são os docentes das Unidades Curriculares, deverá ser intuitiva e fácil de utilizar, de forma a que mesmo os utilizadores menos dotados de aptidão tecnológica a consigam utilizar sem problemas. A aplicação deverá ainda possibilitar a criação de questionários, anónimos ou não, que devem estar associados ao utilizador (professor) e a uma Unidade Curricular, para além de permitir a exibição dos mesmo e processamento das respostas submetidas pelos alunos. De forma a garantir que cada utilizador da aplicação apenas tem acesso aos questionários e respostas a si associados, torna-se necessária a existência de contas de utilizador, protegidas por palavra-chave.

Uma vez que é da maior importância garantir que apenas os alunos presentes na sala de aula são capazes de responder aos questionários, é necessária a utilização de uma rede local. Esta rede deve ser criada por um router presente na sala, ao qual se conectam todos os terminais individuais e estação base-receptora.

De forma a dificultar a partilha de credenciais, o cartão de estudante deve permanecer presente no terminal até a resposta ser enviada, pretendendo-se com isto diminuir o risco de falsificação de identidade por parte dos inquiridos. Para evitar a partilha de terminais, para um dado questionário, apenas uma resposta deve ser validada por dispositivo, que deve ficar também associado ao aluno que o utiliza. Contudo, no caso dos questionários anónimos, deve ser dada a possibilidade aos alunos de responderem aos questionários sem a presença do seu cartão de identificação. Por consequência, o terminal deixa de estar associado a um determinado aluno, permitindo a partilha de terminais. Isto poderia levar a um número excessivo de respostas, pelo que é necessário garantir que mesmo nestas condições, apenas uma resposta será validada por terminal.

O terminal deve ainda ser, do ponto de vista da lógica de operação, o mais simples possível. Assim, todas as questões relaccionadas com o anonimato do questionário ou

autenticação do aluno devem recair sobre o servidor da aplicação. O esquema da figura 4.2 procura exemplificar o modo de funcionamento e de comunicação do sistema proposto.

Figura 4.2: Diagrama representativo do envio, recepção e processamento de respostas do sistema proposto.

Desenvolvimento da Aplicação WEB

A utilização da framework Django para o desenvolvimento do back-end da aplicação possibilita a utilização de ferramentas e funcionalidades pré-definidas, como a criação de contas de utilizador e encriptação das suas palavras-chave, ou a utilização de uma página de administração. A página de administração, que vem por defeito com esta framework, é particularmente interessante pois possibilita a gestão e, até certo ponto, a manutenção da aplicação sem ser necessário recorrer ao terminal. Por outro lado, a encriptação automática das palavras-chave dos utilizadores acrescenta uma camada de segurança ao sistema de autenticação, uma vez que ninguém, nem mesmo os administradores, têm acesso às senhas dos restantes utilizadores.

Contudo, para além das vantagens out of the box que esta ferramenta proporciona, é necessário que toda a estrutura de código siga um padrão pré-estabelecido.

Neste capítulo é exposto, de forma resumida, a arquitectura da aplicação concebida. Numa primeira fase, são explicados os principais elementos da aplicação, do ponto de vista do seu desenvolvimento, seguindo-se o modelo de relações entre registos da base de dados. É ainda apresentado o processamento lógico por detrás da realização de um inquérito e, por fim, são discutidas e justificadas algumas tomadas de decisão relativamente a acções que ocorrem no cliente e no servidor.