|
Acadêmico(a): Gabriel Takashi Katakura |
Título: FERRAMENTA DE APOIO AO ENSINO INTERATIVO DE EXPRESSÕES REGULARES |
|
Conclusão: |
Com o desenvolvimento deste trabalho, todos os objetivos propostos foram alcançados. O resultado deste trabalho foi uma aplicação web, que serve como uma ferramenta do apoio ao ensino sobre expressões regulares e o acompanhamento em tempo real do andamento das atividades. Para o desenvolvimento deste trabalho foi realizado um estudo sobre o React, que serviu como a principal ferramenta de montagem das telas. O React foi uma escolha adequada. Como o mesmo é somente uma biblioteca para controles visuais, sua simplicidade permitiu a criação de novas telas na ferramenta com facilidade, além de um reaproveitamento de código adequado para a padronização das telas. Porém, por ser somente uma biblioteca, outras ferramentas precisaram ser estudadas para atender todos os objetivos propostos neste trabalho. A biblioteca Redux, que serve como um gerenciador de estado global da aplicação, facilitou o desenvolvimento de telas que acompanhassem alteração de dados em tempo real, permitindo reaproveitar os mesmos modelos de dados entre toda a aplicação. Contudo, o Redux criou várias camadas de indireção, isto acabou consumindo mais tempo em como definir uma arquitetura adequada para a ferramenta. Por fim, a escolha de usar JavaScript como linguagem principal da ferramenta, sendo utilizada tanto no servidor como no cliente, foi o maior benefício encontrado no desenvolvimento deste trabalho. Foi possível reaproveitar regras de negócios em ambos os lados e a maioria das funcionalidades da ferramenta foram encontradas e integradas ao projeto por causa da vasta quantidade de bibliotecas já desenvolvidas para esta linguagem. A maior dificuldade encontrada no trabalho foi a escolha da biblioteca regex2dfa para a transformação de expressões regulares em autômatos finitos determinísticos mínimos. Como a biblioteca retorna um texto do autômato finito analisado, dependendo da expressão regular utilizada, o processamento torna-se pesado demais para a máquina e causa um estouro de memória no Node.js. A expressão (a|b)*(aa|bb)(a|b){10}, por exemplo, causa este tipo de problema, em função da quantidade de ocorrências ({10}) da subexpressão (a|b). A única solução encontrada foi trocar a biblioteca, mas por causa do estágio de desenvolvimento em que o problema foi encontrado, essa troca não foi efetuada. Contudo, com os testes aplicados em sala de aula, não houve nenhum momento em que está falha tenha ocorrido. O problema ocorre somente com casos bem específicos. Por fim, com o desenvolvimento deste trabalho, acredita-se que o mesmo possa contribuir para o estudo de como desenvolver ferramentas voltadas ao ensino de expressões regulares, visto que não foi encontrado nenhum trabalho correlato que tivesse a mesma abordagem apresentada neste trabalho. Também presume-se que este trabalho contribua para o estudo de como desenvolver uma aplicação usando somente uma linguagem de programação, permitindo um alto grau de reaproveitamento de código entre todas as partes de um projeto. |
|
|