0% acharam este documento útil (0 voto)
26 visualizações17 páginas

Rafael Melo Sabino - TCC I

O artigo apresenta a implementação de um chatbot utilizando o WhatsApp para autoatendimento de clientes, evitando o alto custo da API oficial. A solução permite que a empresa adicione novas funcionalidades aos menus sem necessidade de desenvolvimento adicional e oferece a opção de atendimento humano. O trabalho também discute o processo de desenvolvimento de software e métodos ágeis aplicáveis à construção do chatbot.

Enviado por

Bruno Silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Tópicos abordados

  • Node.js,
  • Sistemas de Informação,
  • Interação Humano-Computador,
  • Diagrama de Classes,
  • Análise de Requisitos,
  • Implementação,
  • Scrum,
  • Análise de Dados,
  • WhatsApp,
  • Métodos Ágeis
0% acharam este documento útil (0 voto)
26 visualizações17 páginas

Rafael Melo Sabino - TCC I

O artigo apresenta a implementação de um chatbot utilizando o WhatsApp para autoatendimento de clientes, evitando o alto custo da API oficial. A solução permite que a empresa adicione novas funcionalidades aos menus sem necessidade de desenvolvimento adicional e oferece a opção de atendimento humano. O trabalho também discute o processo de desenvolvimento de software e métodos ágeis aplicáveis à construção do chatbot.

Enviado por

Bruno Silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Tópicos abordados

  • Node.js,
  • Sistemas de Informação,
  • Interação Humano-Computador,
  • Diagrama de Classes,
  • Análise de Requisitos,
  • Implementação,
  • Scrum,
  • Análise de Dados,
  • WhatsApp,
  • Métodos Ágeis

IMPLEMENTAÇÃO DE CHATBOT UTILIZANDO

WHATSAPP1
Rafael Melo Sabino2 <[Link]@[Link]>
Christiano Cadona3 <[Link]@[Link]>

Universidade Luterana do Brasil (ULBRA) – Curso de Ciência da Computação – Campus Canoas


Avenida Farroupilha, 8001 · Bairro São José · CEP 92425-900 · Canoas/RS

22 de junho de 2020

RESUMO
Este artigo descreve a construção de uma implementação de chatbot com a utilização de whatsapp para o
autoatendimento de um cliente junto a uma empresa, sem a necessidade de utilizar a própria API do whatsapp por
esta ter um custo muito elevado. A empresa a utilizar esta aplicação ainda poderá cadastrar novas funcionalidades aos
menus sem a obrigatoriedade de mais desenvolvimento de software, observando a complexidade da funcionalidade.
O cliente por sua vez deve ter uma opção para falar com um atendente humano nos menus.
Palavras-chave: Chatbot; Whatsapp; Implementação; Autoatendimento.

ABSTRACT
Title: “Chatbot implementation using Whatsapp”
This article describes the construction of a chatbot implementation with the use of whatsapp for the self -
service of a customer with a company, without the need to use the whatsapp API itself because it has a very high cost.
The company using this application will still be able to register new features to the menus without the obligation of
further software development, observing the complexity of the functionality. The customer in turn must have an
option to speak to a human attendant on the menus.
Key-words: Chatbot; Whatsapp; Implementation; self-service.

1 INTRODUÇÃO
Conforme Rocha(2019) “Chatbot é um programa de computador que utiliza inteligência artificial
cada vez mais aperfeiçoada para imitar conversas com usuários de várias plataformas e aplicativos, como
acontece no Facebook e em sites de e-commerce.” Muitas empresas utilizam esse recurso para
autoatendimento de seus usuários através de perguntas e respostas automatizadas.
Hoje a grande ferramenta de comunicação utilizada pela maioria das pessoas é o whatsapp, empresas
estão muito interessadas e já se comunicam com seus clientes através do uso de whatsapp. Contudo o
whatsapp tem seus limitadores, principalmente quando não está integrado a API do próprio aplicativo, que
possui um custo elevado para realizar uma integração.
Pensando nisso o objetivo desse trabalho é integrar essas duas tecnologias desenvolvendo uma
solução que através do whatsapp possua o chatbot para autoatendimento de clientes de um produto de uma
software house especifica. A aplicação possuirá funcionalidades pré existentes para atendimento de clientes
tais como: consulta de saldo devedor; consulta de faturas; download de faturas, entre outras. Além de
possibilitar ao usuário da software house, que cadastre novas funcionalidades aos menus de interações com o
cliente.
Este artigo está organizado da seguinte forma: a seção 2 apresenta o referencial teórico necessário
para compreensão do trabalho. A seção 3 apresenta algumas soluções correlatadas encontradas no mercado.
Na seção 4 são apresentadas as metodologias para a implementação do trabalho. Na seção 5 são apresentadas
as definições dos itens que compreendem a construção do projeto, assim como a modelagem. Seguido pela
seção 6 que apresenta o cronograma de atividades, contendo a previsão cronológica de desenvolvimento do
TCC II. Após essa última seção são expostas as considerações finais desse artigo na seção 7.

1 Artigo da disciplina de Trabalho de Conclusão de Curso em Ciência da Computação, submetido ao Curso de Ciência da Computação da
Universidade Luterana do Brasil, Campus Canoas.
2 Acadêmico do curso de Ciência da Computação
3 Professor dos Cursos de Computação da Ulbra e Orientador do trabalho.

1
2 REFERENCIAL TEÓRICO
2.1 Processo de Software
De acordo com Sommerville (2007, p.6), o processo de software é um conjunto de atividades e
resultados para produzir um produto de software, existem quatro atividades fundamentais no processo que
são comuns a todos os softwares: especificação de software onde clientes e engenheiros definem o software a
ser produzido e suas regras. Desenvolvimento de software, etapa na qual o software é projetado e
programado. Validação de software, na qual o software é verificado para garantir que está de acordo com o
desejo do cliente. E por fim evolução do software, onde o software é modificado para se adaptar a mudanças
de requisitos tanto do cliente quanto do mercado.

2.2 Desenvolvimento de Software


Conforme Gonçalves e Cortés (2015, p.9), o processo de desenvolvimento de software é composto
por fases que devem ser seguidas para a produção do software. Cada uma das fases é composta por tarefas e
com um papel associado a quem vai realizar. Diz também que cada empresa tem a autonomia para utilizar as
fases que lhes convém.
2.2.1 Levantamento e Análise de Requisitos
Para um bom desenvolvimento de software, é necessário definir e parametrizar requisitos que sejam
compreensível tanto pelo cliente quanto pelos profissionais envolvidos no desenvolvimento (analistas,
programadores, testadores). A importância da análise de requisitos é justificada pelo auxílio na compreensão
do que o usuário necessita e o que está sendo contratado. Essa análise e levantamento de dados deve seguir
métodos, técnicas e ferramentas adequados para um bom suporte no processo de desenvolvimento.
Segundo Kerr (2015, p.17), a identificação dos requisitos deve ser registrada no processo de
documentação de requisitos. Esses documentos são escritos de forma simples em um primeiro momento para
facilitar a compreensão da necessidade do usuário. Após esse momento os requisitos são reescritos com uma
representação mais matemática, para que os responsáveis pelo desenvolvimento possam transformá-los em
um bom projeto de sistemas. Após é realizada uma etapa de verificação, a fim de garantir que os requisitos
foram contemplados.
2.2.2 Projeto
Para Gonçalves e Cortés (2015, p.39), a fase de projeto realiza um refinamento dos documentos
gerados durante a análise, de forma a dar explicações mais detalhadas da etapa anterior. Essa fase tem como
objetivo assegurar que o sistema atenda aos requisitos. Também são gerados diagramas com base na
documentação de requisitos. A escolha dos algoritmos assim como os aspectos em relação e como a
aplicação deve se comportar são definidas na etapa de projeto.
Para Gonçalves e Cortés (2015, p.41), o projeto da arquitetura trata da estrutura organizacional de
um sistema, incluindo a sua decomposição em partes e a inter-relação dessas partes, além dos mecanismos e
princípios que devem guiar o projeto de um sistema. Desta forma, podemos definir a arquitetura como a
captura dos aspectos estratégicos da estrutura em alto nível de um sistema.
2.2.3 Teste e validação
De acordo com Kerr (2015, p.133), os testes servem para atestar o pleno funcionamento do software
desenvolvido e que atende as necessidades do cliente que foram especificadas no início do processo. Os
testes têm como objetivo encontrar defeitos lógicos e estruturais do sistema. Deve ser realizada uma seleção
individual dos testes que serão realizados com o intuito de testar o maior número de falhas possíveis, já que é
praticamente impossível garantir que as mesmas não existam.

2.3 Métodos Ágeis


Segundo Bernardo (2015), Os métodos ágeis são uma alternativa à gestão tradicional de projetos,
eles nasceram nos braços do desenvolvimento de software, mas hoje podem ser aplicados a qualquer tipo de
projeto (inclusive os que não se remetem ao software). Os métodos ágeis vem ajudando muitas equipes a
encarar a imprevisibilidades dentro de um projeto através de entregas incrementais e ciclos iterativos. As
metodologias ágeis passaram a ser uma alternativa aos métodos tradicionais, também conhecidos como
métodos pesados ou clássicos.
De acordo com Foggetti (2015, p.4), os princípios dos métodos ágeis são compostos

2
• Envolvimento do cliente, onde o mesmo deve ser envolvido no projeto com o propósito de
ajudar a estabelecer as prioridades.
• A entrega incremental onde o desenvolvimento se dá em camadas e o cliente tem entregas
periódicas e não uma única entrega final.
• Pessoas respeitando métodos e habilidades de cada indivíduo envolvido.
• Aceitar mudanças que podem ocorrer ocasionalmente.
• Manter a simplicidade de forma que qualquer pessoa que trabalhe na equipe consiga
entender o que está sendo realizado.
2.3.1 Scrum
De acordo com Schwaber (2013, p.3), Scrum é um framework utilizado para gerenciar o
desenvolvimento de produtos complexos desde o início de 1990. Não se trata de uma técnica ou processo
para desenvolvimento do produto, mas sim um framework que possibilita o emprego de diversas técnicas e
processos. Esse framework consiste nos times do Scrum associados a papéis, eventos, artefatos e regras.
Cada componente dentro do framework serve a um propósito específico e é essencial para o uso e sucesso do
Scrum.
Para Schwaber (2013, p.5), o time scrum é composto pelo product owner, o time de desenvolvimento
e o scrum master. Times scrum são auto-organizáveis e multifuncionais. Dessa forma são dirigidos de dentro
do time sem interferências externas e possuem competências para concluir suas tarefas sem depender de
outros de fora do time. O fluxo geral do scrum pode ser observado na figura 1.

Figura 1 – Visão Geral do Scrum.


Fonte: (OLIVEIRA, 2016).

• Product Owner é uma pessoa designada como o responsável pelo valor agregado ao produto e pelo
time de desenvolvimento e gerenciando o backlog. Ele pode realizar a execução ou delegar
atividades, o product owner se trata de uma pessoa mas que pode representar o desejo de um comitê

3
no Backlog do Produto.
• O time de desenvolvimento deve ser composto por uma quantidade de profissionais que seja pequena
o suficiente para se manter ágil mas nem tão pequena a ponto de gerar atrasos nos prazos da sprint.
Esse time tem como principal responsabilidade a entrega de uma versão usável que incremente o
produto “Pronto” ao final de cada sprint. Esse time deve ser capaz de organizar e gerenciar o próprio
trabalho.
• O scrum master tem como responsabilidade garantir o entendimento e a aplicação do scrum, fazendo
com que o time tenha familiaridade e adesão com as teorias e praticas do scrum. Ele ajuda aos que
estão fora do time scrum a entender quais de suas interações são uteis e quais não são, ajudando a
mudar essas interações para valorizar o time scrum.
Os artefatos fornecidos do scrum são backlog do produto e backlog da sprint. Backlog do produto
são os requisitos listados e ordenados do que é necessário para o produto. O responsável por todas as fases
do backlog do produto é o product owner (Schwaber 2013, p.13). Já o backlog da sprint são os itens do
backlog do produto que foram selecionados para a sprint, junto com o plano de entrega da incrementação do
produto. Sendo assim o backlog da sprint é a previsão pelo time de desenvolvimento de quais
funcionalidades estará no próximo incremento e o esforço exigido para incrementar ao estado de “pronto”,
tornando visível o trabalho necessário para atingir o objetivo de cada sprint (Schwaber 2013, p.15).

2.4 UML
Para Guedes (2007, p.19) UML (Unified Modeling Language) é uma linguagem visual utilizada para
modelar softwares baseados no paradigma de orientação a objetos, podendo ser aplicada a todos os domínios.
A indústria de engenharia de software acabou adotando essa linguagem como um padrão internacionalmente.
Deve ficar bem claro, porém, que a UML não é uma linguagem de programação, e sim uma linguagem de
modelagem para auxiliar os engenheiros de software a definirem os requisitos do sistema, comportamento,
estrutura lógica e a dinâmica de seus processos a ser implantado. Tais características podem ser definidas por
meio da UML antes do software começar a ser realmente desenvolvido.
Segundo Guedes (2007, p.30), diagramas de caso de uso são utilizados normalmente nas fases de
levantamento e análise de requisitos. Serve também como base para todo o desenvolvimento do projeto e
para a elaboração de outros diagramas compreendidos dentro da UML. Apresenta uma linguagem de fácil
compreensão para que os usuários possam ter uma ideia geral do comportamento do sistema. É utilizada para
identificar os atores que utilizarão o software desenvolvido, assim como as funcionalidades do sistema.
O diagrama de classes é considerado um dos mais importantes da UML, pois serve de apoio para a
maioria dos demais diagramas. Ele define a estrutura das classes utilizadas pelo sistema (Guedes 2007, p.31).
Diagrama de atividade tem como finalidade descrever as etapas a serem realizadas para a conclusão de uma
atividade, podendo ser representada por um método com certo grau de complexidade, um algoritmo, ou
mesmo por um processo completo, seu foco está na representação do fluxo de controle de uma atividade.
(Guedes 2007, p.36).

2.5 Chatbot
Chatbots são ferramentas utilizadas por empresas para direcionar o atendimento de seus clientes de
uma forma automatizada. O intuito do bot é manter um diálogo de forma amigável ao usuário, buscando
assim se assemelhar com um humano na conversação. Muitas empresas hoje em dia apostam em chatbots
“simpáticos” que interagem com o usuário através da utilização de algumas piadas ou emojis.
Eles ganharam popularidade nos últimos anos e têm sido usados por várias
empresas para atender clientes, dar informações sobre serviços, vender
produtos, entregar conteúdo, entre outras funções. Essas ferramentas usam
inteligência artificial e estão cada vez mais aperfeiçoadas. Ou seja, você não
sabe, mas provavelmente já conversou com um robô. (CABRAL, 2018).

2.6 Redes Sociais


Conforme Diana (2019) “As redes sociais são espaços virtuais onde grupos de pessoas ou empresas
se relacionam através do envio de mensagens, da partilha de conteúdos, entre outros”. Existe uma grande

4
variedade de redes sociais na web hoje em dia, cada uma com um propósito e um público-alvo definido.
Sabemos que o Brasil é um dos públicos que mais utiliza redes sociais para diferentes propósitos, que podem
ser para estabelecer contatos e interações pessoais, para busca de imagens e vídeos, compartilhar e consumir
conhecimentos profissionais entre outros.
A figura 2, apresenta o gráfico do número de usuários das principais redes sociais utilizadas no
Brasil.

Figura 2 – O Uso das Redes Sociais no Brasil.


Fonte: (DIANA, 2019).
2.6.1 Whatsapp
Inicialmente surgiu como uma alternativa ao serviço de SMS sendo um aplicativo destinado a troca
de mensagens de forma simples e segura sem a cobrança por mensagem e sim uma eventual cobrança por
uso de dados. Hoje em dia a maioria das operadoras de telefonia móvel oferecem pacotes onde o uso do
whatsapp não consome os dados contratados. Segundo a página oficial do whatsapp atualmente mais de dois
bilhões de pessoas utilizam o aplicativo de mensagens em mais de 180 países.
Tendo em vista o grande número de usuários dessa ferramenta e a facilidade de acesso, pois basta
um smartphone com acesso à internet, as empresas buscam uma forma de fornecer atendimento aos seus
clientes através dessa plataforma.

3 TRABALHOS CORRELATADOS
Nessa seção serão apresentadas algumas soluções similares ao trabalho proposto que estão
disponíveis ou implantadas no mercado. Foi realizada uma pesquisa na solução aivo que oferece o serviço de
chatbot, e também as empresas centauro e pontofrio que já possuem atendimento por chatbot via whatsapp
implementado.

3.1 AIVO
“O chatbot conversacional da Aivo trabalha com IA para entender a linguagem cotidiana, com seus
erros, regionalismos e abreviações.” (AIVO). A aivo é uma plataforma paga que permite a criação de serviço
de atendimento através do whatsapp para interação com o cliente de forma autônoma. Na figura 3, podemos
observar a interface de uma solução disponibilizada pela aivo.

5
Figura 3 – Interface da AIVO.
Fonte: (AIVO).

3.2 Centauro
A centauro é uma empresa varejista de artigos esportivos, possui tanto lojas físicas como loja virtual.
No site da centauro podemos encontrar na aba portal do cliente a oferta de atendimento pelo whatsapp, como
forma prática para tirar dúvidas e fazer solicitações, mas não foram encontradas maiores informações
disponíveis sobre o serviço.
Na figura 4 será apresentada a experiência obtida pelo atendimento realizado pelo serviço de bot da
centauro. Após a primeira mensagem enviada o serviço de chatbot se apresenta como “atleta digital” e
solicita que o usuário se identifique com CPF/CNPJ ou o número de pedido, nesse caso a identificação
ocorreu com o número de pedido. Após identificar o usuário como cliente cadastrado da centauro, apresenta
um menu com alguns exemplos de como deve formular a dúvida, com base no exemplo foi feita uma
pergunta e o sistema informou que não conseguiu atender e pergunta se pode ajudar em algo mais, após isso
foi realizada uma pergunta idêntica a uma disponibilizada no exemplo e o resultado foi a repetição do menu
contendo os exemplos de perguntas.

6
Figura 4 – Atleta Digital Centauro.
Fonte: Própria (2020).
O sistema consegue localizar o cliente com facilidade, no entanto após isso foi constatado que caso
algo inesperado ocorra, como uma pergunta não prevista, o sistema não consegue voltar a normalidade de
seu atendimento.

3.3 Pontofrio
De acordo com informações divulgadas no site do pontofrio, a empresa Via Vareja que é a
responsável pela marca pontofrio, implantou um projeto para possibilitar ao cliente contato por meios de
comunicação como SMS, mensagens de voz e whatsapp.
A figura 5 apresenta uma tentativa de contato através do sistema de atendimento pelo whatsapp com
a empresa pontofrio para tratar da troca de uma mercadoria. Após o envio da primeira mensagem por parte
do cliente, o sistema responde com uma mensagem automática para que o mesmo entre em contato com a
central de relacionamento via telefone. Em outro momento o sistema de chatbot enviou uma mensagem para
realizar a coleta da mercadoria, informando o endereço cadastrado do cliente e provável data, caso o cliente
descordasse deveria responder a mensagem para que um especialista pudesse ligar. O cliente informou estar
em desacordo com a data, e não houve tentativa de contato e por fim na data em desacordo o sistema informa
que a coleta irá ser realizada.
Embora o sistema solicite em dado momento interação do usuário, o mesmo se mostrou como sendo
apenas um sistema de envio de mensagem por parte da empresa, ignorando ou enviando mensagens
automáticas em tentativas de troca de mensagens por parte do cliente.

7
Figura 5 – Atendimento Ponto Frio.
Fonte: Própria (2020).

4 METODOLOGIA
Nesta seção será descrita a metodologia aplicada para a identificação do problema a ser resolvido,
assim como para a solução do mesmo através do desenvolvimento de um sistema.

4.1 Levantamento de Requisitos


Nessa primeira etapa do projeto foi realizado um levantamento de softwares disponíveis no mercado
que atendam a proposta do projeto, após uma prévia analise foi constatado como principal diferença a não
utilização da API própria do whatsapp por parte do projeto proposto, possibilitando uma alternativa mais
acessível financeiramente. Após verificar as soluções do mercado foi realizado um estudo pra identificar as
principais funcionalidades que compõe uma solução de atendimento financeiro automatizado de forma
genérica, para que dessa forma possa ser facilmente instalada em um maior número de empresas com um
mínimo de esforço com a finalidade de ser uma opção acessível para empresas menores.
Após o levantamento de requisitos foram geradas as pautas das sprints que irão compor o
desenvolvimento do projeto proposto.

4.2 Sprints
“O coração do Scrum é a Sprint, um time-boxed de um mês ou menos, durante o qual um “Pronto”,
versão incremental potencialmente utilizável do produto, é criado. Sprints tem durações coerentes em todo o
esforço de desenvolvimento. Uma nova Sprint inicia imediatamente após a conclusão da Sprint anterior.”
(Schwaber 2013, p.8).
Para o desenvolvimento do projeto foi definido que o período das sprints poderá variar de uma
semana a um mês com base na dificuldade da etapa a ser executada. E que as mesmas serão compostas pelos
seguintes itens:
1. Seleção de clientes;
2. Desenvolvimento de páginas Web;

8
3. Desenvolvimento do back-end;
4. Integração da solução desenvolvida com o sistema IBM;
5. Testes e correções.

4.2.1 Seleção de clientes


Será realizada junto com a empresa de software(house) uma seleção de cinco a seis clientes onde
será implementada a solução proposta neste artigo. Essa solução será avaliada por esses clientes selecionados
com o intuito de descobrir se atendeu suas expectativas e necessidades. Será também elaborado nessa sprint
um questionário avaliativo que será utilizado para verificar alguns aspectos como funcionalidade e
usabilidade da solução, assim como eventuais pontos de melhoria.
4.2.2 Desenvolvimento de páginas Web
Esta etapa é compreendida pela construção das páginas web necessárias para montar a interface
administrativa da solução, onde um usuário de administrador terá acesso para gerenciamento das
funcionalidades. Também servirá para eventuais consultas de log e possibilitara atualizações cadastrais. Para
construção dessa etapa serão utilizadas as linguagens de programação HTML e javascript.
4.2.3 Desenvolvimento do back-end
Nesta etapa será realizada a sprint com maior esforço em relação a demanda de tempo. Será
necessária a criação de uma estrutura de banco de dados que será desenvolvida em mysql para receber as
tabelas necessárias na construção do projeto. Será construída a parte lógica responsável tratamento dos dados
em javascrpit com o uso de [Link]. Serão construídas as seguintes funcionalidades:
1. Validação do usuário – após iniciar o chat será solicitada a identificação do usuário para
confirmar sua identidade como cliente da empresa;
2. Busca de menus – funcionalidade que será responsável por realizar a busca do menu solicitado
pelo usuário;
3. Consulta de saldo e limite – funcionalidade que receberá por parâmetro se é consulta de saldo ou
de limite e irá retornar a consulta desejada;
4. Lista faturas – funcionalidade que irá listar para o usuário suas faturas em aberto;
5. Consulta fatura – permitirá a consulta individual das faturas listadas;
6. Baixa fatura – essa será responsável por disponibilizar a fatura para download;
7. Falar com um atendente – embora o objetivo seja a automação, foi percebida a necessidade de
disponibilizar ao usuário a opção de ser atendido por uma pessoa humana, sendo assim tera
também a funcionalidade de transferir o atendimento para um atendente.
4.2.4 Integração da solução desenvolvida com o sistema IBM
Nesta sprint está prevista a integração da solução desenvolvida junto com sistema Watson
Conversation da IBM, será necessária a construção de uma solução que monte o webservice com os dados
que devem ser enviados para o sistema de bot da IBM, a fim de atender as solicitações do usuário. Em uma
análise realizada foi escolhido o formato de json para o webservice.
4.2.5 Testes e correções
Antes de dar continuidade a etapa de validação uma última sprint de SIT (system integration testing
ou teste de integração de sistema) será realizada, procurando por possíveis falhas ou comportamentos
indesejados por parte do sistema desenvolvido. Caso algo seja encontrado nesse sentido, os ajustes e
correções necessárias serão realizados e o sistema será testado novamente.

4.3 Validação
A validação será realizada em conjunto com a software house escolhida, onde serão realizados testes
de usabilidade assim como testes de stress com múltiplos acessos ao mesmo tempo. Onde será verificado se
todos os requisitos levantados foram atendidos, e caso não tenha sido atendido algum requisito o mesmo será
tratado e voltará novamente a essa etapa do projeto.

9
5 PROJETO
Essa seção tem como objetivo apresentar o descritivo técnico do que vai ser realizado, bem como seu
objetivo, além de ilustrar as modelagens obtidas do levantamento e a análise de requisitos e as tecnologias
envolvidas no desenvolvimento do projeto.

5.1 Objetivo
Hoje a grande ferramenta de comunicação utilizada pela maioria das pessoas é o whatsapp, empresas
estão muito interessadas e já se comunicam com seus clientes através do uso de whatsapp. Contudo o
whatsapp tem seus limitadores, principalmente quando não está integrado a API do próprio aplicativo, que
possui um custo elevado para realizar uma integração.
Com base na facilidade de acesso que as pessoas possuem ao whatsapp, assim como o interesse por
parte do mercado em explorar essa ferramenta e também pensando em reduzir o custo não utilizando a API
própria do whatsapp, esse trabalho de conclusão de curso tem como objetivo o desenvolvimento de uma
solução que atenda a necessidade do mercado, com um baixo custo e que seja prática aos seus usuários
finais. Para isso será necessária a integração de um serviço gratuito de chatbot com a praticidade de
atendimento oferecido pelo whatsapp. Essa solução de autoatendimento será implantada para os clientes de
um produto de uma software house especifica.

5.2 Modelagem
5.2.1 Diagrama de Caso de Uso
Será necessário para um melhor entendimento a identificação dos atores que utilizarão o sistema, o
ator usuário será qualquer pessoa que acesse o sistema e interaja com o chatbot. O sistema em si também
será representado por um ator de forma a representar a automação das funcionalidades que podem ou não
ocorrer na interação com o usuário. O ator IBM representará o sistema especialista da IBM, responsável pela
conversação em linguagem de alto nível (português padrão) com o usuário.
Na figura 6 serão representados os casos de uso necessários para o desenvolvimento de um sistema
de chatbot com a utilização de árvore de decisão. O primeiro caso de uso será acessar o chatbot que é a
interação do usuário com o sistema, nesse momento o sistema ira cumprimentar o usuário e solicitar que se
identifique; O caso de uso de consultar faturas listará todas as faturas em aberto existentes da empresa, o
usuário poderá realizar o download através de arquivo no formato pdf, ou do código de barras da fatura
(titulo bancário) através da ferramenta, maiores informações sobre o fluxo desse funcionamento será
explicado nas figuras 7 e 8; A consulta de saldo devedor será exibida pelo sistema caso o usuário deseje fazer
operação, também poderá ser exibida pelo sistema a opção de consulta limite disponível. Ambas as consultas
terão seu fluxo de funcionamento detalhado na figura 9 que apresenta o fluxograma C dando continuidade ao
Fluxo iniciado na figura 7; O caso de uso tirar dúvidas sobre o sistema, irá permitir ao usuário uma
conversação diretamente com o chatbot, em formato de perguntas e respostas onde será realizada uma busca
no banco de conhecimentos da IBM e retornará a resposta.

10
Figura 6 – Diagrama Caso de Uso Interações dos Atores.
Fonte: Própria (2020).

5.2.2 Fluxograma
Com o intuito de ilustrar o fluxo de dados na utilização do sistema por parte do usuário final, foram
construídos três fluxogramas interligados, cada um representado um menu do sistema proposto. Na figura 7 é
apresentado o fluxograma A, que irá cumprimentar o cliente e solicitar identificação do mesmo, caso o
cliente esteja cadastrado irá solicitar qual ação o cliente deseja executar, se é referente a faturas, saldo e
limites, falar com um atendente ou encerrar o atendimento. Também será possível o cliente optar por realizar
uma pergunta sobre o sistema, nesse caso ele será direcionado a outro menu com as opções de digitar a
qualquer momento “sair” para encerrar o atendimento, “retornar” para que retorne ao menu principal e por
fim poderá escrever sua pergunta que será tratada pelo banco de conhecimento da IBM, e terá como retorno a
resposta da pergunta ou caso não encontre termo compatível será enviada uma mensagem informando que
não foi encontrada nenhuma ocorrência para este termo. Caso o cliente não esteja cadastrado o atendimento é
encerrado.

11
Figura 7 – Fluxograma A – Menu Principal.
Fonte: Própria (2020).

Na figura 8 apresentando o fluxograma B, que dará continuidade ao atendimento do cliente que no


menu anterior tiver optado por atendimento referente a faturas. Nesse menu serão exibidas funcionalidades
de voltar ao menu principal, já apresentado na figura 7, ou listar as faturas em aberto do cliente. Após ter as
faturas em aberto listadas na tela, o cliente terá as opções de baixar as faturas em arquivo pdf, ou voltar ao
menu principal, falar com um atendente ou então encerrar o atendimento.

12
Figura 8 – Fluxograma B – Menu de Faturas.
Fonte: Própria (2020).

Na figura 9 temos o fluxograma C, também dando continuidade ao atendimento do cliente que no


menu representado pelo fluxograma A da figura 7 tiver optado por atendimento referente a saldos e limites.
Nesse menu serão exibidas funcionalidades de realizar consulta de saldo devedor, ou de realizar consulta de
limites disponíveis ou falar com um atendente. Tanto para a solicitação de saldo devedor quanto para a de
consulta de limites disponíveis, será exibido o resultado da consulta referente e as opções de voltar ao menu
principal, falar com um atendente ou encerrar o atendimento.

13
Figura 9 – Fluxograma C – Menu de Saldos e Limites.
Fonte: Própria (2020).

5.2.3 Diagrama de Classe


Considerado por Medeiros(2004), como o principal diagrama dentro da UML para o
desenvolvimento de softwares, pois através dele que se torna viável a automatização do negócio. Sendo
composto basicamente por uma classe, atributos e funções, este é o diagrama que contém o maior número de
símbolos.
Na figura 10, temos o diagrama de classe da implementação. A classe cliente é composta pelos
atributos: código, nome, CPF, telefone, e-mail e data de nascimento, assim como pela função de consultar
cliente; A classe conversa é a classe que relaciona o cliente com os menus de atendimento, essa classe é
composta pelos atributos de código, data e conteúdo e tem como métodos as funções para gravar e consultar
a conversa; A classe seguinte é a classe de menu, essa por sua vez é composta somente por um atributo
código para identificação do menu e um atributo descrição que armazenará a descrição das opções referentes
a cada menu, essa classe possui somente uma função de consulta para chamar ela mesma com outro menu; A
classe histórico será a classe responsável por exibir as informações de consulta de saldos e limites, sendo
composta pelos atributos de código do cliente, saldo devedor e limite. Suas funcionalidades serão de consulta
saldo devedor e de consulta limite; E por fim a classe de fatura composta por código da fatura, código do
cliente, valor da fatura, data de vencimento e um flag para identificar se a mesma encontrasse fechada ou
aberta. Os métodos dessa classe serão uma função para consultar fatura em aberto e outra para geração de
arquivo.

14
Figura 10 – Diagrama de Classes.
Fonte: Própria (2020).

5.3 Tecnologias envolvidas


Em uma análise inicial foram identificadas as tecnologias listadas a seguir como necessárias para o
desenvolvimento do projeto, podendo sofrer alterações ao longo do desenvolvimento.
5.3.1 JavaScript
JavaScript é uma linguagem de scripts para construção de páginas web. É uma linguagem leve e
interpretada baseada em objetos, e que pode ser utilizada juntamente com a linguagem [Link] ou mesmo em
outros ambientes. (MDN 2019).
5.3.2 [Link]
Na descrição de [Link] da Devmedia vimos que:
[Link] é uma tecnologia usada para executar código JavaScript fora do
navegador. Com ele podemos construir aplicações web em geral, desde web
sites até APIs e microsserviços. Isso é possível graças a união do ambiente
de execução de JavaScript fornecido pelo próprio [Link] e o motor de
interpretação e execução de JavaScript presente no Google Chrome,
chamado de V8.(DEVMEDIA).

5.3.3 Watson Conversation


“O Watson Conversation, especificamente, trata-se de uma API para desenvolvimento de Bots, com
uma interface simples para que até mesmo uma pessoa que não seja de TI consiga desenvolver e ensinar

15
conteúdo ao bot.”(MAZON, 2018).
O Watson conversation trata-se de uma API proprietária da IBM que auxilia no desenvolvimento de
aplicações de chatbots, e por isso foi escolhida para a realização desse trabalho.
5.3.4 MySQL
De acordo com Pisa(2012) “O MySQL é um sistema gerenciador de banco de dados relacional de
código aberto usado na maioria das aplicações gratuitas para gerir suas bases de dados”. Visando diminuir o
custo foi decidido utilizar o MySQL por se tratar de uma solução gratuita em banco de dados, apresenta uma
linguagem que o autor já possui familiaridade e apresenta também fácil acesso à sua documentação na
internet.

6 CRONOGRAMA
No Quadro 1 é demonstrada uma previsão cronológica, referente ao segundo semestre do ano de
2020, no que diz respeito a implementação das etapas do projeto.

Quadro 1 – Cronograma de atividades


JUL AGO SET OUT NOV DEZ

Escrita do artigo X X X X X X
Seleção de clientes X
Cadastro no sistema IBM X
Desenvolvimento de páginas Web X
Desenvolvimento do back-end X X
Integrar o sistema desenvolvido com o sistema IBM X
Testes e correções X X X
Validação X X
Fonte: Elaborado pelo autor (2020)

7 CONSIDERAÇÕES FINAIS
A Cada dia que se passa percebemos a evolução das comunicações em meios tecnológicos possuindo
cada vez mais recursos para atender as necessidades e trazer conforto e comodidade aos seus usuários. No
mesmo sentido de buscar a excelência em seu atendimento e a satisfação de seus clientes caminham as
empresas, e percebendo esta busca por parte do mercado foi evidenciada a necessidade de uma opção que
automatize o atendimento do cliente com a empresa, levando em conta um baixo custo, sabendo da realidade
de muitas empresas que não teriam condições de fazer um investimento para utilizar a própria API do
whatsapp.
Tendo isso em vista este artigo descreve o processo de construção de uma implementação de chatbot
utilizando o whatsapp, com a utilização do método ágil de desenvolvimento de software SCRUM. Este
trabalho resultará em um sistema para facilitar o atendimento financeiro de uma software house com seus
clientes. Permitindo que o cliente possa fazer consultas de saldo e download de faturas junto com a empresa,
sem a necessidade de um atendente humano na maioria das operações, resultando em economia de esforços
para a empresa e agilidade de atendimento para o cliente.

REFERÊNCIAS

KERR, Eduardo. Gerenciamento de Requisitos. São Paulo: Pearson Education do Brasil, 2015. 212 p.
GONÇALVES, Enyo; CORTÉS Mariela. Computação Análise e Projeto de Sistemas. Ceará: EdUECE,
2015. 109 p.

16
SOMMERVILLE, Ian. Engenharia de Software. 8. ed. São Paulo: Pearson, 2007. 568 p.
MEDEIROS, Ernani. Desenvolvendo Software Com Uml 2.0 - Definitivo. São Paulo: Pearson, 2004.
BERNARDO, Kleber. O que são métodos ágeis?. Disponível em:
<[Link] Acesso em: 6 abr. 2020.
OLIVEIRA, Leandro. O que é Scrum e como ele pode tornar sua empresa mais eficiente.
Disponível em: < [Link] Acesso em: 6 abr. 2020.
FOGGETTI, Cristiano. Gestão Ágil de Projetos. São Paulo: Pearson, 2015. 140 p.
SCHWABER, Ken; SUTHERLAND, Jeff. Guia do Scrum. Um guia definitivo para o Scrum: As
regras do Jogo, [Link]ível em: < [Link]
[Link]>. Acesso em: 6 abr. 2020.
GUEDES, Gilleanes. UML: Uma Abordagem Prática. 3. ed. São Paulo: Novatec, 2007. 336 p.
ROCHA, Hugo. Chatbot: o que é, para que serve, como funciona e como criar o seu.
Disponível em: <[Link] Acesso em: 30 mar. 2020.
CABRAL, Isabela. O que é chatbot? Entenda como funciona o robô que conversa com você.
Disponível em: <[Link]
[Link] >. Acesso em: 30 mar. 2020.
DIANA, Juliana. Redes Sociais. Disponível em: <[Link]
Acesso em: 10 jun. 2020.
WHATSAPP. Sobre o WhatsApp. Disponível em:
<[Link] Acesso em: 10 jun 2020.
AIVO. Disponível em: < [Link] >. Acesso em: 21 abr. 2020.
CENTAURO. Disponível em: < [Link] >. Acesso em: 21
abr. 2020.
PONTOFRIO. Novos canais de comunicação otimizam recuperação na carteira de cobrança
do Pontofrio. Disponível em: < [Link]
comunicacaeo-otimizam-recuperacaeo-na-carteira-de-cobr1 >. Acesso em: 21 abr. 2020.
MDN, Web Docs. JavaScript Disponível em: <[Link]
BR/docs/Web/JavaScript >. Acesso em: 30 abr. 2020.
MDN, Web Docs. Guia JavaScript Disponível em: <[Link]
BR/docs/Web/JavaScript/Guide >. Acesso em: 30 abr. 2020.

DEVMEDIA. Guia Completo de [Link] Disponível em:


<[Link] >. Acesso em: 3 maio 2020.
PISA, Pedro. O que é e como usar o MySQL? Disponível em:
<[Link] >.
Acesso em: 3 maio 2020.
MAZON Stéfany. Desenvolvendo Chatbots Com Watson Conversation Disponível em: <
[Link]
conversation/[Link] >. Acesso em: 3 maio 2020.

17

Você também pode gostar