Você está na página 1de 50

Modernização e otimização de sistemas de

entrega na área da restauração

Licenciatura em Engenharia Informática Médica

Gilberto Manuel Araujo Martins

Barcelos junho de 2021


Modernização e otimização de sistemas de
entrega na área da restauração

Licenciatura em Engenharia Informática Médica

Gilberto Manuel Araujo Martins

Estágio realizado sob a orientação do Professor Doutor Célio Carvalho e sob


supervisão do Adolfo Ferreira.

Barcelos, junho de 2021


Originalidade e Direitos de Autor

O presente relatório de estágio é original, elaborado unicamente para este fim, tendo sido
devidamente citados todos os autores cujos estudos e publicações contribuíram para o
elaborar.

Reproduções parciais deste documento não serão autorizadas estando este protegido pela
propriedade intelectual da empresa.

iii
Agradecimentos
Com a chegada do final da minha licenciatura em Engenharia Informática Médica
gostava de poder exprimir a minha gratidão a todos aqueles que contribuíram para a
evolução do meu caráter enquanto pessoa e dos conhecimentos científicos e técnicos na
duração do curso.

Quero deixar um grande agradecimento à minha família pelo apoio dado ao longo deste
percurso para que eu seja bem-sucedido.

Agradeço também ao IPCA que me acolheu e a todos os docentes que lecionaram as


unidades curriculares frequentadas que foram fundamentais para o desenvolvimento das
competências curriculares. Um agradecimento ao Diretor de Curso Professor Doutor
Joaquim Gonçalves que foi um grande suporte ao longo destes 3 anos.

Queria também agradecer as pessoas que conheci no IPCA, durante o decorrer do curso,
elas tiveram um forte contributo para o bom ambiente vivido, bem como o
desenvolvimento pessoal.

Um agradecimento muito especial ao Professor Célio Carvalho, sendo o meu orientador


da instituição de ensino, por ter dado o apoio e incentivo que necessitei ao longo do
estágio e durante a realização do curso.

Por fim, um forte agradecimento á BSB Smart and Bright Ideas e a toda a sua equipa
principalmente aos senhores Adolfo Ferreira e Carlos Braga por terem dado esta
oportunidade de aprendizagem e de ser bem acolhido.

iv
Resumo
Neste documento serão apresentadas todas as tarefas realizadas na entidade de acolhimento
do estágio. O trabalho descrito baseia-se em duas fases que são as seguintes: o
desenvolvimento de diagramas baseados nos requisitos definidos e a realização de testes no
sistema.

Neste estágio fui inserido no projeto Arroz Seco na qual desenvolveu-se uma aplicação
móvel / website de serviços (Até Já) ao domicílio e de take-away.

Durante a realização do estágio foi me proposto o desenvolvimento de diagramas utilizando


a ferramenta o Visual Paradigm com propósito de representar as funcionalidades do sistema
que irão ser implementadas.

Também foi proposto a realização de testagens manuais e automáticas (utilizando a


ferramenta Eclipse na linguagem Java) à aplicação para verificar se o sistema funciona
corretamente de acordo o que foi definido nos requisitos e nos user stories.

Em conclusão, ao longo do estágio fazer parte deste projeto contribuiu para o enriquecimento
de conhecimentos tecnológicos e a consolidação do conteúdo lecionado durante a
licenciatura de Engenharia Informática Médica.

Palavras-Chave (Tema): Restauração, Serviços.

Palavras-Chave (Tecnologias): Java, Selenium, HTML, CSS

v
vi
Abstract

This document will present all the tasks made in the company that took me in the for the
internship. The work is split into two phases: the development of the diagrams based on the
defined requisites and the testing of the application.

On this internship I worked in a project called Arroz Seco the aim was to develop a mobile
app / website (Até Já) that provides delivery and take-away services.

It was proposed during the internship the development of diagrams using Visual Paradigm
to represent the features of the system that are going to be implemented.

It was also proposed to perform manual and automized (using the Eclipse IDE in Java
language) tests on the applications to verify if application works as the requisites and user
stories intended.

In conclusion, during the internship being a part of this project has contributed immensely
to the refine the technologic concepts learned in the classes, while furthering my knowledge
with the introduction of new concepts.

Keywords (Topic): Restaurant, Services.

Keywords (Technology): Java, Selenium, HTML, CSS

vii
Índice
Originalidade e Direitos de Autor .............................................................................. iii

Agradecimentos............................................................................................................ iv

Resumo........................................................................................................................... v

Abstract ....................................................................................................................... vii

Lista de Figuras ............................................................................................................ x

Lista de Tabelas .......................................................................................................... xii

Lista de Siglas e Acrónimos ...................................................................................... xiii

Introdução ............................................................................................................ 1

1.1. Enquadramento ............................................................................................... 1

1.2. Projeto Arroz Seco .......................................................................................... 1

1.3. Contributos no Projeto ................................................................................... 1

Caracterização da Entidade de Acolhimento ................................................... 2

Programa de Estágio ........................................................................................... 3

3.1. Tecnologias Utilizadas..................................................................................... 3


3.1.1. IDE ................................................................................................................ 3
3.1.2. Servidor ......................................................................................................... 3
3.1.3. Ferramenta Colaborativa ............................................................................... 4
3.1.4. Ferramenta Modelagem................................................................................. 4
3.1.5. Framework .................................................................................................... 4
3.1.6. Linguagens Utilizadas ................................................................................... 4

3.2. Requisitos ......................................................................................................... 5


3.2.1. Requisitos Funcionais: .................................................................................. 5
3.2.2. Requisitos Não Funcionais: ........................................................................... 8

3.3. User Stories ....................................................................................................... 9

3.4. Diagramas ...................................................................................................... 14

viii
3.4.1. Casos de Uso ............................................................................................... 14
3.4.2. Fluxograma .................................................................................................. 16
3.4.3. Diagramas de Sequências ............................................................................ 17
3.4.4. Modelo de Entidade-Relação....................................................................... 20

3.5. Testagem ......................................................................................................... 21

3.6. Exemplos de erro encontrados na testagem ................................................ 28

Análise crítica e proposta de melhorias ........................................................... 30

Conclusão ........................................................................................................... 31

Bibliografia .................................................................................................................. 32

Anexos ............................................................................................................................ 1

ix
Lista de Figuras
Figura 1 – Gráfico de Burnup .................................................................................................................. 13

Figura 2 - Caso de Uso 1 (Representa as Funcionalidade que o Funcionário/Gestor tem na aplicação) .. 14

Figura 3 - Caso de Uso 2 (Representa as Funcionalidade que o Cliente tem na aplicação) ..................... 15

Figura 4 - Caso de Uso 3 (O Cliente, Estafeta e o Funcionário/Gestor tem a funcionalidade de enviar e


receber notificações na aplicação).................................................................................................................... 15

Figura 5 - Fluxograma a representar o processo de seleção do pedido .................................................... 16

Figura 6 - Diagrama de Sequência 1 a representa o processo após a confirmação do pedido .................. 17

Figura 7 - Diagrama de Sequência 2 representa o processo de pagamento via MBWay ......................... 18

Figura 8 - Diagrama de Sequência 3 representa o processo de pagamento via cartão ............................. 18

Figura 9 - Diagrama de Sequência 2 representa o processo de pagamento via MBWay ......................... 19

Figura 10 – Modelo Entidade Relação ..................................................................................................... 20

Figura 11 - Bibliotecas utilizadas ............................................................................................................. 21

Figura 12 - Inicialização do script ............................................................................................................ 22

Figura 13 – Testagem do login ................................................................................................................. 22

Figura 14 – Testagem da seleção do Pedido ............................................................................................ 22

Figura 15 – (Continuação)Testagem da seleção do Pedido ...................................................................... 23

Figura 16 – Testagem da seleção do serviço e da definição da morada ................................................... 23

Figura 17 – Testagem da definição da morada (Continuação) e da data/hora .......................................... 23

Figura 18 – Testagem do Carrinho de Compras ....................................................................................... 24

Figura 19 – Testagem do carrinho de compras e a edição da morada ...................................................... 24

Figura 20 – Testagem da edição da data/hora .......................................................................................... 24

Figura 21 – (Contiuação) Testagem da edição da data/hora..................................................................... 25

Figura 22 – Testagem dos métodos de pagamento ................................................................................... 25

Figura 23 – (Continuação) Testagem dos métodos de pagamento ........................................................... 25

Figura 24 – Testagem das funcionalidades de Adicionar/Remover um item/menu escolhido ................. 26

Figura 25 – (Continuação) Testagem das funcionalidades de Adicionar/Remover um item/menu escolhido


......................................................................................................................................................................... 26

Figura 26 – Testagem do log out .............................................................................................................. 26

Figura 27 – Testagem do pedido ao McDonalds/Burger King ................................................................. 27

x
Figura 28 – Função ClickOn .................................................................................................................... 27

Figura 29 – Testagem da Criação de Conta ............................................................................................. 27

Figura 30 – Testagem de Criação de Conta ............................................................................................. 28

Figura 31 – Exemplo 1 ............................................................................................................................ 28

Figura 32 – Exemplo 2 ............................................................................................................................ 29

xi
Lista de Tabelas
Tabela 1 ...................................................................................................................................................... 5

Tabela 2 ...................................................................................................................................................... 5

Tabela 3 ...................................................................................................................................................... 6

Tabela 4 ...................................................................................................................................................... 6

Tabela 5 ...................................................................................................................................................... 6

Tabela 6 ...................................................................................................................................................... 7

Tabela 7 ...................................................................................................................................................... 8

Tabela 8 ...................................................................................................................................................... 8

Tabela 9 ...................................................................................................................................................... 9

Tabela 10 .................................................................................................................................................. 10

Tabela 11 .................................................................................................................................................. 10

Tabela 12 .................................................................................................................................................. 11

Tabela 13 .................................................................................................................................................. 12

Tabela 14 .................................................................................................................................................. 12

Tabela 15 .................................................................................................................................................. 13

xii
Lista de Siglas e Acrónimos

CSS Cascading Style Sheets consiste num mecanismo para


adicionar e definir estilo a um documento web.
Hyper Text Markup Language é uma linguagem utilizada no
HTML
desenvolvimento das páginas web.
Intregrated development environment consiste numa ferramenta
IDE com um conjunto de caraterísticas e ferramentas que permitem o
desenvolvimento do software.[28]
IPCA Instituto Politécnico do Cávado e do Ave
Consiste num sistema de gestão de base de dados, que utiliza a
MYSQL
linguagem SQL como interface.[24]
Hypertext Preprocessor é uma linguagem de código aberto com a
PHP especialização para o desenvolvimento web e que pode ser
embutida dentro do HTML.[25]

xiii
Modernização e otimização de sistema de entrega na área da restauração

Introdução

1.1.Enquadramento
Este relatório pretende demonstrar as atividades realizadas durante a ocorrência do
estágio na BSB Smart and Bright Ideas.

Este estágio em grande parte esteve relacionado com o Projeto Arroz Seco na qual se
desenvolveu uma aplicação móvel / website com o objetivo da criação de uma
plataforma de serviços de entregas e de take-away.Este sistema foi desenvolvido na
parte do back-end em PHP e na parte do front-end foi utilizada a plataforma do
Angular com a linguagem Javascript. Na base de dados foi utilizado o MYSQL.

Quanto à empresa, inicialmente entrei em contacto com os responsáveis da mesma


com o intuito de colaborar com a entidade de acolhimento.

Na realização do estágio foram colocados á prova os conhecimentos adquiridos ao


longo da licenciatura bem como aprofundá-los, assim como a aquisição de novas
competências. No entanto, devido ao contexto deste projeto os conteúdos abordados
não foram aplicados na área da medicina.

1.2.Projeto Arroz Seco


A plataforma Arroz Seco consiste num projeto na área da restauração com o objetivo
de ajudar os estabelecimentos dentro deste projeto a serem mais eficazes na sua área.
Neste projeto foi desenvolvida uma aplicação que providencie serviços de entrega e de
take-away aos clientes dos restaurantes envolvidos no projeto do Arroz Seco.

1.3. Contributos no Projeto


Na primeira fase do projeto foi realizado o levantamento de requisitos na qual se
desenvolveu diagramas e um modelo ER de forma a organizar e a definir como as
funcionalidades da aplicação.

Entretanto na segunda fase foram elaborados vários testes manuais e automatizados á


aplicação para verificar se os requisitos da aplicação desenvolvida estão devidamente
implementados.

1
Modernização e otimização de sistema de entrega na área da restauração

Caracterização da Entidade de Acolhimento


A entidade de acolhimento onde se realizou o estágio foi a BSB Smart and Bright Ideas.
Esta empresa é uma pequena software house fundada em 2014 e é baseada na cidade de
Braga. Esta entidade especializa-se nas seguintes soluções tecnológicas: o
desenvolvimento de plataformas web, aplicações móveis, design e consultoria informática.
Alguns exemplos destas soluções são as seguintes: as aplicações móveis da Minha
Freguesia e TUB.

2
Modernização e otimização de sistema de entrega na área da restauração

Programa de Estágio
Como já foi mencionado na secção da introdução o meu papel no projeto está dividido em
duas fases: o levantamento de requisitos na qual deu origem aos diagramas (casos de uso,
diagrama de sequências e a um fluxograma) e um modelo de entidade relação com o
propósito de organizar e definir as funcionalidades da aplicação. Os conteúdos lecionados
nas Unidades Curriculares: Engenharia de Software e Análise de Projetos e Sistemas foram
aplicados no desenvolvimento deste projeto.

No que diz respeito à segunda fase do projeto elaboraram-se vários testes manuais e
automatizados à aplicação para verificar se os requisitos da aplicação desenvolvida estão
devidamente implementados. Para a elaboração dos testes automatizados não se utilizou
conhecimentos adquiridos durante a realização do curso. Com isto, obteve-se uma
autoaprendizagem durante o estágio com vista a concretizar-se a testagem automatizada.

3.1.Tecnologias Utilizadas

3.1.1. IDE
O NetBeans é um ambiente de desenvolvimento integrado de código aberto com o
objetivo de desenvolver aplicações através de um conjunto de componentes de
software modulares nas seguintes linguagens: Java, PHP, C++, HTML, Javascript
e entre outros.[1][2][3][5]

O Eclipse é uma plataforma de código aberto para o desenvolvimento de aplicações


baseadas no computador utilizando várias linguagens tais como Java Python,
C/C++, Ruby e entre outras. Existem vários plug-ins e frameworks que podem ser
instalados no IDE.[9]

3.1.2. Servidor
XAMPP é uma plataforma de software livre e de cross-platform que consiste na
criação de um servidor local no desktop com o propósito de realizar testes no
website antes de submeter no servidor principal. A plataforma utiliza as linguagens
PHP e Perl, para a gestão da base de dados MariaDB e MYSQL e por fim é
utilizado o servidor Apache.[4][6][7]

3
Modernização e otimização de sistema de entrega na área da restauração

3.1.3. Ferramenta Colaborativa


GitScrum é uma plataforma da metedologia Agile com o objetivo de ajudar as
equipas de desenvolvimento a gerir projeto, planear rotinas de trabalho e
organização de portefólios do cliente.[30]

3.1.4. Ferramenta Modelagem


Visual Paradigm é uma ferramenta de software utilizada por equipas de
desenvolvimento de software para modelar o sistema de informação de negócio
(Ex: Diagramas). Esta ferramenta utiliza linguagens de modelação tais como UML,
SoaML, BPMN, XMI e entre outros.[8]

3.1.5. Framework
Selenium é uma framework de código aberto e de testagem automática utilizada
para a validação de aplicações web em vários browsers e plataformas. Utiliza varias
linguagens como Java, C#, Python e etc. A framework tem varias ferramentas:
Selenium Integrated Development Environment (IDE), Selenium Remote Control
(RC), WebDriver ,Selenium Grid.

O Selenium WebDriver é uma coleção de API que são utilizados para automatizar a
testagem de uma aplicação web. [10][11]

3.1.6. Linguagens Utilizadas


Java é uma linguagem desenvolvida pela Sun Microsystems que começou pelo
James Gosling e lançada em 1995 como um componentes principal da Sun
Microsystems.É uma linguagem orientada a objetos, multiplataforma, independente
da plataforma e da arquitectura , robusta e tem suporte de multi-threading.[12][13]

HTML significa Hyper Text Markup Language consiste numa linguagem de


marcação para apresentar e estruturar o conteúdo da web através da utilização de
tags e atributos.[14][15][16]

CSS é chamado de linguagem Cascading Style Sheet e é usado para estilizar


elementos escritos em uma linguagem de marcação como HTML. O CSS separa o
conteúdo da representação visual do site.[17][18]

4
Modernização e otimização de sistema de entrega na área da restauração

3.2.Requisitos

3.2.1. Requisitos Funcionais:


Cliente

A tabela 1 apresenta os requisitos funcionais em relação ao cliente.

Código Requisito Funcional


Pode escolher o seu pedido pelo serviço take-away ou de entrega ao
RF01
domicílio.
Pode consultar e escolher um ou mais restaurante(s) a partir de uma lista de
RF02
restaurantes.
Pode consultar e escolher um ou mais item(s)/menu(s) a partir de uma
RF03
ementa de um restaurante.
Após a escolha de um item o utilizar pode adicionar/remover ingredientes
RF04
do item.

RF05 Pode adicionar/editar/remover restaurantes de uma lista de favoritos.

RF06 Pode adicionar/editar/remover item/menus de uma lista de favoritos.

RF07 Pode editar/remover item(s)/menu(s) do carrinho de compras.

RF08 Pode utilizar um código de desconto.


No fim do seu pedido pode pagar a partir de 3 métodos: Dinheiro, Cartão
RF09
Multibanco, MBWay.

RF10 Pode fazer pedidos a restaurantes num raio de 30km da sua localização.

RF11 Recebe notificações do estafeta e do restaurante.

Tabela 1

Utilizador Convidado

A tabela 2 apresenta o requisito funcional em relação ao utilizador Convidado.

Código Requisito Funcional


RF12 Pode consultar a lista de restaurantes e as suas ementas.

Tabela 2

5
Modernização e otimização de sistema de entrega na área da restauração

Empregado/Gestor

A tabela 3 apresenta os requisitos funcionais em relação ao Empregado/Gestor.

Código Requisito Funcional


Pode adicionar/editar/remover menu(s)/item(s)/ingrediente(s) do seu
RF13
respetivo restaurante.

RF14 Notificar que o pedido está atrasado ao estafeta e ao cliente.

Tabela 3

Estafeta

A tabela 4 apresenta os requisitos funcionais em relação ao estafeta.

Código Requisito Funcional


RF15 Notificar ao cliente e ao restaurante que ocorreu um atraso.

RF16 Pode ver os detalhes do pedido do utilizador.


Ligação rápida para conversa no Whatsaap e ligação rápida para chamada
RF17
entre o cliente e o estafeta.

RF18 Pode visualizar o dinheiro que estão a ganhar em tempo real.


Recebe uma notificação quando se encontra numa localização na qual o
RF19
estafeta já realizou a entrega do pedido.

Tabela 4

Administrador

A tabela 5 apresenta os requisitos funcionais em relação ao administrador.

Código Requisito Funcional


RF20 O Administrador pode adicionar/remover restaurantes do sistema.

Tabela 5

6
Modernização e otimização de sistema de entrega na área da restauração

Aplicação

A tabela 6 apresenta os requisitos funcionais em relação á aplicação.

Código Requisito Funcional


RF21 Quando é escolhido um menu/item eles são adicionados ao carrinho de
compras do Cliente.
RF22 Quando é adicionado/removido um ingrediente do um item/menu o seu
preço aumenta/desce.
RF23 Quando é escolhido um menu/item o seu preço é incrementando no preço
final.
RF24 O sistema tem de ser capaz de enviar notificações ao cliente, restaurante,
estafeta.
RF25 Gera uma imagem com um código de desconto.
RF26 Verificar qual o estafeta que está mais perto do restaurante para realizar o
pedido do cliente.
RF27 Identificar os restaurantes nos pedidos.
RF28 Dentro desta área uma área específica para restaurantes e lojas que são
nossos parceiros (com melhor preço de deslocação, com acesso através do
login deles)
RF29 20% de desconto para aniversariantes.
RF30 Verificar quanto tempo demora o estafeta.
RF31 Mostrar sugestões de restaurantes onde o cliente realizou os seus pedidos
mais recentes.
RF32 Filtros de pesquisa por tipos de comida.
RF33 Caixa/Área de Sugestões.
RF34 Verificar em tempo real quantos pedidos e pagamentos foram realizados na
app, no restaurante e no estafeta até ao dia de pagamento.
RF35 O pedido não pode ultrapassar as limitações do peso do transporte do
estafeta.

Tabela 6

7
Modernização e otimização de sistema de entrega na área da restauração

3.2.2. Requisitos Não Funcionais:


Utilizador Convidado

A tabela 7 apresenta os requisitos não funcionais em relação ao utilizador


convidado.

Código Requisito Não Funcional


RNF01 Não pode fazer pedidos
RNF02 Não pode consultar o carrinho de compras

Tabela 7

Aplicação

A tabela 8 apresenta os requisitos não funcionais em relação á aplicação.

Código Requisito Não Funcional


RNF03 É proibido vender ou ceder dados a terceiros. Os dados devem estar num
servidor seguro
RNF04 O sistema deve funcionar em Android/IOS e Web.

Tabela 8

Pressupostos e Constrangimentos:

• Depois do pedido estar confirmado o cliente não poderá anular o pedido.

O Processo que foi implementado neste projeto foi um método Agile1, o


Scrum2.

1
- Agile é um conjunto de metodologias baseada no desenvolvimento iterativo onde os requisitos e
soluções progridem através da colaboração entre as equipas multifuncionais e auto-organizadas. [26]
2
- Scrum é uma framework utilizada pelas as equipas de desenvolvimento de software.Implementa os
principios do Agile como um conjunto de praticas e funções . [27]

8
Modernização e otimização de sistema de entrega na área da restauração

3.3. User Stories


User Stories Fundamentais no desenvolvimento da aplicação (Tabelas 9 e 10).

Story
Código User Story
Points
O Cliente pode realizar o pedido para uma determinada data e
US01 20
hora.
US02 O Cliente pode visualizar os seus pedidos numa lista. 20
US03 O Cliente pode visualizar os restaurantes numa lista. 20
O Cliente pode visualizar os seus restaurantes favoritos numa
US04 20
lista.
US05 O Cliente pode anular ou editar o seu pedido. 20
US06 O Cliente pode visualizar a ementa do restaurante. 20
O Cliente recebe notificações provenientes do sistema e do
US07 30
estafeta.
O Cliente pode utilizar os seguintes métodos de pagamento:
US08 cartão, MBWay (utilizando uma API providenciada pelo serviço 50
Eu Pago) e dinheiro.
US09 O Cliente pode utilizar o serviço de entregas ou de take-away 20
Empregado/Gestor pode remover ou editar um item/menu da
US10 20
ementa do seu restaurante.
Empregado/Gestor pode editar o preço item/menu da ementa do
US11 20
seu restaurante.
Empregado/Gestor recebe notificações provenientes do sistema
US12 30
e do estafeta.
US13 “Empregado/Gestor pode tornar-se parceiro deste serviço” 20
US15 Estafeta tem acesso aos detalhes do pedido do Cliente. 30
Estafeta recebe notificações provenientes do sistema e do
US16 30
restaurante.
US17 Estafeta pode visualizar os seus ganhos monetários ao minuto. 30
O Administrador tem a habilidade de remover ou adicionar
US18 25
restaurante na aplicação.
US19 Acesso as redes sociais/email/contacto telefónico da loja Até Já 10
US20 Gerar uma imagem com o código de desconto 30
US21 Adicionar uma morada a partir do google maps 25
US22 Não pode deixar avançar para a confirmação do pedido sem 30
confirmar o método de pagamento

Tabela 9
9
Modernização e otimização de sistema de entrega na área da restauração

Story
Código User Story
Points
US23 Realizar uma funcionalidade que permita recuperar a password. 25
Realizar uma funcionalidade que permita aos clientes ter uma lista
US24 20
de restaurantes favoritos.
US25 Os menus não podem abrir com todos os itens ativos. 20
Não deve permitir adicionar ao carrinho sem selecionar o menu
US27 25
sem os seus respetivos componentes
US28 A localização deve ser centrada na localização do utilizador. 20
Devia ser possível selecionar mais que um complemento
US29 15
dependendo do item/menu.
US30 A aplicação tem que rodar na horizontal. 20
Quando se remove um item/menu do carrinho também deve ser
US31 20
removido na página do checkout.
Tabela 10

User stories que contém funcionalidades com problemas (Tabelas 11, 12, 13)

Código User Story Story


Points
US32 Quando se remove um item/menu do carrinho também deve ser 20
removido na página do checkout.
US33 Na secção pertencente ao restaurante Friends o menu/itens ficam a 30
preço zero quando é selecionado um complemento/ingrediente.
US34 As vezes quando se adiciona a morada é adicionada á base de 30
dados, mas não aparece (mas regista a distância e o local a mesma,
porém não se consegue confirmar sem ter texto)
US35 Ao remover um item/menu a partir do checkout os itens/menu não 20
são removidos.
US36 É impossível alterar as unidades de um artigo no carrinho. 20
US37 Ao tentar fazer o login erradamente no browser, não aparece 30
qualquer tipo de informação no telemóvel.
US38 Após a definição do valor com que se vai pagar no método de 35
pagamento, se efetuar outra ação que envolva dialogs este
desaparece,
US39 Ao realizar um novo registo, a secção do Distrito não se encontra 20
funcional.
US40 Nos destaques da loja até já, ao clicar no preço, a janela do log in 15
aparece e desaparece e volta a aparecer.

Tabela 11

10
Modernização e otimização de sistema de entrega na área da restauração

Código User Story Story


Points
US41 Efetuou-se um pedido de 3 restaurantes diferentes, porém o 35
sistema informa que só realizou o pedido a 2 restaurantes.
US42 Ao criar um novo pedido em que a morada já esteja inserida desde 30
o início este não tem taxa de entrega.
US43 Na taxa de entrega a distância não é contabilizada 25
US44 Visualizar os pedidos de Entrega o mapa não informa da minha 30
localização.
US45 Se for pedido mais que uma unidade do produto não atualiza o 15
preço embora a função que realiza as contas finais não apresenta
problemas.
US46 Ao clicar num item/menu dos destaques (por ex: Taquitos ou 20
Friends) não apresenta o pop-up do item/menu.
US47 Mesmo após a seleção de um dos serviços aparece novamente a 15
janela pop-up a perguntar se quer mudar o serviço.
US48 Permite adicionar o pack pizza da loja Até Já, mas quando é 30
removido aparece mais nada no carrinho embora ele esteja
adicionado no carrinho.
US49 O menu dos diferentes tipos de comida não é coerente. Por 25
exemplo, em pizza só aparece Café Italy quando também deveria
aparecer o Fornito.
US50 Ao adicionar o produto o pop-up que aparece para adicionar vem 25
sem qualquer tipo de informação.
US51 Na camada ao escolher se quero uma ou meia francesinha, não 25
altera o preço, nem caso adicione as batatas.
US52 A localização automática não funciona corretamente. 20
US53 As categorias dos diferentes tipos de cozinha não funcionam. 15
US54 Não distingue o preço de meia francesinha ou de uma francesinha 10
na camada
US55 O botão de voltar para atrás no android (botão nativos do sistema 30
operativo) não funciona.
US56 O login não está a funcionar. 40
US57 As Categorias da comida não funcionam. 20
US58 Não é possível adicionar concelho no registo. 20
US59 A barra de pesquisa não funciona. 35

Tabela 12

11
Modernização e otimização de sistema de entrega na área da restauração

Código User Story Story


Points
US60 Em algumas lojas não aparecem itens/menus. 30
US61 Não me permite escolher sem batata, sou obrigado a adicionar a 30
batata
US62 Não me permite mudar o horário de entrega do pedido 30
US63 Após a conclusão do pedido, o cliente não recebe nenhum email com 35
a confirmação do mesmo.
US64 Não permite trocar a morada selecionada para a entrega a casa. 30
US65 Não pode permitir adicionar a quantidade nos pedidos de MAC ou 30
Burger King.
US66 Não é possível adicionar nenhum produto ao carrinho. 40
US67 As categorias dos diferentes tipos de cozinha não funcionam. 20
US68 Não existe preço do Barbecue Burger com Batata Frita no restaurante 20
Benditos
US69 Botões das redes sociais Do Até Já não funcionam 25
US70 Não tem o contacto telefónico do Até Já. 25
US71 Não me permite iniciar sessão, através do Botão no caso superior 35
direito.
Tabela 13

User stories com problemas na parte de front-end. (Tabela 14).

Story
Codigo User Story
Points

US72 O Icon do marisco não carrega ou está em falta. 5


US73 O botão "quer ser nosso parceiro" está desalinhado 5
US74 No restaurante Braga Marisco, a secção acompanhamentos aparece 15
todo mal formato.
US75 Existem packs sem fotos na loja do Até Já. 20
US76 Mudar a imagem dos Amendoins e mudar o seu preço na sua 10
imagem de 1 euro para 7.56 euros.

Tabela 14

12
Modernização e otimização de sistema de entrega na área da restauração

User Stories com problemas de desempenho da aplicação/website. (Tabela 15)

Código User Story Story


Points

US78 Ao remover um item/menu do carrinho as vezes há um pequeno 15


atraso.
US79 Ao mudar o serviço de estafeta para take-away e vice-versa com 20
alguma velocidade tem um atraso.
US80 Carregar no logo do Até Já devia dar para voltar para a página 25
principal

Tabela 15

Figura 1 – Gráfico de Burnup

A linha azul na figura 1 representa os objetivos que foram definidos para o


desenvolvimento da aplicação, contudo, a linha preta representa as metas alcançadas.

13
Modernização e otimização de sistema de entrega na área da restauração

3.4. Diagramas

3.4.1. Casos de Uso


O caso de uso consiste na demonstração das funcionalidades do sistema e das suas
interações que vão ser implementadas, neste caso na aplicação. [19]

Em primeiro passo foram realizados casos de uso (figuras 1, 2 e 3) que representam


diversas ações da aplicação em questão.

A figura 2 representa a funcionalidade que o Funcionário/Gestor tem no sistema.

Figura 2 - Caso de Uso 1 (Representa as


Funcionalidade que o Funcionário/Gestor tem na
aplicação)

14
Modernização e otimização de sistema de entrega na área da restauração

A figura 3 representa a funcionalidade que o Cliente tem no sistema.

Figura 3 - Caso de Uso 2 (Representa as Funcionalidade que o


Cliente tem na aplicação)

A figura 4 apresenta o processo de envio e notificações.

Figura 4 - Caso de Uso 3 (O Cliente, Estafeta e o


Funcionário/Gestor tem a funcionalidade de enviar e
receber notificações na aplicação)

15
Modernização e otimização de sistema de entrega na área da restauração

3.4.2. Fluxograma
O Fluxograma consiste num diagrama que carateriza um processo ou de um sistema
de forma visual. [20]

Elaborou-se um Fluxograma (figura 5) a representar o processo do pedido realizada


pelo cliente desde a fase da seleção até á confirmação do pedido.

Figura 5 - Fluxograma a representar o processo de


seleção do pedido

16
Modernização e otimização de sistema de entrega na área da restauração

3.4.3. Diagramas de Sequências


Os Diagramas de Sequências são diagramas que demonstram a interação de um
conjunto de objetos através de mensagens ao longo do tempo.[21]

De seguida foram desenvolvidos 4 diagramas de Sequências. A figura 6 representa o


processo após a confirmação do pedido.

Figura 6 - Diagrama de Sequência 1 a representa o processo após a confirmação do pedido

17
Modernização e otimização de sistema de entrega na área da restauração

A figura 7 representa o processo de pagamento via MBWay.

Figura 7 - Diagrama de Sequência 2 representa o processo de pagamento via MBWay

Esta figura 8 representa o processo de pagamento via cartão de crédito.

Figura 8 - Diagrama de Sequência 3 representa o processo de


pagamento via cartão

18
Modernização e otimização de sistema de entrega na área da restauração

Esta figura 9 representa o processo de pagamento via dinheiro.

Figura 9 - Diagrama de Sequência 2 representa o processo de


pagamento via MBWay

19
Modernização e otimização de sistema de entrega na área da restauração

3.4.4. Modelo de Entidade-Relação


Este diagrama, tal como o nome indica, demonstra a relação entre as entidades
presentes na aplicação (figura 10).[29]

Figura 10 – Modelo Entidade


Relação

20
Modernização e otimização de sistema de entrega na área da restauração

3.5. Testagem
A testagem foi elaborada em duas fases testagem manual e a automatizada, com o auxílio
das ferramentas Netbeans e XAMPP.
A testagem manual foi realizada pelos vários membros da equipa. O método de testagem
que se realizou foi o teste unitário. Os testes unitários consistem num conjunto de testes
que verificam se a funcionalidade do sistema está corretamente definida de acordo com
os requisitos definidos [22]. Nesta primeira fase foram testadas as funcionalidades
mencionadas nos User Stories.
Por outro lado, a testagem automatizada utilizou-se o Eclipse IDE e a Framework do
Selenium para concretizar a testagem. O tipo de testagem utilizada foi os testes de
regressão. O teste de regressão é uma técnica de testagem na qual se verificam os
parâmetros definidos e consistentes para as diferentes versões do sistema com o objetivo
de garantir que as funcionalidades do sistema não tenham problemas ou erros.[23]
Aqui foram testadas as seguintes funcionalidades: a criação de conta, o login in, o log
out e a realização do pedido.
O processo de testagem começa com a inicialização do webdriver que permitir abrir uma
janela do Google Chrome de seguida a desativação dos cookies do website, e a
maximização da janela do browser e por fim é nos dado o acesso à página.
Após o processo de inicialização são selecionados os elementos da página (elementos
HTML e CSS) e é realizado as funcionalidades do click de um botão ou de uma seleção
de um dropdown ou a introdução de dados tais como as credencias ou críticas ao
menu/item.
Na figura 11 é apresentado as bibliotecas utilizadas para realizar os testes.

Figura 11 - Bibliotecas utilizadas

21
Modernização e otimização de sistema de entrega na área da restauração

Nas figuras 12 e 13 visualiza-se a inicialização e a testagem do login com a introdução


das credenciais.

Figura 12 - Inicialização do script

Figura 13 – Testagem do login

Nas figuras 14 e 15 é testado a escolha do pedido.

Figura 14 – Testagem da seleção do Pedido

22
Modernização e otimização de sistema de entrega na área da restauração

Figura 15 – (Continuação)Testagem da seleção do Pedido

Nas figuras 16 e 17 são testadas a definição do serviço que o cliente irá escolher bem
como a definição da morada de entrega e da data e hora.

Figura 16 – Testagem da seleção do serviço e da definição da morada

Figura 17 – Testagem da definição da morada (Continuação) e da data/hora

23
Modernização e otimização de sistema de entrega na área da restauração

Na figura 18 visualiza-se a testagem do carrinho de compras.

Figura 18 – Testagem do Carrinho de Compras

Na figura 19 observa-se a testagem da edição da morada e da entrega no checkout.

Figura 19 – Testagem do carrinho de compras e a edição da


morada

As figuras 20 e 21 realiza-se a testagem da edição da data/hora no checkout.

Figura 20 – Testagem da edição da data/hora

24
Modernização e otimização de sistema de entrega na área da restauração

Figura 21 – (Contiuação) Testagem da edição da data/hora

Nas figuras 22 e 23 é testado os métodos de pagamento.

Figura 22 – Testagem dos métodos de pagamento

Figura 23 – (Continuação) Testagem dos métodos de pagamento

25
Modernização e otimização de sistema de entrega na área da restauração

As figuras 25 e 26 é realizado a testagem das funcionalidades de adicionar/remover de


um menu/item escolhido.

Figura 24 – Testagem das funcionalidades de Adicionar/Remover um item/menu escolhido

Figura 25 – (Continuação) Testagem das funcionalidades de Adicionar/Remover um item/menu escolhido

A figura 26 é testado o logout.

Figura 26 – Testagem do logout

26
Modernização e otimização de sistema de entrega na área da restauração

A figura 27 realiza o teste do pedido ao McDonalds ou ao Burger King.

Figura 27 – Testagem do pedido ao McDonalds/Burger King

Durante a realização de teste foi realizada uma função clickOn devido ao facto que a
função providenciada pelo IDE não estava a funcionar corretamente (figura 28). Esta
função consiste na seleção de um elemento web que aguarda um tempo defindo até que
possa ser selecionado.

Figura 28 – Função ClickOn

Nas figuras 29 e 30 apresenta-se a testagem a funcionalidade da criação de uma conta


no website/app.

Figura 29 – Testagem da Criação de Conta

27
Modernização e otimização de sistema de entrega na área da restauração

Figura 30 – Testagem de Criação de Conta

3.6.Exemplos de erro encontrados na testagem


Na testagem da funcionalidade de adicionar a morada ocorreu um erro revelando que a era
possível introduzir moradas sem informação (morada vazia). (Figura 31)

Figura 31 – Exemplo 1

28
Modernização e otimização de sistema de entrega na área da restauração

Na testagem da funcionalidade do checkout deparou-se com um problema que o item/menu


não é removido até que a página web seja atualizada. (Figura 32)

Figura 32 – Exemplo 2

29
Modernização e otimização de sistema de entrega na área da restauração

Análise crítica e proposta de melhorias


Durante a realização do estágio foram surgindo algumas dificuldades durante o
desenvolvimento da aplicação tais como: Na fase de testagem tive de recorrer á testagem
na parte web da aplicação devido a problemas de configuração da testagem automática na
aplicação pelo dispositivo móvel. Também nesta fase o código para a testagem apesar de
não ter erros o debug nem sempre era bem-sucedido devido ao facto quando o script era
“corrido” o Angular não carregava por completo as funcionalidades do website.

Quanto á realização dos diagramas e no levantamento não houve grandes problemas a


reportar.

Penso que a entidade de acolhimento deverá ponderar adotar estes testes automatizados
uma vez que irão economizar tempo e recursos humanos.

30
Modernização e otimização de sistema de entrega na área da restauração

Conclusão
Em suma, a experiência na generalidade do estágio teve um contributo positivo, na
qual me foi permitido pôr em prática os conteúdos abordados nas várias unidades
curriculares do curso e também aprendizagem e a aplicação de novas tecnologias e
métodos durante a minha estadia na BSB Smart and Bright Ideas.

Os objetivos de estágio consistiram no levantamento de requisitos, no desenvolvimento


de diagramas e na testagem nas quais foram bastante laboriosas. Principalmente a área
da testagem na qual grande parte dos problemas ocorreram.

A integração na equipa desta entidade de acolhimento foi um processo sereno apesar


das condições da situação atual não serem as melhores. O facto de que o estágio foi
realizado na sua maioria presencialmente permitiu uma boa inclusão no ambiente de
trabalho.

Em conclusão, na minha opinião penso que o estágio não poderia ter corrido melhor e o
sucesso do mesmo assentou no bom ambiente e na boa comunicação por parte da
empresa. Este projeto foi bastante enriquecedor quer a nível profissional que a nível
pessoal.

31
Modernização e otimização de sistema de entrega na área da restauração

Bibliografia
[1] https://netbeans.apache.org/about/index.html

[2] https://www.techopedia.com/definition/24735/netbeansv

[3] https://en.wikipedia.org/wiki/NetBeans

[4] https://www.javatpoint.com/xampp

[5] https://www.apachefriends.org/index.html

[6] https://wpblogx.com/what-is-xampp/

[7] https://www.devopsschool.com/blog/what-is-xampp-and-how-to-install-xampp/

[8] https://www.visual-paradigm.com/support/faq.jsp

[9] https://www.educba.com/what-is-eclipse-ide/

[10] https://www.guru99.com/introduction-to-selenium.html

[11] https://economictimes.indiatimes.com/definition/selenium-web-driver

[12] https://www.tutorialspoint.com/java/java_overview.htm

[13] https://wiki.portugal-a-programar.pt/dev_geral:java:tutorial:03_linguagem

[14] https://www.techtudo.com.br/artigos/noticia/2011/12/o-que-e-html5.html

[15] https://www.hostinger.com.br/tutoriais/diferenca-entre-html-e-html5

[16] https://www.infoescola.com/informatica/html/

[17] https://en.wikipedia.org/wiki/CSS

[18] https://www.hostinger.com.br/tutoriais/o-que-e-css-guia-basico-de-css

[19] https://medium.com/operacionalti/uml-diagrama-de-casos-de-uso-29f4358ce4d5

[20] https://www.lucidchart.com/pages/pt/o-que-e-um-fluxograma

32
Modernização e otimização de sistema de entrega na área da restauração

[21]https://support.microsoft.com/pt-pt/office/criar-um-diagrama-de-
sequ%C3%AAncia-uml-c61c371b-b150-4958-b128-902000133b26

[22] http://www.linhadecodigo.com.br/artigo/576/java-testes-unitarios-e-junit.aspx

[23] https://www.devmedia.com.br/teste-de-regressao/23038

[24] https://www.oracle.com/pt/mysql/

[25] https://www.php.net/manual/pt_BR/intro-whatis.php

[26] https://www.cprime.com/resources/what-is-agile-what-is-scrum/

[27] https://docs.microsoft.com/en-us/devops/plan/what-is-scrum

[28] https://www.codecademy.com/articles/what-is-an-ide

[29] https://www.lucidchart.com/pages/pt/o-que-e-diagrama-entidade-relacionamento

[30] https://medium.com/@gitscrum/what-is-gitscrum-f698987a5014

33
Modernização e otimização de sistema de entrega na área da restauração

Anexos
Anexo 1

1
Modernização e otimização de sistema de entrega na área da restauração

Anexo 2

Você também pode gostar