Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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.
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.
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.
vii
Índice
Originalidade e Direitos de Autor .............................................................................. iii
Agradecimentos............................................................................................................ iv
Resumo........................................................................................................................... v
Introdução ............................................................................................................ 1
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
Conclusão ........................................................................................................... 31
Bibliografia .................................................................................................................. 32
Anexos ............................................................................................................................ 1
ix
Lista de Figuras
Figura 1 – Gráfico de Burnup .................................................................................................................. 13
Figura 3 - Caso de Uso 2 (Representa as Funcionalidade que o Cliente tem na aplicação) ..................... 15
x
Figura 28 – Função ClickOn .................................................................................................................... 27
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
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.
1
Modernização e otimização de sistema de entrega na área da restauração
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]
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.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]
4
Modernização e otimização de sistema de entrega na área da restauração
3.2.Requisitos
RF10 Pode fazer pedidos a restaurantes num raio de 30km da sua localização.
Tabela 1
Utilizador Convidado
Tabela 2
5
Modernização e otimização de sistema de entrega na área da restauração
Empregado/Gestor
Tabela 3
Estafeta
Tabela 4
Administrador
Tabela 5
6
Modernização e otimização de sistema de entrega na área da restauração
Aplicação
Tabela 6
7
Modernização e otimização de sistema de entrega na área da restauração
Tabela 7
Aplicação
Tabela 8
Pressupostos e Constrangimentos:
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
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)
Tabela 11
10
Modernização e otimização de sistema de entrega na área da restauração
Tabela 12
11
Modernização e otimização de sistema de entrega na área da restauração
Story
Codigo User Story
Points
Tabela 14
12
Modernização e otimização de sistema de entrega na área da restauração
Tabela 15
13
Modernização e otimização de sistema de entrega na área da restauração
3.4. Diagramas
14
Modernização e otimização de sistema de entrega na área da restauraçã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]
16
Modernização e otimização de sistema de entrega na área da restauração
17
Modernização e otimização de sistema de entrega na área da restauração
18
Modernização e otimização de sistema de entrega na área da restauração
19
Modernização e otimização de sistema de entrega na área da restauraçã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.
21
Modernização e otimização de sistema de entrega na área da restauração
22
Modernização e otimização de sistema de entrega na área da restauração
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.
23
Modernização e otimização de sistema de entrega na área da restauração
24
Modernização e otimização de sistema de entrega na área da restauração
25
Modernização e otimização de sistema de entrega na área da restauração
26
Modernização e otimização de sistema de entrega na área da restauração
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.
27
Modernização e otimização de sistema de entrega na área da restauração
Figura 31 – Exemplo 1
28
Modernização e otimização de sistema de entrega na área da restauração
Figura 32 – Exemplo 2
29
Modernização e otimização de sistema de entrega na área da restauração
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.
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