Escolar Documentos
Profissional Documentos
Cultura Documentos
30 de Novembro de 2020
RESUMO
Este projeto tem como objetivo criar uma plataforma para auxiliar estudantes de inglês a terem um espaço
gratuito e acessível para a prática do idioma oral. O trabalho analisa o cenário atual do ensino de línguas através de
tecnologia, plataformas já existentes que possuem no mercado resultando em um projeto que soluciona a
inacessibilidade das mesmas, sendo assim, sugere uma plataforma gratuita voltada para estudantes de inglês. A
plataforma é desenvolvida para a web, utilizando a linguagem de programação Javascript com o MongoDB, um
programa de banco de dados NoSQL.
Palavras-chave: Aplicações de inglês; Tecnologias para ensino; Aplicações para WEB.
AB STRACT
Title: “Web application for english conversation practice”
This project aims to create a platform to help English students to have a free and accessible space for the
practice of oral language. The work analyzes the current scenario of language teaching through technology,
platforms that already exist in the market resulting in a project that solves their inaccessibility, thus suggesting a free
platform for English students. The platform is developed for the web, using the Javascript programming language
with MongoDB, a NoSQL database program.
Key-words:English applications; Teaching technologies; WEB Applications.
1 INTRODUÇÃO
Este projeto tem como principal objetivo criar uma plataforma gratuita a fim de acessibilizar o
ensino e a prática do idioma da língua inglesa. A aplicação terá como foco a prática da conversação que hoje
é pouco explorada em escolas e cursos de idiomas que trabalham com metodologias mais tradicionais de
ensino.
O sistema será desenvolvido em plataforma WEB e entregará uma forma mais facilitada e acessível
para exercitar o idioma em qualquer lugar, em todos os níveis de conhecimento e para falantes do mundo
todo que estão estudando a língua inglesa como segunda língua. Ele terá como função principal cadastrar
estudantes de inglês que estão procurando outros estudantes com nível de inglês parecido para, através de
vídeo chamada, praticar o idioma. Aliás, o sistema terá a funcionalidade de selecionar o aluno com base no
seu nível de inglês além de selecionar tópicos pré-estabelecidos para auxiliar com que a comunicação seja
completamente em inglês.
1
Artigo elaborado como modelo e exemplo de documento de estilos para elaboração de artigos.
2
Acadêmico do curso de Análise e Desenvolvimento de Sistemas
3
Professor dos Cursos de Computação da Ulbra e Orientador do trabalho.
1
2 FUNDAMENTAÇÃO TEÓRICA
Diante do desenvolvimento tecnológico dos meios de comunicação da última geração, a internet se
tornou um objeto extremamente utilizado no dia a dia das pessoas. Com o acesso a internet, o uso de
celulares, por exemplo, para apenas realizar ligações e trocar mensagens via SMS tornou-se obsoleto, pois,
atualmente, seu uso passou a ser incluído nas atividades rotineiras das pessoas como, por exemplo, redes
sociais, transações bancárias e estudos.
O uso de computadores e dispositivos móveis com acesso a internet para estudar se tornou uma
prática muito procurada por alunos para exercitar o estudo além da sala de aula, fazendo com que a demanda
por tecnologias voltadas para o ensino de línguas crescesse, uma vez que, conforme afirma Farias (2013), o
uso de ferramentas tecnológicas no processo ensino aprendizagem é importante para fomentar os recursos
didáticos, auxiliar na inclusão digital, além de possibilitar o compartilhamento de informações e experiências
entre os educandos.
Tendo em vista a situação no qual o ensino oral da língua inglesa está, uma solução para melhorar
esse cenário, é levar ao aluno uma maneira mais prática e acessível para que o mesmo alcance seus objetivos
de forma eficiente e facilitada, sendo assim, utilizando a tecnologia. Para complementar, Mousquer e Rolim
(2011), mostram o auxílio que o uso da tecnologia voltado para a aprendizagem de crianças pode trazer
como, aumento da autonomia, estímulo da criatividade, exploração provocada pela curiosidade,
desenvolvimento sensório-motor e o fator de errar sem medo, diminuindo a pressão no aprendizado.
Atualmente há dois aplicativos famosos que possuem objetivos parecidos para a prática de
conversação para estudantes de inglês que são os aplicativos Italki e Cambly. De uma forma geral, as
plataformas Cambly e Italki tem propostas, configurações e público alvo parecidos: plataformas para praticar
o idioma com falantes estrangeiros. Entretanto, existem algumas diferenças que serão analisadas e também
apresentadas no decorrer deste trabalho.
2
marcação mais utilizada nos navegadores atualmente, ela se apresenta com bastante limitações quando se
trata de funcionalidades que permitem o desenvolvimento de interatividade avançada para a página.
Não há como fazer funcionar um formulário HTML com uso de elementos HTML. A
HTML limita-se a criar os rótulos e campos de um formulário a serem preenchidos e nada
mais. Com o HTML, não conseguimos processar os dados nem mesmo enviá-los para o
servidor ou a outra máquina qualquer. Para cumprir essas tarefas, é necessário utilizar um
programa que consiga manipular e processar os dados. (SILVA, 2010, p.23).
Portanto, para adicionar funcionalidades mais complexas em páginas da web, o desenvolvimento
passa a ser feito com linguagens de programação que, por sua vez, promovem funções mais avançadas de
interatividade que linguagens de marcação não suportam. Segundo Silva (2010), as linguagens de
programação que atuam no processo e manipulação de dados foram desenvolvidas para atuar do lado do
servidor, server side, isto quer dizer que, para funcionarem, essas linguagens se comunicam com o servidor
que por sua parte, processa e envia para o navegador uma resposta.
Além das linguagens server-side, existem também linguagens de programação que atuam do lado do
cliente, denominadas client-side, onde a comunicação é feita com o navegador. Conforme Silva (2010)
“JavaScript é uma linguagem desenvolvida para rodar ao lado do cliente, isto é, a interpretação e o
funcionamento da linguagem dependem de funcionalidades hospedadas no navegador do usuário”. Ou seja,
aplicações client-side como as desenvolvidas com Javascript não necessitam de processamento de servidor
para efetuar determinada tarefa.
Conforme Silva (2010), foi com o intuito de fornecer à plataforma web uma forma de adicionar
recursos mais complexos no quesito interatividade com o usuário, que, em 1995 a Netscape em conjunto da
Sun Microsystems, deram origem à linguagem de programação Javascript, uma linguagem que se tornou
padrão para a maior parte dos navegadores e consequentemente da plataforma Web para o desenvolvimento
client-side. No decorrer deste projeto será apresentado detalhadamente um estudo acerca da linguagem de
programação Javascript que será, aliás, utilizada no desenvolvimento do sistema proposto.
3
Gráfico 1 - Principais dificuldades associadas à formação de professores
Fonte: Pesquisa “O Ensino de Inglês na Educação Pública Brasileira” British Council/Plano CDE.
Base: 1247 (ponderada)
Como pode-se observar na pesquisa sobre o ensino de inglês na educação brasileira apresentada na
Figura 2, o maior desafio apontado sobre as dificuldades durante a formação de professores de inglês é não
ter oportunidades para exercitar a prática da conversação na língua inglesa. Uma vez que não há recursos
apropriados, gratuitos ou acessíveis para educadores colocarem em prática a oralidade, também reflete em
seus alunos, causando o não-exercício dessa habilidade em específico por todos. Como afirma Silva (2014),
por consequência da falta de um ambiente adequado, o pouco conhecimento com a língua falada obtido
torna-se a cair no esquecimento com muita facilidade.
5 OBJETIVO
O principal propósito deste trabalho é entregar, de uma forma gratuita e acessível, uma aplicação para a
prática da conversação da língua inglesa que irá auxiliar estudantes de inglês a terem um espaço adequado
para exercerem a prática do idioma de forma oral com outros estudantes com nível de conhecimentos da
língua parecidos. Para isso, será realizada uma entrevista com alunos e professores de cursos de idiomas e
também serão analisados o cenário atual do ensino de línguas através de tecnologia e plataformas já
existentes que estão disponíveis atualmente no mercado além dos motivos que levam a inacessibilidade das
mesmas.
6 METODOLOGIA
Durante o desenvolvimento do projeto de software será utilizado a metodologia em espiral para
desenvolvimento de softwares proposta por Pressman e Maxim (2016). O modelo espiral levanta seis etapas
para o desenvolvimento de um sistema, no entanto, neste projeto será utilizado apenas quatro delas pois, no
estudo da metodologia em específico, foi possível perceber, assim como mostra a Figura 3, que as etapas de
4
formulação e planejamento podem ser incluídos juntos à etapa de análise.
Figura 3 - Metodologia proposta por Pressman e Maxim (2016) adaptada para este projeto
Fonte: O autor.
A Figura 2 está apresentando uma adaptação da metodologia em espiral que foi proposta por Pressman e
Maxim (2016) e que será utilizada no desenvolvimento desse projeto. Com base nesse modelo, pode-se
observar que as etapas percorridas serão análise, engenharia, implementação e testes e, por fim, avaliação de
usuário. A seguir será feito um estudo detalhadamente de cada uma das fases do modelo proposto.
6.1. Análise
Em um primeiro momento, foi por meio de uma experiência do autor e posteriormente em conjunto de
uma análise acerca de opiniões por meio de entrevistas com estudantes e também com professores em cursos
de idiomas que, ao perceber as dificuldades e obstáculos encontrados ao exercer a prática de conversação do
inglês, tornou-se perceptível a necessidade de uma solução que melhor atendesse os alunos na hora de
colocar em prática o idioma aprendido. Por consequência disso, essas percepções serviram como estímulo
para o surgimento do presente trabalho.
Como dito anteriormente, durante o surgimento do presente projeto foi realizada uma entrevista
utilizando a plataforma de gerenciamento de pesquisas da Google - Google Forms, disponibilizada na
internet com alunos e professores em duas famosas escolas de idiomas das cidades de Gravataí e
Cachoeirinha, ambas do Rio Grande do Sul. As escolas que participaram do estudo foram CCAA e ITALK e
os entrevistados têm idades entre 12 e 45 anos, possuindo diferentes níveis de conhecimento da língua
5
inglesa - básico, intermediário, avançado e fluente. A seguir serão apresentadas as perguntas que foram
disponibilizadas para as escolas participantes da pesquisa.
Além de entrevistar alunos e professores de escolas de idiomas, para o processo de coleta de requisitos
também foi necessário fazer uma análise das principais aplicações conhecidas no mercado voltados para a
prática de conversação para estudantes de inglês: Cambly e Italki. Com isso, nesse estudo tornou-se possível
o entendimento das principais funcionalidades e características de cada um dos aplicativos citados.
Como dito anteriormente, atualmente existem no mercado duas aplicações populares voltadas para a
prática de conversação para estudantes de inglês que são os aplicativos Italki e Cambly. Entretanto, ambas
têm propostas parecidas: prática do idioma com falantes nativos da língua inglesa através de uma plataforma
de vídeo paga.
O aplicativo Cambly é uma plataforma para dispositivos móveis e computadores que oferece aulas
individuais voltadas para a prática da conversação com professores nativos de países que possuem a língua
inglesa como língua materna. Com seu uso, o aluno pode filtrar um professor por disponibilidade do
aluno/professor, tipo de aula (prática de conversação, aula de gramática, inglês para negócios, preparação
para testes e cultura), nível de aula (iniciante, intermediário e avançado), perfil do professor como a Figura 3
apresenta. Além disso, a plataforma disponibiliza que o aluno favorite um professor para que possa ter aula
novamente com o mesmo. Cada professor possui uma avaliação feita por alunos de 1 até 5 e pode cadastrar
informações para popular seu perfil como: nome, foto de perfil, vídeo descritivo, idioma que fala,
especialidades, interesses, formação profissional, experiência de ensino e horários disponíveis para realizar
aulas assim como apresentado na Figura 4. Além de que, pode-se perceber pela Figura 4 que o aplicativo
exibe também o número de aulas já realizadas pelo professor.
6
Fonte: o autor
Fonte: o autor
7
Além disso, as aulas disponibilizadas pela plataforma Cambly são realizadas por meio de vídeo
chamada e são gravadas e oferecidas na plataforma para que o aluno possa visualizar novamente de uma
forma que o aluno possa revisar o conteúdo. A plataforma disponibiliza para o aluno também uma sessão
chamada Currículos, onde são listados módulos que ensinam habilidades importantes do inglês para a vida
diária, trabalho e viagens. Para utilizar a plataforma o aluno precisa assinar um plano mensal ou anual
definindo a quantidade de minutos que o aluno pode acessar por semana assim como é apresentado pela
Figura 5.
Fonte: o autor
Já o aplicativo Italki é uma plataforma que disponibiliza professores para aprender diversos idiomas,
inclusive inglês. Suas principais funcionalidades são: o aluno pode filtrar um professor por nacionalidade,
disponibilidade do aluno/professor, tipo (professores profissionais e tutores da comunidade), categoria (geral,
negócios, preparação de provas, crianças, prática de conversação) e idioma, que o professor cadastrado não
precisa ser de fato um nativo daquele idioma, havendo um filtro onde o aluno pode escolher se terá aula com
nativo ou com um falante/estudante da língua assim como a Figura 7 apresenta. Além disso, o sistema
disponibiliza que o aluno favorite um professor para que possa ter aula novamente com o mesmo. Cada
professor pode cadastrar nome, foto de perfil, idiomas que fala e seus níveis respectivos, sendo do iniciante
até nativo, nacionalidade, vídeo descritivo, descrição de perfil, disponibilidade de horário, tipos de aula e
preço por aula. Também pode receber uma avaliação escrita e uma nota de 1 até 5 de cada aluno. O
aplicativo exibe no perfil do professor a quantidade de alunos e aulas que possui.
8
Fonte: o autor
Tabela 1: Comparativo de uma simulação de preço mensal de aulas por minuto feitas uma vez na
semana nas plataformas Cambly e Italki
Minutos Cambly Italki
Fonte: o autor
A Tabela 1 apresenta dados de uma simulação de preços de aulas realizadas por minutos nas
plataformas Cambly e Italki. Na plataforma Italki foi feita uma simulação de uma aula de um professor cujo
preço estabelecido era de R$ 32,10 por 30 minutos e R$ 80,25 por 60 minutos. Em um primeiro momento foi
feito uma simulação de uma compra de 30 e 60 minutos de aulas realizadas uma vez por semana em ambas
as plataformas onde foi possível notar que os preços da aplicação Cambly foram mais caros do que os da
Italki.
De uma forma geral, as plataformas Cambly e Italki tem propostas, configurações e público alvo
parecidas: plataformas para estudantes praticarem o idioma com falantes estrangeiros. Apesar dessas
plataformas terem objetivos parecidos, existem algumas diferenças que foram analisadas, estas são: Em
ambas as plataformas, no primeiro acesso, o aluno submete seu e-mail e senha. Entretanto, no aplicativo
Italki, um formulário é disponibilizado para que o aluno cadastre seu idioma de aprendizagem, nível de
conhecimento da língua estrangeira, língua materna, localidade e fuso horário. No Cambly as informações do
9
aluno podem ser cadastradas posteriormente na sessão de configuração de conta. Além disso, o pagamento
de ambas as plataformas são diferentes: enquanto pelo Italki, como a Figura 8 mostra, o aluno adiciona
crédito à plataforma para acessar aulas e, para cada aula, o próprio professor cadastra um valor. No Cambly,
o aluno assina um plano que define minutos por mês para ter acesso às conversações com os nativos como
foi apresentado na Figura 6. Além disso, foi observado que as duas plataformas disponibilizam a forma de
pagamento com cartão de crédito, porém a Italki também proporciona para o aluno realizar o pagamento via
Paypal, transferência bancária/internacional ou via eWallet. Outra diferença que também foi analisada no
estudo entre as plataformas é que o Cambly tem como foco a língua inglesa, enquanto o Italki, oferece
conversação de diversos idiomas, variando conforme os professores cadastrados.
Fonte: o autor
6.2. Engenharia
Conforme afirma Guedes (2007) a UML (Linguagem de Modelagem Unificada) é uma linguagem visual
para modelar sistemas computacionais que, nos últimos anos, se tornou uma linguagem padrão para modelar
softwares. Com isso, a utilização da UML passou a ser uma etapa primordial no processo de
desenvolvimento de um novo software uma vez que, como destacou Guedes (2007), ela é capaz de auxiliar a
documentar o projeto antes da criação do mesmo, definindo suas características, tais como os requisitos,
comportamentos, estrutura e dinâmica de processos por meio de diagramas, como por exemplo, caso de uso,
atividades e sequência.
Sendo assim, considerando as respostas coletadas na entrevista com alunos e professores de cursos de
idiomas e também no estudo das principais plataformas existentes no mercado para a prática de conversação
em inglês descritos na etapa de análise, é possível modelar as funcionalidades do sistema que será proposto.
Logo, para isso, a seguir serão apresentados diagramas como o de caso de uso, atividades e sequência,
previstos por Pressman e Maxim (2016) como estruturas importantes para a modelagem do projeto.
10
Inicialmente, neste presente trabalho, os casos de uso serão descritos pela linguagem UML através de
um diagrama de casos de uso que apresentam o conjunto de serviços oferecidos pelo sistemas proposto,
como é apresentado na Figura 9.
Fonte: o autor
Como pode ser analisado pela Figura 9, o sistema proposto possui a funcionalidade de registrar, por
meio de e-mail e senha, um novo usuário que, por sua vez, é capaz de efetuar login, manter seu perfil, isto é,
atualizar ou deletar sua conta e também buscar outros usuários. Na ação de buscar outros estudantes, é
apresentado uma lista de usuários disponíveis para que o estudante tenha a possibilidade de realizar um bate
papo via vídeo chamada com outro estudante selecionado. Além dessas funcionalidades, na página da sala de
bate papo o sistema também entregará uma sessão de tópicos pré estabelecidos para auxiliar o estudante para
que a comunicação entre os usuários seja completamente em inglês.
Conforme é descrito por Larman (2005), “um diagrama de atividades UML mostra atividades
sequenciais e paralelas em um processo”. Ou seja, com a utilização de um diagrama de atividades é possível
observar, de uma forma simplificada e por meio de uma ilustração, como por exemplo é apresentado na
Figura 10, o fluxo em que o sistema proposto irá seguir na atividade de realizar login de um usuário,
mostrando suas atividades e seus caminhos que dão acesso a outras atividades presentes no pacote da ação de
login.
11
Fonte: o autor
O fluxo da realização de login acontece conforme é apresentado na Figura 10. Com base neste
diagrama, é possível observar que, inicialmente, ao entrar na tela de login, o usuário pode escolher entre
realizar o login ou criar uma nova conta. Em ambos os casos, ele deverá informar seus dados como e-mail e
senha. O sistema estará validando a existência do usuário com base no e-mail inserido, ou seja, caso o e-mail
inserido na tela de login não esteja cadastrado na base, o usuário não é reconhecido e portanto só terá acesso
ao criar um novo cadastro. Em contrapartida, o sistema não permitirá cadastrar um usuário que possua um
e-mail já inserido na sua base de dados.
Conforme afirma Guedes (2018), “o diagrama de sequência é um diagrama comportamental que se
preocupa com a ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um
determinado processo”. Em outras palavras, esse diagrama em questão se trata de uma apresentação das
interações, pois, é capaz de descrever como, e em qual ordem um grupo de objetos interagem em conjunto.
Portanto, a seguir serão apresentados, de forma consecutiva, os diagramas de sequência do sistema proposto
como: Autenticação de usuário/Login (Figura 11).
12
Fonte: o autor
Durante sua implementação, o sistema proposto será desenvolvido e testado, por meio do framework
Scrum, onde os processos do sistema serão divididos em sprints. Ou seja, cada funcionalidade que o sistema
entregará será uma sprint. Os testes, por sua vez, serão unitários e funcionais e utilizarão a semântica BDD -
Desenvolvimento orientado por comportamento. Além disso, o projeto será separado por dois importantes
ambientes: back-end e front-end que serão conectados por meio de uma API Rest onde os dados serão
armazenados no repositório de dados MongoDB, um programa de banco de dados NoSQL.
13
Uma das principais vantagens de utilizar uma mesma linguagem de programação no lado do cliente e
do servidor é a reutilização de código. Na figura 12, pode-se perceber que pode haver reaproveitamento de
estrutura em Javascript para ambos os lados.
Figura 12 - Exemplo de funções exercidas pelo JavaScript do cliente e do servidor.
Fonte: “Node.js: estudo tecnológico e desenvolvimento full-stack javascript de plataforma de
competições em problemas algorítmicos”.
Além do reaproveitamento de código, outra vantagem que existe ao utilizar a mesma linguagem de
programação é que, conforme Aguiar (2015), “quando precisamos aprender várias tecnologias para projetar
todo o sistema (para o backend e o frontend) , às vezes acaba comprometendo todo o projeto.” Esse
comprometimento pode estar relacionado ao tempo de aprendizado de mais de uma linguagem de
programação e não ter reaproveitamento de código.
Neste projeto será utilizado como linguagem de programação somente o Javascript, tanto para o lado
do cliente quanto para o lado do servidor, até mesmo na questão de armazenamento de dados, onde será
utilizado o banco de dados MongoDB, que trabalha com respostas de resultado de pesquisas em formato
JavaScript Object Notation (JSON), que em português significa Notação de Objetos JavaScript. O banco de
dados MongoDB utiliza NoSQL e é orientado a documentos onde cada documento é inserido e extraído em
formato JSON. Além disso, é importante saber que o NoSQL é uma categoria de banco de dados não
relacional, ou seja, ela se diferencia de outras categorias por não fazer relação com outras entidades. Além
disso, o NoSQL possui vantagens que outros banco de dados relacionais não possuem, como por exemplo
uma melhor performance para trabalhar com grande quantidade de dados e ainda mais quando estes precisam
ser compartilhados em tempo real.
Com o surgimento da Web, outras aplicações de banco de dados começaram a ser
desenvolvidas, originando, dessa forma, novos requisitos de bancos de dados. Dentre estes
requisitos destaca-se a necessidade de manipulação de grandes volumes de dados não
estruturados ou semi-estruturados, bem como novas necessidades de disponibilidade e
escalabilidade. Assim, a fim de atender aos requisitos destas aplicações, novas soluções
para gerenciamento de dados começaram a ser propostas, como, por exemplo, os bancos de
dados NoSQL. (LÓSCIO; OLIVEIRA; PONTES, 2011)
14
Ademais, conforme (LÓSCIO; OLIVEIRA; PONTES, 2011), o banco de dados NoSQL não chegou
com o intuito de substituir o modelo relacional, mas permitir que aplicações que requerem mais performance
em termos de consultas e resultados, e que requerem também alta disponibilidade, escalabilidade, esquema
flexível e gerenciamento de dados semi-estruturados, possam, então gerenciar os seus dados de forma mais
eficiente, o que não se tem quando é utilizado um banco de dados relacional.
6.3.2. Protótipos de tela
A aplicação em questão possui um layout simples e intuitivo, no seu primeiro acesso ao sistema, o
usuário será direcionado para a tela de login como é apresentado na Figura 13. Nessa tela está inserido um
formulário com os campos necessários para o usuário entrar no sistema. Além disso, botões de cadastro e
resetar senha também estão inseridos nessa tela para que o usuário possa ser direcionado para realizar um
cadastro no sistema ou resetar sua senha caso tenha esquecido dela.
Figura 13 - Tela de login.
Fonte: o autor
Já a Figura 14 mostra a tela principal no sistema, onde serão apresentadas as informações principais
do usuário logado como nome, email, nível de conhecimento da língua inglesa e idade. Além disso, também
é apresentada uma lista de usuários que estão online no momento com um filtro onde o usuário logado será
capaz de filtrar outros usuários por nível de conhecimento da língua inglesa.
Figura 14 - Tela inicial
15
Fonte: o autor
Para realizar uma videochamada o usuário deverá clicar em um outro usuário na listagem “Usuários
online” apresentada na tela inicial como mostra a Figura 14. Portanto, ao clicar em uma pessoa na lista, o
usuário será direcionado para a tela de videochamada e, se houver autorização por parte do outro usuário
para iniciar o chat, a videochamada acontecerá como é apresentado na Figura 15.
Além disso, pode-se analisar que na tela que é apresentada pela Figura 15, os usuários poderão, a
qualquer momento, voltar para a tela inicial, entrar ou sair da chamada, favoritar o usuário com quem está
conversando e abrir a aba de tópicos.
16
Figura 15 - Tela de videochamada
Fonte: o autor
6.4. Implementação
Com a necessidade de organizar as tarefas e entregar um projeto de forma rápida, com qualidade e
funcional, na parte de implementação será utilizado o framework Scrum, uma ferramenta famosa na
engenharia de software por ser uma metodologia que visa os princípios do manifesto ágil e que, segundo
Martins (2016), com o Scrum é possível que pessoas desenvolvem e administrem projetos complexos
dividindo em etapas e entregas a partir de regras e artefatos.
No framework Scrum, após a definição do projeto (objetivos e necessidades) é realizado a criação de
uma lista de histórias contendo o que será necessário para o desenvolvimento do projeto, popularmente
conhecido como Backlog. Com base nisso, portanto, no decorrer da etapa de implementação do projeto
proposto foram definidas e ordenadas as principais tarefas para a criação do presente sistema como é
apresentado pela Tabela 1.
Tabela 1 - Lista de histórias
BACKLOG
ID História
17
04 FRONT: Integração da tela de login e cadastro com a API
Fonte: o autor
Pode-se observar que na Tabela 1 as histórias estão divididas conforme os ambientes de
desenvolvimento Back-End (API) e Front end (lado do cliente). Essa divisão foi proposta porque o sistema
foi desenvolvido com a estratégia API First, ou seja, o primeiro ambiente desenvolvido será a API, fazendo
com que as regras de negócio sejam colocadas em primeiro lugar para somente, em seguida, construir o
produto (front end), podendo ser um site ou um aplicativo para celular, por exemplo.
Para a implementação da funcionalidade de vídeo chamada foi utilizado o componente WebRTC que
utiliza a api de código aberto da Wide Web Consortium. Esta api tem o papel de permitir aos navegadores
executar aplicações de chamadas por vídeo. Para a aplicação presente foi utilizado uma dependência
chamada Vue-webrtc que tem o papel de unir a api WebRTC com o framework javascript Vue.js de uma
forma que facilite o desenvolvimento do componente de vídeo chamada e o torne reutilizável.
Figura 16 - Componente de videochamada
Fonte: o autor
A Figura 16 apresenta um trecho de código em Vue.js sobre a forma de utilização do componente
vue-webrtc na página de vídeo chamada da aplicação onde é passado a propriedade width correspondente a
largura que o componente em questão irá ocupar na estrutura em que ele for criado e a roomId que
18
corresponde ao id da vídeo chamada.
Figura 17 - Métodos da videochamada
Fonte: o autor
A Figura 17 apresenta um trecho de código em Vue.js referente aos métodos utilizados na
funcionalidade de vídeo chamada. O método onJoin() é responsável por enviar ao navegador um pedido de
acesso à câmera e microfone e entrar na vídeo chamada. Já o método onLeave() tem como responsabilidade
sair da vídeo chamada, desligando a câmera e o microfone do navegador.
6.6 Login
Para a realização da funcionalidade de login da aplicação presente é inserido dados como e-mail e
senha. Esses campos são utilizados para que o sistema reconheça e dê acesso ao usuário que os inserir
corretamente. A Figura 18 apresenta um trecho de código da estrutura template Vue.js do componente Login.
19
Figura 18 - Estrutura do componente Login
Fonte: o autor
Como é apresentado na Figura 18, a estrutura do componente Login é dividida entre os campos de
inserção de email, senha e botão de realizar login cuja função será abordada posteriormente. Em cada campo
de inserção de dados é usada a estrutura v-model que é responsável por pegar o dado inserido pelo usuário
para futuros tratamentos ou validações. O v-model em questão está observando um estrutura que, em um
primeiro momento, foi definida por um objeto chamado login que inicia com um estado vazio como mostra a
Figura 19:
Figura 19 - Objeto Login
Fonte: o autor
20
dados de email e senha de forma que possa encontrar o usuário em questão e ao encontrar apresentar a
página principal. A Figura 20 apresentará um trecho de código em Vue.js do método auth() que irá realizar a
funcionalidade de login.
Figura 20 - Método que realiza Login
Fonte: o autor
6.7. Testes
Uma das principais e primordiais fases do processo de engenharia de software é a parte de testes porque,
conforme afirma Busch (2007), os testes visam atingir um nível de qualidade de um produto e encontrar seus
defeitos, para que estes possam ser corrigidos pela equipe de programadores, antes de sua entrega. Ou seja,
um dos principais objetivos dos testadores é encontrar o maior número de bugs e também divergências em
relação à documentação para que sejam analisados junto à equipe de desenvolvimento e gerenciamento se os
resultados estão de acordo com o que foi estabelecido durante a documentação do projeto.
Apesar de funcional, todo sistema já passou por uma série de alterações durante seu ciclo de vida. E
dependendo de certas implementações, sejam elas correções de erros ou novas funcionalidades, o sistema
pode melhorar ou piorar. Segundo Souza (2016) foi com base nesses problemas que em 2003, Kent Beck
apresentou uma técnica para desenvolver sistemas baseados em testes - TDD que tem como objetivo a
garantia da qualidade e da funcionalidade do software durante sua fase de implementação e melhorias.
Ao sugerir a prática dos testes como atividades iniciais e finais do processo de
desenvolvimento, Beck tinha como objetivo mitigar alguns dos riscos de possíveis falhas de
projeto atacando um dos pontos em que as organizações mais apresentavam novas
alternativas e soluções para garantir um produto de qualidade. Essas alternativas
contemplam novas ferramentas, novos processos de testes e novas técnicas associadas à
fase de validação de software. (SOUZA, 2016)
Apesar do TDD ser uma técnica muito utilizada, muitas equipes de desenvolvimento têm dificuldades
21
para entender o que é preciso testar e o que não é preciso. Além do mais, os encarregados de escrever esse
testes unitários são os desenvolvedores, fazendo com que os testadores, que avaliam o comportamento,
tenham dificuldades no entendimento uma vez que não há comunicação eficiente entre as duas equipes no
nível de código. Com base nisso foi que surgiu uma aplicação de testes unitários chamada de BDD -
Behaviour Driven Development, conhecido como teste orientado ao comportamento, que possui uma leitura
mais simples e amigável para ajudar as equipes de desenvolvimento e de qualidade a resolverem as falhas de
comunicação.
Além disso, o BDD ajuda a simplificar a comunicação entre equipes e, para isso, utiliza cenários que
são descritos pelo desenvolvedor ou analista. Cada cenário é dividido em no mínimo três blocos, e estes, são
definidos pelas palavras chaves: Given: dado um contexto, When: quando acontecer um evento, Then: então
se espera que aconteça algo. Nesse projeto, utilizou-se o teste orientado a comportamento, portanto, a seguir
serão apresentados os cenários criados.
Then deve consultar a api e retornar se o usuário existe para abrir a tela inicial.
Then deve consultar a api e retornar se o usuário não existir para registrá-lo.
Inicialmente, em um primeiro momento o sistema proposto neste presente trabalho foi avaliado quanto à
sua usabilidade e acessibilidade. Para isso, foi concedido o acesso a estudantes e professores dos cursos de
idiomas CCAA e Italki, ambos participantes da pesquisa anteriormente realizada na etapa de análise. Sendo
assim, para uma melhor avaliação, os estudantes e professores utilizaram a plataforma e dessa forma, foi
possível coletar feedbacks e sugestões para que a plataforma possa ser melhorada e ajustada conforme as
necessidades. Além disso, foi enviado a cada estudante e professor que acessou a plataforma um formulário
da plataforma Google com as seguintes perguntas:
22
CONSIDERAÇÕES FINAIS
Podemos concluir que, diante de todas as possibilidades de aplicações voltadas para a conversação da
língua inglesa, foi possível criar um sistema que tem como foco a conversação de uma forma gratuita e
acessível e que instigue o usuário a ter uma prática efetiva a partir de um ambiente confortável, na qual ele
pode comunicar-se com pessoas do seu mesmo nível. Além disso, foi possível realizar um sistema web
utilizando a linguagem de programação Javascript na qual é uma linguagem bastante utilizada e que oferece
todas as ferramentas possíveis para a criação da aplicação.
Apesar do Mongo DB apresentar uma maneira diferente de armazenar dados dos bancos de dados
relacionais mais conhecidos na comunidade de tecnologia, foi descoberto que sua implementação é simples e
possui uma vantagem quanto a sua relação com o Node.js porque ambos trabalham diretamente com JSON,
então não há processo de conversão ao ler ou gravar dados, por exemplo. Além disso, uma outra vantagem é
que as duas tecnologias são Javascript, que é a mesma linguagem client side d esse projeto, o que facilita
possíveis manutenções do sistema posteriormente.
Em suma, esse projeto foi uma oportunidade para conhecer e aprender novas tecnologias e
possibilidades na programação web apesar de suas dificuldades durante a realização do mesmo. Além disso,
tanto o Node.js quanto o Mongo DB possuem uma comunidade ativa, por isso, foi facilmente encontrado
material para estudo e resolução de dúvidas. Ademais, planeja-se implantações futuras para o sistema como,
por exemplo, uma forma de gravar e armazenar em formato de vídeo chamadas realizadas pelos usuários.
Desta forma, usuários poderão visualizar suas próprias conversas posteriormente.
REFERÊNCIAS
CAMBLY. Cambly. Disponível em: < https://www.cambly.com> acesso em: 27 de setembro de 2020.
FARIAS, Suelen Conceição. Os benefícios das tecnologias de informação e comunicação (TIC) no processo
de educação a distância (EAD). Rev. digit. bibliotecon. cienc. inf., Campinas, SP, v.11, n.3, p.15-29,
ago/nov. 2013. ISSN 1678-765X. Disponível em: <http://www.sbu.unicamp.br/seer/ojs/index.php/rbci>
GUEDES, Gilleanes T. A. UML 2 - Guia Prático. 2ª Edição. Novatec, 2007.
ITALKI, Italki. Disponível em: <https://www.italki.com> acesso em: 27 de setembro de 2020.
LARMAN, Craig. Utilizando UML e Padrões. 3ª Edição. Bookman, 2005.
AGUIAR, Gustavo Stor De. Estudo tecnológico e desenvolvimento full-stack javascript de plataforma de
competições em problemas algorítmicos. Universidade Federal de Pernambuco, 2015.
MOUSQUER, T.; ROLIN, C. O. A utilização de dispositivos móveis como ferramenta pedagógica
colaborativa na educação infantil. In: II Simpósio De Tecnologia Da Informação, 2011, Santo Ângelo.
PAIVA, V. L. M. O. Tecnologias digitais para o desenvolvimento de habilidades orais em inglês. 2014. 28 f.
Projeto de pesquisa CNPq (Produtividade em Pesquisa – PQ – 2014) – Universidade Federal de Minas
Gerais, Belo Horizonte, 2014.
23
LÓSCIO; OLIVEIRA; PONTES. NoSQL no desenvolvimento de aplicações Web colaborativas -
Universidade Federal de Pernambuco, 2011.
PRESSMAN, Roger; MAXIM, Bruce. Engenharia de Software - Uma abordagem profissional. 8ª Edição.
Bookman, 2016.
SILVA, Eliane de Oliveira da. Dificuldades na aprendizagem da língua inglesa no ensino fundamental em
escolas do município de Humaitá. - Universidade Federal do Amazonas, 2014.
SOUZA, Marcos Vinícius Rodrigues de. Abordagens de testes: uma comparação entre as metodologias
tradicionais e ágil. - Universidade Federal de Pernambuco, 2016.
BUSCH, A. V.; LODI, R. A.; BORBA, S. F. P. Metodologia de desenvolvimento e aplicação de testes para
qualidade de software. Rev. Ciên. Empresariais da UNIPAR, Umuarama, v. 8, n. 1 e 2, p. 125-139, jan./dez.
2007.
24