Você está na página 1de 88

REPÚBLICA DE ANGOLA

MINISTÉRIO DO ENSINO SUPERIOR, CIÊNCIA, TECNOLOGIA E INOVAÇÃO


INSTITUTO SUPERIOR POLITÉCNICO DE NDALATANDO
DEPARTAMENTO DE ENSINO E INVESTIGAÇÃO DE ENGENHARIAS E
TELECOMUNICAÇÕES

APLICAÇÃO WEB DE GESTÃO DE ATENDIMENTO PARA O RESTAURANTE


E CHURRASCARIA MAMBOS GIL NA PROVÍNCIA DE LUANDA

Monografia de Licenciatura em Informática de Gestão

Autoras: Alíria Mateus dos Santos, 11840 e Maria Rodrigues Francisco Tomé, 11950
Orientador: Cristóvão João Zua, Ph.D.

Ndalatando, Agosto de 2023


INSTITUTO SUPERIOR POLITÉCNICO DE NDALATANDO
DEPARTAMENTO DE ENSINO E INVESTIGAÇÃO DE ENGENHARIAS E
TELECOMUNICAÇÕES

APLICAÇÃO WEB DE GESTÃO DE ATENDIMENTO PARA O RESTAURANTE


E CHURRASCARIA MAMBOS GIL NA PROVÍNCIA DE LUANDA

Autoras: Alíria Mateus dos Santos, 11840 e Maria Rodrigues Francisco Tomé, 11950

Monografia de Licenciatura apresentada ao


Instituto Superior Politécnico de Ndalatando como
parte dos requisitos para obtenção do grau
académico de Licenciadas em Informática de
Gestão.
Orientador: _______________________
Cristóvão João Zua, Ph.D.

Ndalatando, Agosto de 2023


ALÍRIA MATEUS DOS SANTOS & MARIA RODRIGUES FRANCISCO TOMÉ
APLICAÇÃO WEB DE GESTÃO DE ATENDIMENTO PARA O RESTAURANTE
E CHURRASCARIA MAMBOS GIL NO MUNICÍPIO DA LUANDA NA
PROVÍNCIA DE LUANDA

Monografia apresentada ao Instituto Superior Politécnico de Ndalatando para obtenção do


grau licenciadas em Informática de Gestão

COMISSÃO DE JÚRI

_________________________________
(Presidente)

_________________________________
(1º Vogal)

_________________________________
(2º Vogal)
Inserir aqui a citação………………………
Autor.
Inserir aqui a dedicatória …………
Autor.
AGRADECIMENTOS
Inserir aqui os agradecimentos.
Alíria Mateus dos e Maria Francisco R. Tomé
RESUMO
O projecto consiste na criação de uma aplicação web de gestão de atendimento para o
Restaurante & Churrascaria Mambos Gil, localizado na Província de Luanda. A situação
problemática identificada no restaurante é o uso de blocos de papel tradicionais para anotar
pedidos, o que resulta em diversos problemas, como pedidos incorrectos, atendimento
demorado e dificuldades na comunicação com a cozinha. O problema científico central é:
"Como tornar o atendimento do Restaurante & Churrascaria Mambos Gil mais dinâmico e
diferenciado diante da concorrência?" A hipótese formulada sugere que a automatização do
processo de pedidos e entrega de produtos pode reduzir esses problemas, garantindo maior
segurança e rapidez no atendimento. O objectivo geral do projecto inclui o desenvolvimento
da aplicação web de gestão de atendimento, tornando os dados mais consistentes e
acessíveis, proporcionando agilidade, precisão e conferência nos dados, bem como
oferecendo um atendimento diferenciado. Os objectivos específicos incluem a revisão da
literatura sobre sistemas de informação para aplicações web de gestão de atendimento em
restaurantes, o levantamento de dados para compreender as necessidades do restaurante, a
adopção de uma metodologia de desenvolvimento de software adequada e a criação de uma
interface de usuário intuitiva. Com base na hipótese de que a automação pode melhorar o
atendimento, e considerando que os objectivos foram alcançados em 90%, a conclusão
preliminar é que a implementação da aplicação web trouxe melhorias significativas, mas
sugere-se a contínua monitorização e refinamento para atingir plenamente os objectivos
estabelecidos e manter a satisfação dos clientes e funcionários.
Palavras-chave: Aplicação web, Gestão de atendimento, Sistemas de informação.
ABSTRACT
The project consists of creating a web-based customer service management application for
the Mambos Gil Restaurant & Churrascaria, located in the Luanda Province. The identified
problem situation at the restaurant is the use of traditional paper pads to take orders, which
results in various issues such as incorrect orders, slow service, and communication
difficulties with the kitchen. The central scientific problem is: "How to make the customer
service at Mambos Gil Restaurant & Churrascaria more dynamic and distinctive in the face
of competition?" The formulated hypothesis suggests that automating the order and product
delivery process can reduce these problems, ensuring greater security and speed in customer
service. The overall project objective includes developing the web-based customer service
management application, making data more consistent and accessible, providing agility,
accuracy, and data validation, as well as delivering distinctive customer service. Specific
objectives include reviewing the literature on information systems for web-based customer
service management in restaurants, collecting data to understand the restaurant's needs,
adopting an appropriate software development methodology, and creating an intuitive user
interface. Based on the hypothesis that automation can improve customer service, and
considering that the objectives have been achieved to 90%, the preliminary conclusion is
that the implementation of the web application has brought significant improvements.
However, continuous monitoring and refinement are recommended to fully achieve the
established objectives and maintain customer and employee satisfaction.
Keywords: Web application, Customer service management, Information systems.
INDÍCE DE TABELAS
ÍNDICE DE FIGURAS
SIGLAS E ABREVIAÇÕES

API – Interface de Programação de Aplicação


AWS – Adobe Web Services
CONFEA – Conselho Federal de Engenharia e Agronomia
CPM/MCP – Método do Caminho Crítico
CSRF – Cross-Site Request Forgery
CSS – Cascading Style Sheets
DB/BD – Data Base/Base de Dados
DER/ER – Diagrama Entidade Relacionamento
Dptº – Departamento
DSS – Sistemas de suporte a decisões
EIS – Sistemas de informação executiva
GDPR – Regulamento Geral de Proteção de Dados
GoF – Gang of Four
HTML – Linguagem de Marcação de Hipertexto
HTTPS – Hyper Text Transfer Protocol Secure
ID – Identificador
IDE – Ambientes de Desenvolvimento Integrado
JS – JavaScript
JWT – JSON Web Tokens
Kz – Kwanza
Mbps – Megabits por segundo
MIS – Sistemas de informação gerencial
OAuth – Open-Authorization
ORM – Object-Relational Mapping
OS – Sistema Operativo
OWASP – Open Web Application Security Project
PERT – Program Evaluation and Review Technique
PHP – Pré processador de Hipertexto
POS – Point of Sale
PRINCE2 – Projects IN Controlled Environments
Qtd – Quantidade
REST – Representational State Transfer
RUP – Rational Unified Process
SCRUM – Sprint Cycle Review Update e Meeting
SDK – Kit de desenvolvimento de software
SI – Sistemas de Informação
SQL – Structured Query Language
SSL – Secure Sockets Layer
TI – Tecnologia de Informação
TPS – Sistema de processamento de transacções
USB – Universal Serial Bus
UX – Experiência do Usuário
XML – Extensible Markup Language
XP – Extreme Programming
XSS – Cross-Site Scripting
XSSI – Cross-Site Script Inclusion
XXE – XML External Entity
ÍNDICE

INTRODUÇÃO ..................................................................................................................... 1

CAPÍTULO I – SISTEMA DE INFORMAÇÃO EM APLICAÇÕES WEB DE


ATENDIMENTO .................................................................................................................. 8

1.1 Sistema de informação ............................................................................................... 8

1.1.1. Dados ......................................................................................................................... 8

1.1.2. Informação ................................................................................................................. 9

1.1.3. Classificação do sistema de informação .................................................................... 9

1.2. Engenharia e software.............................................................................................. 10

1.2.1. Software ................................................................................................................... 10

1.3. Engenharia de software............................................................................................ 10

1.3.1. Processos de desenvolvimento ................................................................................ 11

1.3.2. Requisitos ................................................................................................................ 15

1.3.3. Design ...................................................................................................................... 17

1.3.4. Codificação .............................................................................................................. 19

1.3.5. Testes ....................................................................................................................... 20

1.3.6. Implantação e manutenção ...................................................................................... 23

1.3.7. Gerenciamento de configuração .............................................................................. 24

1.3.8. Documentação ......................................................................................................... 24

1.3.9. Qualidade de Software ............................................................................................. 25

1.3.10. Gestão de projectos .................................................................................................. 27

1.3.11. Melhoria contínua .................................................................................................... 29

1.4. Aplicação Web ......................................................................................................... 29

1.5. Ferramentas de desenvolvimento em aplicações web ............................................. 30

1.6. Tecnologias adoptadas em aplicações web .............................................................. 31

1.7. Aplicação web para gestão de restaurantes.............................................................. 32

1.7.1. Exemplo de aplicações web para gestão de atendimento em restaurantes .............. 33


1.7.2. Segurança da informação em aplicações web.......................................................... 35

1.7.3. Principais vulnerabilidades em aplicações web ....................................................... 36

1.7.4. Melhores práticas no desenvolvimento de aplicações web para restaurantes ......... 37

CAPÍTULO II- CARACTERIZAÇÃO DA EMPRESA EM ESTUDO E PLANO DE


GESTÃO DO PROJECTO .................................................................................................. 40

2.1. Descrição da empresa .............................................................................................. 40

2.2. Papel da empresa ..................................................................................................... 40

2.3. Missão ...................................................................................................................... 40

2.4. Visão ........................................................................................................................ 41

2.5. Localização .............................................................................................................. 41

2.6. Organigrama da empresa ......................................................................................... 41

2.7. Visão Geral do projecto ........................................................................................... 41

2.8. Plano de gestão do projecto ..................................................................................... 44

2.9. Estudo de viabilidade do projecto............................................................................ 45

2.10. Ferramentas de gestão do projecto .......................................................................... 46

2.11. Recursos necessários para o desenvolvimento do projecto ..................................... 47

2.12. Análise de riscos do projecto e plano de contingência ............................................ 48

2.13. Plano orçamental do projecto .................................................................................. 49

CAPÍTULO III- PLANO DE DESENVOLVIMENTO DA APLICAÇÃO PROPOSTA . 50

3.1. Escopo da aplicação.................................................................................................. 50

3.2. Definição da aplicação.............................................................................................. 51

3.3. Metodologia de desenvolvimento da aplicação ........................................................ 51

3.4. Etapas de desenvolvimento da aplicação.................................................................. 51

3.4.1. Planeamento ............................................................................................................. 52

3.4.2. Sprint........................................................................................................................ 53

3.4.3. Revisão .................................................................................................................... 54

3.4.4. Retrospectiva ........................................................................................................... 54


3.5. Diagramas da aplicação ........................................................................................... 54

3.5.1. Diagrama de classe .................................................................................................. 54

3.5.2. Diagrama de entidade relacionamento (descrição textual) ...................................... 55

3.6. Telas da aplicação .................................................................................................... 57

3.7. Ferramentas utilizadas para o desenvolvimento da aplicação ................................. 63

3.8. Recursos para o desenvolvimento da aplicação ....................................................... 64

3.8.1. Recursos humanos ................................................................................................... 65

3.8.2. Recursos materiais ................................................................................................... 66

3.9. Custo para o desenvolvimento da aplicação ............................................................ 67

3.10. Requisitos necessários para instalação da aplicação................................................ 68

3.10.1. Requisitos de equipamentos .................................................................................... 68

3.10.2. Requisitos de rede .................................................................................................... 68

3.10.3. Requisitos de ambiente ............................................................................................ 68

3.10.4. Requisitos de segurança ........................................................................................... 69

CONCLUSÃO E RECOMENDAÇÕES ............................................................................. 71

REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................ 72


INTRODUÇÃO

Algumas décadas atrás viveu-se a era da agricultura, a sociedade evoluiu para era industrial
e actualmente vivencia-se a era do conhecimento, o que aumentou o grau de importância das
informações. Antes as empresas utilizavam papéis para registar as informações, os
documentos eram armazenados em pastas e guardados em armários, porém, com o advento
dos computadores, a tecnologia chegou nas empresas com o objectivo de melhorar os
processos de trabalho.

O presente projecto apresenta uma visão de solução referente ao problema que o Restaurante
& Churrascaria Mambos Gil enfrenta quanto ao atendimento, que se observou na rotina
diária dentro do estabelecimento. Assim a pretensão é explorar com maior detalhe e cuidado
o campo de investigação que o projecto apresenta, dando um equilíbrio mais sustentado entre
os conhecimentos adquiridos ao longo dos quatro anos de formação académica e a
experiência que se obteve na projecção de softwares com vista a solucionar problemas reais.
E o tema Desenvolvimento de uma aplicação web de atendimento para o Restaurante &
Churrascaria Mambos Gil que o presente projecto apresenta, caracteriza-se como um desafio
à aplicação prática dos conhecimentos e experiência adquiridos.

Situação problemática
O restaurante & churrascaria Mambos Gil ainda utiliza o tradicional bloco de papel para
anotar os pedidos dos clientes, acarretando diversos problemas como: o produto recebido é
diferente do que foi pedido pelo cliente; o atendimento é muito demorado; o papel chega à
cozinha rasurado e ilegível; o garçom precisa obrigatoriamente levar o pedido até a cozinha;
o garçom precisa ter uma boa escrita para que seja entendido pelos cozinheiros.
Estas são algumas situações rotineiras, principalmente em dias de grande movimento.
Problema Científico
Diante das dificuldades acima expostas levaram a formular o seguinte problema científico:
como tornar o atendimento do restaurante & churrascaria Mambos Gil mais dinâmico e
diferenciado diante da concorrência?

1
Objecto de investigação
Para o desenvolvimento do presente projecto o campo de estudo são as Tecnologias de
Informação e Comunicação.

Campo de investigação
Como campo de investigação foi definido o Sistema de Informação aplicado às aplicações
web.

Hipótese
A automatização do processo de pedidos e na entrega dos produtos pode reduzir bastante os
problemas que o restaurante enfrenta, garantindo uma maior segurança e rapidez no
atendimento.
Objectivo Geral
Desenvolver uma aplicação web de gestão de atendimento para o Restaurante &
Churrascaria Mambos Gil, tornando os seus dados mais consistentes, acessíveis de uma
forma mais prática e rápida gerando assim agilidade, precisão e conferência nos dados e um
atendimento diferenciado.
Objectivos específicos
 Apresentar um quadro teórico sobre sistemas de informação voltadas às aplicações web
de gestão de atendimento para restaurantes;
 Propor aos gestores do Restaurante & Churrascaria Mambos Gil o levantamento de dados
que facilitem o entendimento necessário para a implantação de uma aplicação web de
gestão de atendimento;
 Adoptar uma metodologia de desenvolvimento de software que se adapte às necessidades
do serviço;
 Apresentar um desenho da interface de usuário para o melhor entendimento das
funcionalidades da aplicação.

Metodologia
Metodologia é a explicação minuciosa, detalhada, rigorosa e exata de toda acção
desenvolvida no método (caminho) do trabalho de pesquisa. É a explicação do tipo de
pesquisa, do instrumental utilizado (questionário, entrevista), do tempo previsto, da equipa
de pesquisadores e da divisão do trabalho, das formas de tabulação e tratamento dos dados,
enfim, de tudo aquilo que se utilizou no trabalho de pesquisa. A metodologia é composta de
2
partes que descrevem o local, os sujeitos, o objecto de estudo, os métodos e técnicas, que
muitas vezes estão descritos como procedimentos da pesquisa, as limitações da pesquisa, o
tratamento de dados, conforme descrito na sinopse apresentada anteriormente (Kauark,
Manhães, & Medeiros, 2010).
Tipos de pesquisa
Classificação quanto à natureza: aplicada
A pesquisa aplicada objectiva gerar conhecimentos para aplicação prática dirigidos à solução
de problemas específicos. Envolve verdades e interesses locais.
Quanto a abordagem: qualitativa
Pela necessidade encontrada em se familiarizar com o ambiente no qual foi delimitado o
estudo, escolheu – se trabalhar com esta pesquisa, visto que a mesma encaixa – se melhor
no dinamismo adoptado para o desenvolvimento do presente projecto.
A pesquisa qualitativa considera que há uma relação dinâmica entre o mundo real e o sujeito,
isto é, um vínculo indissociável entre o mundo objectivo e a subjectividade do sujeito que
não pode ser traduzido em números. A interpretação dos fenómenos e a atribuição de
significados são básicas no processo de pesquisa qualitativa. Não requer o uso de métodos e
técnicas estatísticas. O ambiente natural é a fonte directa para colecta de dados e o
pesquisador é o instrumento-chave. É descritiva. Os pesquisadores tendem a analisar seus
dados indutivamente. O processo e seu significado são os focos principais de abordagem
(Moresi, 2003).
Quanto aos objectivos: exploratória
Optou – se pela pesquisa exploratória com a finalidade de se obter uma visão panorâmica do
facto estudado, já que a hipótese apresentada não é precisa e o tema escolhido é exigiu o
levantamento da literatura para maior subsídio teórico para o estudo. Através da pesquisa
exploratória foi possível a delimitação mais clara do tema.

As pesquisas exploratórias têm como principal finalidade desenvolver, esclarecer e


modificar conceitos e ideias, tendo em vista a formulação de problemas mais precisos ou
hipóteses pesquisáveis para estudos posteriores. De todos os tipos de pesquisa, estas são as
que apresentam menor rigidez no planeamento. Habitualmente envolvem levantamento
bibliográfico e documental, entrevistas não padronizadas e estudos de caso. Procedimentos
de amostragem e técnicas quantitativas de colecta de dados não são costumeiramente
aplicados nestas pesquisas (Gil, 2008).

3
Quanto aos procedimentos/tipos: bibliográfica
O tipo bibliográfico foi necessário como fonte para agregar no trabalho conteúdo literário
para o melhor enquadramento teórico no projecto.
A pesquisa bibliográfica é o estudo sistematizado desenvolvido com base em material
publicado em livros, revistas, jornais, redes electrónicas, isto é, material acessível ao público
em geral. Fornece instrumental analítico para qualquer outro tipo de pesquisa, mas também
pode esgotar-se em si mesma. O material publicado pode ser fonte primária ou secundária.
Por exemplo: o livro Princípios de Administração Científica, de Frederick W. Taylor,
publicado pela Editora Atlas, é fonte primária se cotejado com obras de outros autores que
descrevem ou analisam tais princípios. Estas, por sua vez, são fontes secundárias em relação
ao primeiro por se basearem nele para explicitar outras relações (Moresi, 2003).
Técnicas
Para a elaboração do presente projecto as técnicas impregnadas para o levantamento de
dados foram a observação e a técnica mista de entrevista).
Observação
A observação constitui elemento fundamental para a pesquisa. Desde a formulação do
problema, passando pela construção de hipóteses, colecta, análise e interpretação dos dados,
a observação desempenha papel imprescindível no processo de pesquisa. É, todavia, na fase
de colecta de dados que o seu papel se torna mais evidente. A observação é sempre utilizada
nessa etapa, conjugada a outras técnicas ou utilizada de forma exclusiva. Por ser utilizada,
exclusivamente, para a obtenção de dados em muitas pesquisas, e por estar presente também
em outros momentos da pesquisa, a observação chega mesmo a ser considerada como
método de investigação (Gil, 2008).
A observação nada mais é que o uso dos sentidos com vistas a adquirir os conhecimentos
necessários para o cotidiano. Pode, porém, ser utilizada como procedimento científico, à
medida que:
a) Serve a um objectivo formulado de pesquisa;
b) É sistematicamente planeada;
c) É submetida a verificação e controlos de validade e precisão.
A técnica de observação serviu como base do entendimento do funcionamento da empresa
em estudo e a interacção dos colaboradores com as tecnologias de informação e comunicação
existentes no ambiente da organização. Dessa forma, antes de partir para uma solução

4
genérica, observar a rotina dos colaboradores com os meios tecnológicos, permitiu analisar
qual a solução que se adequa à situação existente.
Entrevista
A entrevista serviu para a colecta de dados relevantes à investigação, através de diálogo e
questionário disponibilizados aos funcionários e ao gerente do referido estabelecimento. A
interacção com os funcionários permitiu colectar dados mais realistas do funcionamento da
empresa e a agilidade que uma aplicação web trará na rotina do estabelecimento.
A entrevista é uma das técnicas de colecta de dados, mais utilizada no âmbito das ciências
sociais. Psicólogos, sociólogos, pedagogos, assistentes sociais e praticamente todos os outros
profissionais que tratam de problemas humanos valem-se dessa técnica, não apenas para
colecta de dados, mas também com objectivos voltados para diagnóstico e orientação (Gil,
2008).
Métodos
Método é o conjunto das actividades sistemáticas e racionais que, com maior segurança e
economia, permite alcançar o objectivo - conhecimentos válidos e verdadeiros, traçando o
caminho a ser seguido, detectando erros e auxiliando as decisões do cientista (Moresi, 2003).
Para o presente projecto foi utilizado o método indutivo.

Método Indutivo: é um processo mental por intermédio do qual, partindo de dados


particulares, suficientemente constatados, infere-se uma verdade geral ou universal, não
contida nas partes examinadas. Portanto, o objectivo dos argumentos indutivos é levar a
conclusões cujo conteúdo é muito mais amplo do que o das premissas nas quais se basearam
(Lakatos & Marconi, 1992).

O método indutivo faz parte desta investigação pelo facto de que as conclusões para a
implantação de uma aplicação web de atendimento ao estabelecimento poderá não trazer a
solução ao problema de partida.

Resultados esperados
Espera-se que a aplicação a que o estudo propõe, possa de facto solucionar os maiores
problemas que o restaurante enfrenta, quanto ao atendimento de pedidos. Além do mais, que
a aplicação traga agilidade, eficiência e inovação ao estabelecimento.

5
Relevância social
O estudo apresenta as seguintes relevâncias:

 Melhoria da experiência do cliente: a aplicação web poderá proporcionar uma


experiência mais conveniente e eficiente para os clientes ao fazerem pedidos, personalizarem
as suas refeições e fornecerem feedback.
 Redução do tempo de espera: a aplicação poderá reduzir o tempo de espera dos
clientes por atendimento, permitindo que eles façam pedidos antecipadamente e minimizem
a espera no local.
 Eficiência operacional para os restaurantes: o projecto poderá ajudar os
restaurantes a optimizarem as suas operações, melhorando a gestão de pedidos, cozinha e
distribuição, o que poderá resultar em um serviço mais rápido e preciso.
 Gestão de recursos: a aplicação poderá auxiliar os restaurantes na gestão de
recursos, como ingredientes e pessoal, contribuindo para a redução do desperdício de
alimentos e melhorias na logística.
 Adaptação às mudanças tecnológicas: o projecto também poderá permitir que os
restaurantes se adaptem às mudanças tecnológicas e às preferências dos clientes, mantendo-
se relevantes em um cenário de rápida evolução.
 Desenvolvimento tecnológico local: o projecto poderá ainda estimular o
desenvolvimento tecnológico local, envolvendo desenvolvedores, designers e profissionais
de TI da região para a criação e manutenção da aplicação.
 Sustentabilidade e redução de impactos ambientais: a aplicação, por fim, poderá
contribuir para a redução do uso de papel (menus impressos, recibos) e contribuir para
práticas mais sustentáveis nos restaurantes.

Valor teórico/metodológico
O valor teórico desse projecto está na contribuição para o conhecimento na interseção entre
tecnologia e restaurantes, enquanto o valor metodológico reside na aplicação de métodos de
desenvolvimento de software e pesquisa empírica para criar e avaliar a aplicação de maneira
eficaz e fundamentada.
Actualidade e novidade
Reconhece-se que muitos projectos existentes no departamento de Ensino e Investigação de
Engenharias e Telecomunicações apresentam temas relacionados ao desenvolvimento de
aplicações web e afins, no entanto, o diferencial deste projecto não é apenas o segmento do
6
negócio, mas a abertura à escalabilidade da futura aplicação segundo a demanda da empresa,
a possibilidade de aplicar tecnologias e framework modernos em qualquer de
desenvolvimento da aplicação, uso de ferramentas de gestão de projecto fora do padrão,
como o Trello, e o Feedback contínuo mesmo após a conclusão do projecto.
Em resumo, a actualidade e novidade do projecto podem ser demonstradas por meio da
incorporação de tecnologias emergentes, abordagens de design centrado no usuário,
preocupações sociais e ambientais, bem como a capacidade de se adaptar às tendências e
demandas actuais do sector de restaurantes.

7
CAPÍTULO I – SISTEMA DE INFORMAÇÃO EM APLICAÇÕES WEB DE
ATENDIMENTO

1.1 Sistema de informação

Os sistemas de informação podem definir-como um conjunto formal de processos de análise,


que operando sobre uma colecção de dados estruturados de acordo às necessidades da
empresa, recolhe elabora e distribui, a informação necessária para realizar as operações
básicas e a tira de decisão na empresa, que nos sirva para desempenhar as funções de negócio
da empresa de acordo com suas estratégias (Fernandes, 2014).
Há três actividades em um sistema de informação que produzem a informação que essas
organizações necessitam para tomar decisões, controlar operações, analisar problemas e criar
novos produtos ou serviços. Estas actividades são:
Entrada: captura ou compila dados em bruto tanto do interior da organização como de seu
entorno externo.
Processamento: converte essa entrada de dados em uma forma mais significativa.
Saída: transfere a informação processada às pessoas que a usará ou às actividades para as
que se utilizará.

Entrada Processo Saída

Esquema básico do SI. Fonte: elaborado pelas autoras.

1.1.1. Dados

O conceito de dados refere-se a informações ou factos brutos que são colectados, registados
ou medidos. Esses dados podem existir em diversas formas, como números, palavras,
imagens, sons, entre outros. No contexto da tecnologia da informação e análise de dados, os
dados geralmente são considerados como o material bruto a partir do qual informações e
conhecimento são extraídos por meio de processos de organização, processamento e análise.
Ou seja, correspondem a um atributo, uma característica, uma propriedade de um objecto
que, sozinho, sem um contexto, não tem significado. Por exemplo, o número 1,95 (Rouse,
2023).

8
1.1.2. Informação

O conceito de informação refere-se ao resultado do processamento e interpretação de dados,


atribuindo significado e contexto aos elementos brutos. A informação é o produto resultante
da análise e organização dos dados, tornando-se relevante e útil para a tomada de decisões,
resolução de problemas e comunicação. São os dados, presentes em um contexto, carregados
de significados e entregues à pessoa adequada. Como exemplo, neste caso específico, o
número 1,95 pode representar a taxa de cotação do dólar para a venda no dia 21.09.2007.
Note que um mesmo dado pode adquirir um valor adicional quando transformado em
informação (Jacobsen, 2014).

1.1.3. Classificação do sistema de informação

Devido a que o principal uso que se dá aos SI é o de optimizar o desenvolvimento das


actividades de uma organização com o fim de ser mais produtivos e obter vantagens
competitivas, em primeiro término, pode-se classificar aos sistemas de informação em:
 Sistemas Competitivos
 Sistemas Cooperativos
 Sistemas que modificam o estilo de operação do negócio
De um ponto de vista empresarial os sistemas de informação podem classificar-se em:
Sistema de processamento de transacções (TPS) - administra a informação referente às
transacções produzidos em uma empresa ou organização, também lhe conhece como Sistema
de Informação operativa.
Sistemas de informação gerencial (MIS) - desenvolvem relatórios sobre o desempenho
actual da organização, permitindo monitorar e controlar a empresa e até mesmo prever o seu
desempenho futuro. Sistemas de informação que suportam o trabalho que lida com dados e
com conhecimento: integração de novo conhecimento no negócio; controlo do fluxo de
trabalho. Auxiliam especialistas e profissionais qualificados na criação e integração de novos
conhecimentos na organização. Orientados a solucionar problemas empresariais em geral.
Sistemas de suporte a decisões (DSS) - ferramentas para realizar a análise das diferentes
variáveis de negócio com a finalidade de apoiar o processo de tomada de decisões.
Sistemas de informação executiva (EIS) - ferramenta orientada a usuários de nível
gerencial, que permite monitorar o estado das variáveis de uma área ou unidade da empresa

9
a partir de informação interna e externa à mesma. É neste nível quando os sistemas de
informação dirigem informação estratégica para as empresas (Jacobsen, 2014).

1.2. Engenharia e software

Engenharia é a aplicação da ciência, matemática e tecnologia para resolver problemas


práticos em diversas áreas, como construção, produção industrial, transporte, comunicações,
entre outras. Os engenheiros utilizam seus conhecimentos para projetar, construir, testar e
manter sistemas e processos que atendam às necessidades da sociedade, Conselho Federal
de Engenharia e Agronomia (CONFEA, 2023).
1.2.1. Software

De acordo com Ian Sommerville (2011), software é definido como "a aplicação de uma
abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e
manutenção do software, ou seja, a aplicação de engenharia de software."
Sommerville enfatiza que o software não é apenas um produto final, mas também um
processo de desenvolvimento contínuo que requer planeamento, design, codificação, teste,
documentação e manutenção. Ele também destaca a importância da qualidade do software,
da colaboração entre a equipe de desenvolvimento e dos processos de gerenciamento de
projectos.

1.3. Engenharia de software

Para Sommerville (2011), engenharia de software é uma disciplina de engenharia cujo foco
está em todos os aspectos da produção de software, desde os estágios iniciais da
especificação do sistema até sua manutenção, quando o sistema já está sendo usado. Há duas
expressões importantes nessa definição:
 Disciplina de engenharia. Engenheiros fazem as coisas funcionarem. Eles aplicam
teorias, métodos e ferramentas onde for apropriado. No entanto, eles os usam seletivamente
e sempre tentam descobrir as soluções para os problemas, mesmo quando não há teorias e
métodos aplicáveis. Os engenheiros também reconhecem que devem trabalhar de acordo
com as restrições organizacionais e financeiras, então buscam soluções dentro dessas
restrições.
 Todos os aspectos da produção de software. A engenharia de software não se
preocupa apenas com os processos técnicos do desenvolvimento de software. Ela também

10
inclui atividades como gerenciamento de projecto de software e desenvolvimento de
ferramentas, métodos e teorias para apoiar a produção de software.
A engenharia de software tem por objetivo apoiar o desenvolvimento profissional de
software, mais do que a programação individual. Ela inclui técnicas que apoiam
especificação, projecto e evolução de programas, que normalmente não são relevantes para
o desenvolvimento de software pessoal.
Principais conceitos e princípios da engenharia de software
Existem vários conceitos e princípios fundamentais na engenharia de software que ajudam
a guiar as práticas de desenvolvimento de software. Destacam-se alguns dos principais:
qualidade, processo de desenvolvimento, requisitos, projecto de software, teste de Software,
manutenção de software, gerenciamento de configuração, documentação, padrões e padrões
de codificação, gestão de projectos, segurança de software, ciclo de vida do software,
iteração e incremento (Pressman, 2015).
Estes são apenas alguns dos conceitos e princípios fundamentais da engenharia de software.
A disciplina está em constante evolução devido às mudanças tecnológicas e às necessidades
do mercado, e os engenheiros de software devem estar dispostos a adaptar-se a novas práticas
e abordagens à medida que surgem.

1.3.1. Processos de desenvolvimento

Os processos de desenvolvimento de software são abordagens estruturadas e organizadas


para criar, entregar e manter sistemas de software. Esses processos guiam as atividades e
etapas envolvidas no desenvolvimento de software, desde a concepção até a implantação e
manutenção. Existem várias metodologias e abordagens de processos de desenvolvimento
de software, cada uma com as suas próprias características e princípios (Pressman, 2015).
Algumas das principais incluem:
Modelo em Cascata (Waterfall)
Nesse modelo tradicional, as actividades de desenvolvimento são realizadas
sequencialmente, com uma fase terminando antes que a próxima comece. As fases típicas
incluem análise de requisitos, design, implementação, testes e manutenção. É adequado para
projetos bem definidos e com requisitos estáveis.

11
Modelo em Cascata. Fonte: sieo2014.wordpress.com (Data de acesso: 13/08/2023)

Desenvolvimento Ágil
As metodologias ágeis, como Scrum, Kanban e XP (Extreme Programming), enfatizam a
flexibilidade e a colaboração. O desenvolvimento é dividido em ciclos curtos e interativos
chamados "sprints". A priorização do trabalho, a adaptação a mudanças e o envolvimento
contínuo do cliente são características-chave.

Desenvolvimento ágil – SCRUM. Fonte:devmedia.com (Acessado aos 12/08/2023)

12
Modelo Incremental
O software é desenvolvido em incrementos, ou seja, partes funcionais são construídas e
entregues em etapas. Cada incremento adiciona funcionalidade ao sistema, tornando-o
gradualmente mais completo.

Modelo incremental. Fonte: engenhariadesoftwareuesb.blogspot.com (Data de acesso


13/08/2023)
Modelo Espiral
Esse modelo combina elementos do modelo em cascata com abordagens iterativas. Cada
iteração envolve planeamento, análise de riscos, desenvolvimento, testes e avaliação. Ele é
útil para projectos complexos ou de alto risco.

13
Modelo espiral. Fonte: medium.com (Acessado aos 13/08/2023)
RUP (Rational Unified Process)
Uma metodologia que enfatiza a disciplina e a estrutura, dividindo o desenvolvimento em
fases e iterando por meio delas. Inclui orientações detalhadas para cada fase.

14
Modelo RUP. Fonte: voitto.com.br (Acessado aos 13/08/2023)
Cada processo tem as suas vantagens e desvantagens, e a escolha do processo depende do
tipo de projecto, requisitos, equipa e contexto. Muitas equipas e organizações também
adoptam abordagens híbridas que combinam elementos de diferentes processos para atender
às suas necessidades específicas.
1.3.2. Requisitos

Segundo Sommerville (2011) requisitos de software são descrições detalhadas das


funcionalidades, características e restrições que um sistema de software deve atender. Eles
são a base para o planeamento, desenvolvimento e avaliação de um projecto de software. O
processo de elicitação e documentação de requisitos é fundamental para garantir que o
software atenda às expectativas dos stakeholders e usuários finais. Requisitos bem definidos
ajudam a evitar mal-entendidos, retrabalho e a construção de sistemas que não atendem às
necessidades.

15
Os requisitos de software podem ser divididos em diferentes categorias:
Requisitos Funcionais: descrevem as funcionalidades específicas que o software deve
fornecer. Eles definem as acções que o sistema deve realizar em resposta às entradas dos
usuários ou outros sistemas. Exemplos de requisitos funcionais incluem:
"O sistema deve permitir que os usuários façam login e acessem suas contas pessoais."
"O sistema deve permitir que os usuários adicionem itens ao carrinho de compras e efetuem
pedidos."
Requisitos Não Funcionais: descrevem as características do sistema que não estão
relacionadas a funcionalidades específicas, mas afectam a sua qualidade e desempenho. Isso
inclui requisitos de desempenho, segurança, usabilidade e outros aspectos. Exemplos de
requisitos não funcionais incluem:
"O sistema deve suportar pelo menos 1000 usuários simultâneos sem degradação de
desempenho."
"As senhas dos usuários devem ser armazenadas de forma segura, utilizando criptografia
forte."
Requisitos de Interface: descrevem como o sistema interage com outros sistemas, hardware
ou componentes externos. Isso pode incluir interfaces de usuário, integrações com sistemas
legados e comunicação com dispositivos externos.
Requisitos de Usuário: refletem as expectativas e necessidades dos usuários finais em
relação ao sistema. Eles podem incluir cenários de uso, fluxos de trabalho e preferências de
interface.
Requisitos de Sistema: descrevem as características e restrições do ambiente de
implantação, incluindo requisitos de hardware, software e infraestrutura.
Requisitos de Desempenho: especificam critérios de desempenho que o sistema deve
atender, como tempo de resposta, tempo de carregamento e capacidade de processamento.
Requisitos de Qualidade: descrevem os padrões de qualidade que o software deve atender,
incluindo confiabilidade, disponibilidade e manutenibilidade.
Requisitos de Segurança: definem medidas de segurança que o sistema deve implementar
para proteger dados sensíveis e prevenir acessos não autorizados.
Requisitos de Testes: especificam critérios e cenários de teste que serão usados para validar
o software em relação aos requisitos.
Restrições e Limitações: incluem quaisquer restrições de orçamento, prazo, recursos ou
outros factores que possam impactar o desenvolvimento do software.

16
A documentação adequada dos requisitos é crucial para o sucesso do projecto de software.
Os requisitos devem ser claros, concisos, não ambíguos e compreensíveis por todas as partes
envolvidas no projecto. A colaboração entre desenvolvedores, analistas de negócios e
stakeholders é fundamental para garantir que os requisitos sejam abordados de forma
abrangente e precisa.
1.3.3. Design

O design de software é o processo de criar a estrutura, arquitetura e detalhes de


implementação de um sistema de software com base nos requisitos definidos. Ele abrange a
transformação dos requisitos em uma representação visual e técnica do sistema que orienta
o desenvolvimento e a implementação eficazes. O design de software visa criar um plano
abrangente para a construção do software, garantindo que ele seja eficiente, escalável, de
fácil manutenção e atenda às necessidades dos usuários finais (Robbins, 2012).
Principais aspectos do design de software:
Design de arquitetura: definir a estrutura geral do sistema, incluindo os principais
componentes, módulos e suas interações. Isso envolve a decisão sobre o tipo de arquitetura
a ser adoptado, como arquitetura em camadas, cliente-servidor, microsserviços, entre outros.
Design detalhado: elaborar os detalhes técnicos de cada componente e módulo, incluindo
interfaces, algoritmos, estruturas de dados e fluxos de trabalho.
Padrões de design: utilizar padrões de design reconhecidos para resolver problemas comuns
de projecto, como Padrões de Projecto GoF (Gang of Four) e outros padrões específicos para
o domínio.
Modelagem visual: criar diagramas e modelos visuais, como diagramas de classes,
diagramas de sequência, diagramas de actividades, para representar a estrutura e o
comportamento do sistema.
Reutilização de componentes: identificar oportunidades de reutilização de código ou
componentes existentes para economizar tempo e esforço.
Segurança e escalabilidade: incorporar mecanismos de segurança e planear a
escalabilidade do sistema para atender às necessidades futuras.
Usabilidade e Experiência do Usuário (UX): criar interfaces de usuário intuitivas e
amigáveis, garantindo que a interação com o software seja eficaz e agradável para os
usuários.

17
Testabilidade: projectar o software de forma que seja fácil de testar e depurar, incorporando
características como modularidade e injeção de dependência.
Documentação: fornecer documentação clara e abrangente para ajudar os desenvolvedores
a entenderem o design e a funcionalidade do software.
Padrões de codificação: definir directrizes de codificação e convenções para garantir
consistência e qualidade no código-fonte.
Gerenciamento de dados: projectar a estrutura de armazenamento de dados, incluindo base
de dados, esquemas e modelos de acesso a dados.
Gerenciamento de erros e excepções: planear como o software irá lidar com erros e
excepções para garantir a robustez e a confiabilidade do sistema.

Digrama de classe. Fonte: lucidchart.com (Acessado os 13/08/2023)

O design de software é uma etapa crítica no processo de desenvolvimento e é fundamental


para a criação de um sistema de software bem-sucedido. Ele ajuda a traduzir os requisitos
em uma implementação concreta, permitindo que os desenvolvedores trabalhem de forma
eficiente e colaborativa para construir o software de acordo com as expectativas dos
stakeholders e usuários finais.

18
1.3.4. Codificação

A codificação é a fase do desenvolvimento de software em que os projetistas e


desenvolvedores traduzem o design do software em código de programação real. É o
processo de escrever as instruções detalhadas que o computador pode entender e executar
para implementar as funcionalidades e comportamentos planeados para o software. A
codificação é uma das etapas mais tangíveis e visíveis do processo de desenvolvimento de
software e envolve a transformação das abstrações de design em implementações concretas
(Sullivan & Liu, 2011).
Principais Aspetos da Codificação
Linguagens de programação: selecionar a linguagem de programação adequada para
implementar as funcionalidades do software. Diferentes linguagens têm diferentes sintaxes,
recursos e características.
Implementação de algoritmos: converter os algoritmos e lógicas definidos no design em
código executável. Isso inclui a manipulação de estruturas de dados, cálculos e processos.
Organização do código: escrever código claro e bem organizado, seguindo convenções de
codificação e padrões estabelecidos para tornar o código legível e de fácil manutenção.
Divisão em módulos: dividir o código em módulos ou classes independentes para facilitar
a modularidade e a reutilização do código.
Comentários: incluir comentários claros no código para explicar a lógica complexa,
ajudando outros desenvolvedores a entender o que cada parte do código faz.
Tratamento de erros: implementar manipulação adequada de erros e excepções para
garantir que o software lide com situações inesperadas de maneira adequada.
Segurança: implementar práticas de codificação segura para prevenir vulnerabilidades,
como injeções de código (SQL Injection, XSS), e garantir a protecção dos dados.
Testabilidade: escrever código de forma que seja fácil de testar, permitindo a criação de
testes unitários, de integração e outros tipos de testes.
Integração com componentes: integrar bibliotecas, frameworks ou componentes de
terceiros conforme necessário para acelerar o desenvolvimento e adicionar funcionalidades.
Documentação de código: fornecer documentação adequada para explicar a finalidade e o
funcionamento das partes importantes do código.
Revisão de código: realizar revisões de código por pares para garantir a qualidade,
identificar problemas e oportunidades de melhoria.

19
Versionamento: usar sistemas de controlo de versão para gerenciar o código-fonte,
facilitando a colaboração e o rastreamento de alterações.

Codificação de uma aplicação web. Elaborado pelas autoras.

A codificação é uma etapa essencial, mas apenas uma parte do processo de desenvolvimento
de software. Uma vez que o código é escrito, ele passa por testes rigorosos para identificar
defeitos e garantir que o software funcione conforme o planeado. A colaboração e a
comunicação eficazes entre a equipa de desenvolvimento são cruciais para garantir que a
codificação seja bem-sucedida e resulte em um software funcional e de alta qualidade.
1.3.5. Testes

Os testes de software são uma parte fundamental do processo de desenvolvimento de


software, destinados a identificar defeitos, garantir que o software funcione conforme o
esperado e melhorar a qualidade do produto final. Os testes ajudam a encontrar erros e
problemas antes que o software seja lançado, minimizando riscos e custos associados a
falhas em produção. Existem diferentes tipos de testes de software que abrangem diversos
aspectos do sistema (Pressman, 2015).
Principais tipos de testes de software:
Testes unitários: testam componentes individuais do software, como funções, métodos ou
classes. São executados por desenvolvedores e focam em validar se partes isoladas do código
funcionam correctamente.

20
Testes de integração: verificam a interacção e a integração entre diferentes módulos ou
componentes do sistema. O objectivo é garantir que as partes funcionem juntas conforme o
planeado.
Testes de aceitação do cliente: também conhecidos como testes de aceitação do usuário,
esses testes envolvem os usuários finais ou stakeholders validando se o software atende aos
requisitos e expectativas.
Testes de regressão: são realizados para garantir que novas alterações no código não afetem
negativamente as funcionalidades existentes. Evitam que correcções introduzam novos
problemas.
Testes funcionais: avaliam se o software está de acordo com os requisitos funcionais
especificados, garantindo que ele execute as funções planeadas.
Testes de usabilidade: avaliam a experiência do usuário, a facilidade de uso e a
navegabilidade do software.
Testes de desempenho: avaliam o desempenho do software em diferentes condições, como
carga pesada, tráfego intenso e picos de uso.
Testes de segurança: verificam se o software é resistente a ataques, como injeções de código
(SQL Injection), ataques de força bruta e outras vulnerabilidades.
Testes de compatibilidade: avaliam se o software funciona correctamente em diferentes
plataformas, navegadores e dispositivos.
Testes de estresse: testam os limites do software, expondo-o a condições extremas para
verificar o seu comportamento em situações adversas.
Testes de localização e internacionalização: verificam se o software funciona
correctamente em diferentes idiomas, regiões e culturas.
Testes de acessibilidade: avaliam se o software é acessível para pessoas com deficiência,
seguindo as directrizes de acessibilidade.

Processo de testes de software:


Planeamento: definir a estratégia de testes, incluindo os tipos de testes a serem realizados,
critérios de aceitação e recursos necessários.
Preparação: criar casos de teste, dados de teste e ambientes de teste. Configurar ferramentas
e ambientes para realizar os testes.

21
Execução: executar os casos de teste conforme o planeado, registando resultados e
identificando defeitos.
Relatório: documentar os resultados dos testes, incluindo defeitos encontrados e métricas
de desempenho.
Correcção e reteste: os defeitos encontrados são corrigidos pelos desenvolvedores e, em
seguida, os testes são reexecutados para verificar a correcção.
Validação: verificar se os requisitos foram atendidos e se o software está pronto para ser
lançado.
Avaliação: avaliar o processo de testes, identificar áreas de melhoria e fazer ajustes para
futuros projectos.

Esquema básico de tipo de teste. Fonte: profissionaisti.com.br (Acessado aos 13/08/2023).

Os testes de software são contínuos e devem ser realizados ao longo de todo o ciclo de vida
do desenvolvimento para garantir a qualidade e a confiabilidade do software. Eles
desempenham um papel crucial na identificação e correção de problemas, assegurando que
o software atenda aos requisitos e expectativas dos usuários finais.

22
1.3.6. Implantação e manutenção

Para Sommerville (2011) a implantação e manutenção de software são etapas críticas que
ocorrem após o desenvolvimento do software e visam disponibilizar o produto aos usuários
finais, garantir a sua operação eficaz e realizar actualizações e melhorias contínuas ao longo
do tempo. Essas fases são fundamentais para garantir que o software seja utilizado com
sucesso, atendendo às necessidades dos usuários e mantendo-se actualizado e funcional.
Implantação de Software:
Planeamento de implantação: definir uma estratégia de implantação que inclua a selecção
de ambientes de implantação, hardware necessário e cronograma de lançamento.
Preparação: preparar o ambiente de implantação, configurando servidores, bases de dados,
redes e outros recursos necessários para a execução do software.
Testes pré-implantação: realizar testes finais no ambiente de produção simulado para
garantir que tudo esteja funcionando correctamente antes do lançamento.
Implantação real: colocar o software em produção, tornando-o acessível aos usuários finais.
Monitoramento inicial: monitorar de perto o software após a implantação para identificar
problemas imediatos e garantir que a transição para a produção seja bem-sucedida.
Treinamento do usuário: fornecer treinamento aos usuários finais para garantir que eles
entendam como usar o software de maneira eficaz.

Esquema genérico para implantação de sistemas. Fonte: twygoead.com (Data de acesso


13/08/2023)
23
Manutenção de software:
Correcção de defeitos: identificar e corrigir problemas, erros ou falhas que possam surgir
após a implantação.
Actualizações e melhorias: realizar actualizações de software para adicionar novas
funcionalidades, melhorar o desempenho ou corrigir problemas menores.
Gerenciamento de versões: gerenciar diferentes versões do software, garantindo que as
actualizações sejam controladas e bem documentadas.
Monitoramento contínuo: monitorar regularmente a performance e a utilização do software
para identificar possíveis problemas e optimizar o desempenho.
Backup e recuperação: implementar estratégias de backup e recuperação para proteger os
dados e o software em caso de falhas ou perdas.
Suporte ao usuário: fornecer suporte técnico aos usuários, respondendo a perguntas,
resolvendo problemas e ajudando a maximizar o uso eficaz do software.
Segurança e actualizações de segurança: garantir que o software esteja protegido contra
ameaças de segurança, implementando actualizações de segurança conforme necessário.
Auditorias e melhoria contínuas: realizar auditorias periódicas para avaliar a eficácia do
software, identificar áreas de melhoria e implementar ajustes.
A implantação e manutenção de software são processos contínuos que garantem que o
software permaneça funcional, seguro e relevante ao longo do tempo. Uma abordagem
cuidadosa para a implantação e a manutenção ajuda a maximizar o valor do software para
os usuários finais e a minimizar os impactos negativos de problemas ou falhas.
1.3.7. Gerenciamento de configuração

O gerenciamento de configurações é uma prática fundamental na engenharia de software que


envolve o controlo sistemático e organizado das mudanças realizadas em um sistema de
software ao longo do seu ciclo de vida. Essa disciplina visa garantir que as versões do
software, os seus componentes e activos relacionados sejam gerenciados de forma eficaz,
consistente e controlada. O gerenciamento de configurações é essencial para manter a
integridade, a rastreabilidade e a qualidade do software, especialmente em projectos
complexos com múltiplas partes e colaboradores (Sullivan & Liu, 2011).
1.3.8. Documentação

A documentação no desenvolvimento de software envolve a criação de registos escritos que


descrevem vários aspectos do software. Isso inclui requisitos, design, código, manuais de

24
usuário, manuais técnicos, testes, APIs e muito mais. A documentação ajuda a compreender,
colaborar e manter o software ao longo do tempo. Ela beneficia equipas de desenvolvimento,
usuários finais e stakeholders, oferecendo transparência, suporte a manutenção,
conformidade, transferência de conhecimento e treinamento. A documentação precisa ser
clara, actualizada e diversificada, podendo ser em formatos impressos ou electrónicos, como
documentos, wikis, vídeos e tutoriais (Pressman, 2015).
Tipos de documentação de software:
1. Documentação de Requisitos
2. Documentação de Design
3. Documentação de Código
4. Manuais do Usuário
5. Manuais Técnicos
6. Documentação de Testes
7. Documentação de APIs e SDKs
8. Documentação de Base de Dados
9. Documentação de Processos
10. Documentação de Segurança
Benefícios da documentação de software:
1. Compreensão e Colaboração
2. Facilitação da Manutenção
3. Transparência e Conformidade
4. Transferência de Conhecimento
5. Suporte a Treinamento
6. Redução de Riscos
7. Integração e implementação simplificadas
1.3.9. Qualidade de Software

A qualidade de software refere-se à medida em que um sistema de software atende aos


requisitos, expectativas e necessidades dos usuários e stakeholders, enquanto também atende
a padrões de desempenho, segurança, confiabilidade e outras características relevantes. A
busca pela qualidade de software envolve práticas e processos para garantir que o software
seja desenvolvido, testado e mantido de maneira consistente e confiável (Sommerville,
2011).

25
Aspectos da qualidade de software:
Funcionalidade: o software deve executar todas as funções e operações conforme definido
nos requisitos. Ele deve fornecer as funcionalidades esperadas sem erros ou falhas.
Desempenho: o software deve atender aos requisitos de desempenho, como tempo de
resposta, capacidade de carga e eficiência.
Usabilidade: o software deve ser fácil de usar, intuitivo e amigável para os usuários,
garantindo uma boa experiência do usuário.
Confiabilidade: o software deve ser confiável e estável, evitando falhas e comportamentos
inesperados durante o uso normal.
Manutenibilidade: o software deve ser de fácil manutenção, permitindo que actualizações,
correcções e melhorias sejam feitas com eficiência.
Portabilidade: o software deve ser capaz de ser executado em diferentes plataformas e
ambientes sem grandes modificações.
Segurança: o software deve proteger os dados e as informações dos usuários, prevenindo
vulnerabilidades e ataques.
Documentação: o software deve ser bem documentado, fornecendo informações claras
sobre a sua funcionalidade, design e uso.
Testabilidade: o software deve ser projetado para facilitar testes abrangentes e eficazes.
Padrões de codificação: o software deve aderir a padrões de codificação para garantir
consistência, legibilidade e manutenção.
Escalabilidade: o software deve ser capaz de lidar com aumento de carga e demanda,
escalando conforme necessário.
Reusabilidade: componentes do software devem ser projetados de forma a serem
reutilizáveis em diferentes partes do sistema.

Estratégias para alcançar qualidade de software:


Planeamento de qualidade: definir critérios claros de qualidade desde o início do projecto.
Testes e validação: realizar testes rigorosos em todas as fases do desenvolvimento para
identificar e corrigir problemas.
Revisões de código: realizar revisões de código por pares para garantir a qualidade e a
consistência do código.
Documentação adequada: manter documentação detalhada e actualizada sobre o software
e seus processos.

26
Processos de desenvolvimento: adoptar metodologias de desenvolvimento ágeis e boas
práticas de engenharia de software.
Automatização: utilizar ferramentas de automação para testes, integração contínua e entrega
contínua.
Acompanhamento e melhoria contínua: monitorar e avaliar constantemente a qualidade
do software e implementar melhorias conforme necessário.
Colaboração e comunicação: promover a colaboração eficaz entre equipas e stakeholders
para garantir que todos tenham uma compreensão clara dos requisitos e expectativas.

A busca pela qualidade de software é essencial para garantir que os sistemas sejam
confiáveis, eficazes e satisfaçam as necessidades dos usuários. Ela requer um compromisso
contínuo com as melhores práticas, aprimoramento constante e atenção aos detalhes em
todas as fases do ciclo de vida do desenvolvimento de software.

1.3.10. Gestão de projectos

A gestão de projectos envolve a organização, planeamento, coordenação e controlo de


recursos, actividades e tarefas para alcançar objectivos específicos dentro de um prazo e
orçamento determinados. A gestão de projectos é uma disciplina essencial em vários
sectores, incluindo desenvolvimento de software, engenharia, construção, negócios, saúde e
muitos outros. Ela visa garantir que os projectos sejam executados de maneira eficaz e
eficiente, entregando resultados de alta qualidade.

Principais áreas da gestão de projectos:


Definição de escopo: estabelecer claramente os objectivos, entregáveis e requisitos do
projecto. Isso envolve identificar o que será feito e o que não será feito.
Planeamento: criar um plano detalhado do projecto, incluindo cronograma, alocação de
recursos, estimativas de custos e identificação de riscos.
Execução: implementar o plano do projecto, gerenciando tarefas, alocando recursos,
supervisionando a equipa e monitorando o progresso.
Monitoramento e controlo: acompanhar o progresso do projecto, comparando-o ao plano
original e tomando medidas correctivas quando necessário para manter o projecto no
caminho certo.
27
Comunicação: manter uma comunicação clara e eficaz com a equipa do projecto,
stakeholders e partes interessadas para garantir que todos estejam alinhados e informados.
Gestão de riscos: identificar, avaliar e mitigar riscos que possam impactar o sucesso do
projecto.
Gestão de qualidade: assegurar que os padrões de qualidade definidos sejam alcançados
em todas as etapas do projecto.
Gestão de recursos: alocar e gerenciar recursos, incluindo pessoal, equipamentos e
orçamento, de maneira eficiente.
Gestão de mudanças: lidar com mudanças inevitáveis durante o projecto, avaliando o seu
impacto e ajustando o plano conforme necessário.
Encerramento: finalizar todas as actividades do projecto, entregar os produtos finais,
avaliar o desempenho e aprender lições para projectos futuros.

Metodologias de gestão de projectos:


Existem várias metodologias de gestão de projectos, cada uma com suas abordagens e
práticas específicas. Algumas das metodologias mais conhecidas incluem: Modelo em
Cascata, Metodologia Ágil, Método do Caminho Crítico (CPM) e Program Evaluation and
Review Technique (PERT), PRINCE2 (PRojects IN Controlled Environments).

 Benefícios da gestão de projectos:


Melhor alinhamento: garante que os projectos estejam alinhados com os objectivos
organizacionais e estratégias.
Eficiência: ajuda a utilizar recursos de maneira eficiente, evitando desperdícios.
Previsibilidade: permite estimativas realistas de prazos, custos e riscos.
Controlo: oferece controlo e visibilidade sobre o progresso e o desempenho do projecto.
Qualidade: promove a entrega de produtos e resultados de alta qualidade.
Comunicação: melhora a comunicação entre a equipa do projecto, stakeholders e partes
interessadas.
Flexibilidade: métodos ágeis permitem adaptação a mudanças durante o projecto.
Aprendizado: fornece oportunidades para aprendizado e melhoria contínua em projectos
futuros.
A gestão de projectos é uma habilidade valiosa para garantir a conclusão bem-sucedida de
projectos, independentemente do tamanho ou complexidade. Ela envolve uma combinação

28
de técnicas, ferramentas e habilidades interpessoais para gerenciar com eficácia recursos,
riscos e expectativas ao longo de todo o ciclo de vida do projecto.
1.3.11. Melhoria contínua

A melhoria contínua, também conhecida como melhoria contínua de processos (MCP),


refere-se a um esforço sistemático e contínuo para aprimorar os processos, produtos e
serviços de uma organização. É uma abordagem que visa identificar e corrigir problemas,
otimizar operações e buscar constantemente maneiras de aperfeiçoar a eficiência, a
qualidade e o desempenho geral. A melhoria contínua é uma parte essencial da gestão de
qualidade total e é aplicável a todos os setores e aspectos das atividades de uma organização
(Jacobsen, 2014).

Princípios da melhoria contínua: Comprometimento da Liderança, Envolvimento da


Equipa, Foco no Cliente, Abordagem Baseada em Dados, Abordagem Sistêmica, Estratégia
de Pequenos Passos, Aprendizado e Adaptação.

Processo de melhoria contínua: Identificação de Oportunidades, Análise, Planeamento,


Implementação, Avaliação, Padronização, Iteração

Benefícios da melhoria contínua: Eficiência Operacional, Qualidade, Inovação,


Crescimento, Engajamento da Equipa, Resolução de Problemas, Adaptação.
A melhoria contínua é uma mentalidade e uma abordagem que requer comprometimento de
toda a organização, desde a liderança até a equipe de base. Ela envolve um ciclo constante
de avaliação, planeamento, implementação e avaliação novamente, com o objetivo de
alcançar melhores resultados ao longo do tempo.

1.4. Aplicação Web

Uma aplicação web é um software que é acessado por meio de um navegador web em um
dispositivo cliente e executado em um servidor remoto. As aplicações web são projectadas
para serem usadas pela Internet e, geralmente, são escritas em linguagens de programação
como HTML, CSS, JavaScript e PHP.
De acordo com Roger S. Pressman (2015), em seu livro "Engenharia de Software: uma
abordagem profissional", as aplicações web são caracterizadas por três componentes
principais: o servidor web, que hospeda e executa a aplicação; o cliente web, que acessa a

29
aplicação por meio de um navegador web; e a rede, que permite a comunicação entre o
cliente e o servidor.
Pressman enfatiza que o desenvolvimento de aplicações web envolve desafios específicos,
como a segurança na comunicação de dados, o gerenciamento de sessões do usuário e a
escalabilidade do sistema.

1.5. Ferramentas de desenvolvimento em aplicações web

Ferramentas de desenvolvimento em aplicações web são recursos, software e utilitários que


auxiliam os desenvolvedores no processo de criação, testes, depuração e implantação de
aplicações web. Elas são projectadas para agilizar e facilitar o desenvolvimento, permitindo
que os desenvolvedores trabalhem de maneira mais eficiente e produtiva. Essas ferramentas
abrangem várias áreas do desenvolvimento web, desde a codificação até o gerenciamento de
bases de dados e a optimização de desempenho (Smith, 2023).
Alguns exemplos de ferramentas de desenvolvimento em aplicações web incluem:
Ambientes de Desenvolvimento Integrado (IDEs): IDEs são pacotes de software que
oferecem um conjunto completo de recursos para o desenvolvimento, incluindo edição de
código, depuração, gerenciamento de projetos e integração com sistemas de controlo de
versão. Exemplos populares incluem Visual Studio Code, IntelliJ IDEA e Eclipse.
Editores de Código: Editores de código são ferramentas mais leves, focadas principalmente
na edição de código-fonte. Eles oferecem recursos de realce de sintaxe, auto completar,
atalhos de teclado e extensões personalizáveis. Exemplos incluem Sublime Text, Atom e
Notepad++.
Frameworks de Desenvolvimento: Frameworks são conjuntos de ferramentas, bibliotecas
e padrões que aceleram o desenvolvimento ao fornecer estruturas e abstrações predefinidas.
Exemplos populares incluem Angular, React, Vue.js (para frontend) e Django, Ruby on
Rails (para backend).
Bases de Dados e Ferramentas de Armazenamento: Ferramentas para criar, gerenciar e
consultar bases de dados, como MySQL, PostgreSQL e MongoDB. Além disso, há ORMs
(Object-Relational Mapping) como Sequelize e Hibernate.
Ferramentas de Testes: Ferramentas para automatizar testes de unidade, testes de
integração e testes de desempenho, como Jest, Jasmine, Selenium e JUnit.
Depuradores e Profilers: Ferramentas para identificar e corrigir erros no código, como o
depurador embutido no navegador ou ferramentas de profiling para optimizar o desempenho.

30
Ferramentas de Gerenciamento de Pacotes: Gerenciadores de pacotes como npm
(Node.js), pip (Python) ou Composer (PHP) ajudam a instalar e gerenciar bibliotecas de
terceiros.
Ferramentas de Controlo de Versão: Ferramentas como Git e sistemas de hospedagem
como GitHub, GitLab ou Bitbucket para controlo de versão e colaboração em equipa.
Ferramentas de Implantação: Ferramentas para automatizar a implantação de aplicações
em servidores, como Docker e Kubernetes.
Ferramentas de Optimização e Monitoramento: Ferramentas para optimizar o
desempenho da aplicação e monitorar o seu comportamento em produção, como Google
PageSpeed Insights, New Relic e Grafana.

1.6. Tecnologias adoptadas em aplicações web

Tecnologias adoptadas em aplicações web são as ferramentas, linguagens de programação,


frameworks, bibliotecas e recursos tecnológicos utilizados no desenvolvimento, implantação
e operação de aplicações baseadas na web. Essas tecnologias fornecem as bases para a
criação de funcionalidades, interatividade e desempenho nas aplicações web. Elas
desempenham um papel fundamental na determinação da eficácia, escalabilidade e
experiência do usuário de uma aplicação.
Aqui estão alguns exemplos de tecnologias frequentemente adotadas em aplicações web:
Linguagens de Programação: Linguagens como HTML, CSS e JavaScript são essenciais
para a criação de interfaces de usuário e interatividade nas aplicações web.
Frameworks Frontend, Frameworks Backend, Bases de Dados, Tecnologias de
armazenamento de dados.
Servidores Web: Servidores como Apache, Nginx e Microsoft IIS são usados para hospedar
aplicações web e entregar conteúdo aos usuários.
Hospedagem em Nuvem: Serviços de nuvem como AWS, Google Cloud e Microsoft Azure
fornecem recursos de hospedagem escaláveis para aplicações web.
Controlo de Versão, Gerenciadores de Pacotes, Testes Automatizados, Ferramentas de
Optimização.
Segurança Web: Bibliotecas como OWASP e práticas como HTTPS são usadas para
proteger aplicações contra ameaças de segurança.
APIs (Interfaces de Programação de Aplicativos): APIs RESTful e GraphQL são usadas
para conectar e integrar diferentes partes de uma aplicação.

31
Autenticação e Autorização: Bibliotecas como JWT (JSON Web Tokens) e OAuth são
usadas para gerenciar o acesso seguro aos recursos da aplicação.
Essas tecnologias são selecionadas com base nas necessidades e requisitos específicos de
cada projecto e são escolhidas para fornecer soluções eficazes e eficientes para o
desenvolvimento e operação de aplicações web (Robbins, 2012).

1.7. Aplicação web para gestão de restaurantes

Aplicações web para gestão de restaurantes são sistemas baseados na web desenvolvidos
para ajudar os proprietários e gerentes de restaurantes a administrar e optimizar diversas
actividades e processos relacionados às operações diárias de um restaurante. Essas
aplicações são projectadas para melhorar a eficiência, organização, tomada de decisões e
experiência do cliente em estabelecimentos gastronómicos. Elas podem abranger uma ampla
variedade de funcionalidades e módulos, dependendo das necessidades específicas do
restaurante. Algumas características comuns incluem:
Gestão de Pedidos: acompanhamento de pedidos, integração com cozinha e monitoramento
em tempo real do status dos pedidos.
Reservas e Gerenciamento de Mesas: possibilidade de fazer reservas online, designação
de mesas, gerenciamento de ocupação e otimização de fluxo de clientes.
Cardápio Digital: exibição de cardápio online, personalização de pedidos e informações
sobre ingredientes e alergias.

Processamento de Pagamentos: aceitação de pagamentos online ou por meio de


dispositivos móveis, bem como a divisão de contas.
Gestão de Estoque e Fornecedores: rastreamento de estoque de alimentos, bebidas e outros
itens, automatização de pedidos e gestão de fornecedores.
Relatórios e Análises: geração de relatórios sobre vendas, receitas, lucros, tendências de
consumo e desempenho financeiro.
Programas de Fidelidade e Promoções: implementação de programas de fidelidade,
descontos e promoções para atrair e reter clientes.
Feedback e Avaliações: colecta de feedback dos clientes, avaliações e análises de satisfação
para melhorar a qualidade do serviço.
Integração com Redes Sociais: conexão com plataformas de mídia social para promoção e
interação com os clientes.

32
Gestão de Funcionários: acompanhamento de horários de trabalho, atribuições de tarefas e
comunicação interna.
Gestão de Eventos: planeamento, promoção e organização de eventos especiais ou reservas
para grupos.
Integração de Terceiros: integração com serviços de entrega, aplicativos de entrega de
alimentos e sistemas de reservas externos.
Essas aplicações web para gestão de restaurantes visam melhorar a experiência tanto para os
clientes quanto para a equipa, ao automatizar processos e fornecer ferramentas de análise
para tomar decisões informadas. Elas também são particularmente úteis para optimizar
operações e se adaptar às demandas em constante mudança da indústria de restaurantes
(Brown, 2014).
1.7.1. Exemplo de aplicações web para gestão de atendimento em restaurantes

Aqui estão alguns exemplos de aplicações web para gestão de restaurantes que são populares
e amplamente utilizados na indústria:
Toast: o Toast é uma plataforma completa de gestão de restaurantes que abrange desde
pedidos e pagamentos até relatórios e análises de dados. Ele oferece soluções para
restaurantes de todos os tamanhos e tipos, incluindo gerenciamento de pedidos, reservas de
mesas, processamento de pagamentos e integração com aplicativos de entrega de alimentos.
OpenTable: o OpenTable é uma plataforma de reservas e gestão de mesas que permite que
os clientes façam reservas online em restaurantes. Ele também oferece recursos de
gerenciamento de ocupação e avaliações, permitindo que os restaurantes optimizem o fluxo
de clientes e melhorem a experiência do cliente.
Square for Restaurants: A Square oferece uma variedade de soluções para empresas,
incluindo uma plataforma de gestão de restaurantes que abrange pedidos, pagamentos,
reservas e relatórios. Ela também se integra a outras ferramentas da Square, como
processamento de pagamentos e gestão de estoque.
TouchBistro: especializado em restaurantes, bares e cafés, o TouchBistro oferece um
sistema de ponto de venda (POS) baseado em iPad que inclui recursos de gestão de pedidos,
gerenciamento de mesas, divisão de contas e análises de desempenho.
Lightspeed Restaurant: o Lightspeed Restaurant oferece um sistema de POS projetado para
restaurantes, bares e cafés. Ele abrange pedidos, gestão de mesas, integração com entregas
de alimentos, fidelidade do cliente e relatórios avançados.

33
Upserve: anteriormente conhecido como Breadcrumb, o Upserve oferece uma plataforma
completa de gestão de restaurantes, incluindo POS, análises de vendas, gerenciamento de
cardápio e integração com reservas e entrega.
GloriaFood: especializado em delivery e restaurantes que oferecem serviço de takeaway, o
GloriaFood oferece um sistema de pedidos online, cardápio digital e ferramentas de
gerenciamento de pedidos.
Resy: o Resy é uma plataforma de reservas e gestão de restaurantes que permite que os
clientes façam reservas em restaurantes populares. Ele também oferece recursos de
gerenciamento de mesas e lista de espera.
Bookatable: semelhante ao Resy, o Bookatable é uma plataforma de reservas online que
conecta os clientes aos restaurantes e oferece recursos de gerenciamento de mesas e
relatórios.
ChowNow: o ChowNow é focado em pedidos e entregas de alimentos. Ele oferece um
sistema de pedidos online para restaurantes que desejam oferecer opções de delivery ou
retirada.
No Brasil, Portugal e Angola, algumas das aplicações web para gestão de restaurantes que
podem ser mais usadas incluem:
Brasil:
iFood: embora seja mais conhecido como um aplicativo de entrega de alimentos, o iFood
também oferece soluções de gestão para restaurantes, como pedidos online, gestão de
entregas e cardápio digital.
Aiqfome: similar ao iFood, o Aiqfome é outro aplicativo que oferece recursos de pedidos
online e delivery para restaurantes, especialmente em cidades do interior.
Goomer: o Goomer fornece soluções de cardápio digital e pedidos por meio de dispositivos
móveis para restaurantes, permitindo que os clientes façam pedidos directamente dos seus
smartphones.
Portugal:
Zomato: além de ser uma plataforma popular para busca de restaurantes e avaliações de
clientes, o Zomato também oferece serviços de reservas e entrega em algumas cidades de
Portugal.
TheFork: conhecido anteriormente como "Fork," o TheFork é uma plataforma de reservas
online para restaurantes que permite aos clientes fazer reservas directamente.

34
Uber Eats: embora seja um aplicativo de entrega de alimentos, o Uber Eats também oferece
soluções para restaurantes parceiros, como pedidos online e entrega.
Angola:
Kapten Delivery: um aplicativo de entrega de alimentos que também pode oferecer soluções
para restaurantes locais em Angola.
Comer Em Angola: um site que oferece informações sobre restaurantes, incluindo
avaliações de clientes e reservas.
Aiky: outro aplicativo de entrega de alimentos que pode oferecer opções de pedidos online
e delivery para restaurantes locais.
4 Rest – Gestão de Restaurante: Este é um software certo para as grandes e melhores
Restaurantes, Snack Bares, Lanchonetes, Pizzarias e outros estabelecimentos da área de
restauração. Composto por um front-end moderno e muito fácil de se usar. Com
possibilidade de atendimento de várias mesas em simultâneo.

Esses são alguns exemplos de aplicações web para gestão de restaurantes. Cada uma delas
possui características e recursos específicos para atender às necessidades variadas dos
restaurantes e as suas operações.

1.7.2. Segurança da informação em aplicações web

A segurança da informação em aplicações web é um aspecto crítico para garantir a protecção


dos dados, a privacidade dos usuários e a integridade das operações em ambientes online.
Uma aplicação web pode estar exposta a uma variedade de ameaças, desde ataques de
hackers até vulnerabilidades de software. Portanto, é fundamental implementar medidas de
segurança adequadas para mitigar riscos e garantir um ambiente confiável. Alguns dos
principais aspectos da segurança da informação em aplicações web incluem:
Autenticação e Autorização: garantir que apenas usuários autorizados tenham acesso à
aplicação e que possam executar acções apropriadas. Isso envolve a implementação de
sistemas robustos de autenticação, como senhas fortes, autenticação de dois factores e gestão
adequada de permissões.
Criptografia: proteger os dados transmitidos entre o usuário e o servidor por meio de
protocolos de criptografia, como HTTPS. Isso ajuda a prevenir ataques de interceptação de
dados, garantindo que as informações confidenciais sejam mantidas seguras durante a
transmissão.

35
Validação de Dados e Entradas: validar todas as entradas de dados dos usuários para evitar
ataques de injeção, como SQL Injection e Cross-Site Scripting (XSS). Isso envolve filtrar e
escapar dados para garantir que não sejam executados códigos maliciosos.
Controlo de Sessão: gerenciar as sessões de usuário de forma segura, usando tokens de
sessão, expiração de sessões inativas e prevenção de ataques de sessão.
Proteção contra-ataques: implementar protecções contra-ataques comuns, como Cross-
Site Request Forgery (CSRF), Cross-Site Script Inclusion (XSSI) e outros tipos de
exploração de vulnerabilidades.
Actualizações de Software: manter todos os componentes da aplicação actualizados,
incluindo sistemas operacionais, servidores web, bibliotecas e frameworks, para evitar
explorações de vulnerabilidades conhecidas.
Gestão de Erros e Registos: tratar os erros de forma segura, sem expor informações
sensíveis, e manter registos de actividades para rastreamento de eventos suspeitos.
Testes de Segurança: realizar testes de segurança regulares, como testes de penetração e
avaliações de vulnerabilidades, para identificar possíveis pontos fracos na aplicação.
Princípio do Menor Privilégio: atribuir apenas as permissões necessárias a usuários e
processos, minimizando o risco de comprometimento de dados.
Educação e Treinamento: fornecer treinamento em segurança para a equipe de
desenvolvimento e conscientização sobre as melhores práticas de segurança.

É importante lembrar que a segurança da informação é um processo contínuo e em constante


evolução. Conforme novas ameaças surgem, é necessário adaptar as estratégias de segurança
para proteger efectivamente as aplicações web. Além disso, consultar sempre fontes
confiáveis, como padrões de segurança, organizações especializadas em segurança
cibernética e recursos actualizados para obter as informações mais recentes sobre segurança
em aplicações web (Sullivan & Liu, 2011).

1.7.3. Principais vulnerabilidades em aplicações web

Para a OWASP Foundation (2023) as vulnerabilidades em aplicações web podem permitir


que invasores acessem informações sensíveis, comprometam a integridade dos dados ou
executem acções maliciosas. Essas vulnerabilidades podem ocorrer devido a erros de
programação, configurações inadequadas ou falta de medidas de segurança. Aqui estão
algumas das principais vulnerabilidades em aplicações web.

36
Cross-Site Scripting (XSS): permite que um invasor injete scripts maliciosos em páginas
da web exibidas para outros usuários, podendo roubar informações de sessão ou redirecionar
para sites falsos.
Injection Attacks: isso ocorre quando entradas não confiáveis são directamente
interpretadas como código. Exemplos incluem SQL Injection e Command Injection.
Cross-Site Request Forgery (CSRF): permite que um invasor force um usuário a realizar
acções indesejadas em uma aplicação em que o usuário está autenticado.
Autenticação e Gestão de Sessão Insegura: uso inadequado de autenticação e controlo de
sessão, levando a roubo de credenciais e acesso não autorizado.
Exposição de Dados Sensíveis: falha em proteger informações sensíveis, como senhas,
informações de cartão de crédito e dados pessoais.
XML External Entity (XXE) Attack: explora vulnerabilidades em processamento XML,
permitindo que invasores leiam arquivos do sistema ou executem ações não autorizadas.
Security Misconfiguration: configurações inadequadas de segurança em servidores,
frameworks, bancos de dados e outras partes da infraestrutura.
Deserialização insegura: explorações em processos de deserialização, permitindo que
invasores executem códigos arbitrários.
Insegurança em Componentes: uso de componentes com vulnerabilidades conhecidas,
como bibliotecas desactualizadas ou com problemas de segurança.
Falta de Monitoramento e Registos de Segurança: falta de detecção e registo de
actividades suspeitas ou eventos de segurança. Melhores práticas no desenvolvimento de
aplicações web para restaurantes.

1.7.4. Melhores práticas no desenvolvimento de aplicações web para restaurantes

Desenvolver aplicações web para restaurantes requer considerações específicas para garantir
que a aplicação seja segura, eficiente e atenda às necessidades do setor de restaurantes. Aqui
estão algumas melhores práticas a serem seguidas no desenvolvimento de aplicações web
para restaurantes:
Segurança da Informação:
Implementar medidas robustas de segurança, como autenticação forte e criptografia de
dados.
Proteger contra vulnerabilidades comuns, como XSS, SQL Injection e CSRF.
Manter sistemas e bibliotecas actualizados para evitar vulnerabilidades conhecidas.

37
Realizar testes de penetração e avaliações de segurança regularmente.
Design Responsivo:
Desenvolver uma interface responsiva que se adapte a diferentes tamanhos de tela, incluindo
smartphones e tablets.
Garantir uma experiência de usuário consistente em todas as plataformas.
Cardápio Digital Interativo:
Criar um cardápio digital fácil de navegar e actualizar.
Incluir imagens e descrições detalhadas dos pratos para atrair os clientes.
Considerar adicionar recursos interativos, como filtros de busca e opções de personalização.
Gestão de Pedidos e Reservas:
Implementar um sistema eficiente para gerenciamento de pedidos e reservas.
Fornecer confirmações instantâneas de pedidos e reservas aos clientes.
Integrar notificações em tempo real para actualizações de status dos pedidos.
Integração de Pagamentos Online:
Oferecer várias opções de pagamento online seguras e confiáveis.
Certificar-se de que os processos de pagamento sejam intuitivos e protegidos.
Integração com Redes Sociais:
Integrar a aplicação com as redes sociais para permitir que os clientes compartilhem
experiências e avaliações.
Considerar a possibilidade de permitir que os clientes façam login usando contas de redes
sociais.
Feedback e avaliações:
Incluir um sistema de feedback e avaliações para que os clientes possam compartilhar
feedback.
Monitorar e responder às avaliações para melhorar o atendimento ao cliente.
Programas de fidelidade e promoções:
Integrar programas de fidelidade para incentivar os clientes a retornarem.
Oferecer promoções especiais, descontos ou ofertas exclusivas para clientes frequentes.
Performance e velocidade:
Optimização de desempenho para garantir tempos de carregamento rápidos.
Minimizar o uso de recursos e optimizar imagens para melhorar a velocidade.

38
Testes e feedback de usuários:
Realizar testes extensivos com usuários reais para identificar problemas de usabilidade e
experiência do cliente.
Estar aberto ao feedback dos usuários e fazer ajustes com base nas sugestões.
Privacidade de dados:
Cumprir as regulamentações de privacidade de dados, como o Regulamento Geral de
Proteção de Dados (GDPR) na União Europeia.
Obter consentimento adequado para colecta e uso de dados pessoais.
Treinamento da equipa:
Fornecer treinamento adequado para a equipa do restaurante sobre como usar e aproveitar a
aplicação.
Garantir que a equipa esteja pronta para lidar com os processos de pedidos, reservas e
interações online.
Lembrar que as melhores práticas podem variar com base nas necessidades específicas do
restaurante e das preferências dos clientes. É importante manter-se actualizado com as
tendências tecnológicas e as necessidades da indústria de restaurantes para criar uma
aplicação web de sucesso (Robbins, 2012).

39
CAPÍTULO II- CARACTERIZAÇÃO DA EMPRESA EM ESTUDO E PLANO DE
GESTÃO DO PROJECTO

2.1. Descrição da empresa

O Restaurante & Churrascaria Mambos Gil é um verdadeiro oásis gastronômico que oferece
uma experiência culinária única. Com a sua atmosfera acolhedora e sofisticada, o Mambos
Gil combina o charme de um restaurante clássico com a tradição de um autêntico churrasco.
Os clientes são recebidos por uma equipa calorosa e profissional, pronta para proporcionar
um serviço excepcional. O cardápio diversificado apresenta uma variedade de pratos, desde
suculentos cortes de carne grelhada até opções vegetarianas e pratos de frutos do mar frescos.
Além da excelente comida, o ambiente do Mambos Gil é perfeito para encontros casuais ou
celebrações especiais.
Com uma decoração elegante e uma atmosfera descontraída, este restaurante é o local ideal
para desfrutar de uma refeição memorável com amigos e familiares. O Restaurante &
Churrascaria Mambos Gil se destaca não apenas pela qualidade da sua comida, mas também
pela hospitalidade angolana que proporciona aos seus clientes. É o destino perfeito para
quem busca uma experiência gastronómica autêntica e inesquecível em Luanda, Angola.
2.2. Papel da empresa

O papel da empresa Restaurante & Churrascaria Mambos Gil é o de oferecer uma


experiência culinária excepcional aos seus clientes na cidade de Luanda, província de
Luanda, Angola. Sua função principal é a de um restaurante e churrascaria, onde proporciona
refeições de alta qualidade, serviço hospitaleiro e um ambiente agradável para que as pessoas
desfrutem de comida deliciosa, seja para encontros informais, ocasiões especiais ou refeições
cotidianas. Além disso, como qualquer empresa, também desempenha um papel na
economia local, empregando pessoas e contribuindo para a comunidade empresarial da
região.

2.3. Missão

Proporcionar aos nossos clientes uma experiência gastronómica inigualável, onde a


qualidade da comida se une ao calor da hospitalidade angolana. Estamos comprometidos em
servir pratos deliciosos, preparados com ingredientes frescos e cuidado artesanal, enquanto
criamos um ambiente acolhedor e elegante para que as pessoas desfrutem de momentos
memoráveis com amigos e familiares

40
2.4. Visão

Ser reconhecido como o destino gastronómico de excelência em Luanda, continuando a


superar as expectativas dos clientes em termos de qualidade, sabor e serviço. Planeamos
expandir nossas operações e promover a culinária angolana para um público global,
enquanto mantemos nosso compromisso com a autenticidade e a hospitalidade que nos
tornam únicos.

2.5. Localização

O Restaurante & Churrascaria Mambos Gil, está localizada na vibrante cidade de Luanda,
na área na província de Luanda, Angola.

2.6. Organigrama da empresa

Organigrama do restaurante & churrascaria Mambos Gil, 2023. Fonte: Gerente da empresa.

2.7. Visão Geral do projecto

O projecto de aplicação web de gestão de atendimento para o Restaurante & Churrascaria


Mambos Gil é uma iniciativa para melhorar a eficiência e qualidade do atendimento aos
clientes do restaurante. A aplicação será desenvolvida para ser utilizada tanto pelos
funcionários do restaurante quanto pelos clientes.
A aplicação contará com um sistema de reservas online para os clientes, permitindo que eles
possam escolher a data, horário e número de pessoas para a reserva. Além disso, a aplicação

41
também permitirá que os clientes visualizem o menu do restaurante, com fotos e descrições
dos pratos, e possam fazer pedidos online, que serão enviados directamente para a cozinha.
Para os funcionários do restaurante, a aplicação terá um painel de gestão, que permitirá que
eles visualizem todas as reservas e pedidos em tempo real, e possam gerenciar a alocação de
mesas e a preparação dos pratos. O sistema também permitirá que os funcionários monitorem
o tempo de espera dos clientes e possam enviar actualizações sobre o status do pedido.
Além disso, a aplicação contará com um sistema de feedback dos clientes, que poderão
deixar comentários e avaliações sobre a experiência no restaurante, o que ajudará o
restaurante a melhorar os seus serviços e atendimento.
O projecto será desenvolvido com base nas melhores práticas de desenvolvimento de
software e seguirá uma abordagem ágil, com a participação dos usuários finais em todas as
fases do projecto, desde a concepção até a implementação e testes finais. A aplicação será
desenvolvida utilizando tecnologias web modernas e será compatível com todos os
principais navegadores.

42
Visão geral do projecto. Elaborado pelas autoras.

43
2.8. Plano de gestão do projecto

O plano de gestão do projecto de aplicação web de gestão de atendimento para o Restaurante


& Churrascaria Mambos Gil inclui os seguintes elementos:
1. Objectivos do projecto: O objectivo principal do projecto é desenvolver uma aplicação
web de gestão de atendimento que permita ao Restaurante & Churrascaria Mambos Gil
melhorar a eficiência e qualidade do atendimento aos clientes. Os objectivos específicos
incluem: desenvolver um sistema de reservas online, permitir que os clientes visualizem o
menu e façam pedidos online, criar um painel de gestão para os funcionários do restaurante,
implementar um sistema de feedback dos clientes e utilizar tecnologias web modernas.
2. Equipa do projecto: A equipa do projecto será composta por desenvolvedores de
aplicações web, designers gráficos, gerente de projecto e representantes do Restaurante &
Churrascaria Mambos Gil. Cada membro da equipa terá funções e responsabilidades
específicas para garantir o sucesso do projecto.
3. Cronograma do projecto: O cronograma do projecto será criado em conjunto com a
equipa e os representantes do Restaurante & Churrascaria Mambos Gil e incluirá as
principais etapas do projecto, prazos para cada fase e as entregas esperadas em cada etapa.
O cronograma será actualizado regularmente ao longo do projecto para garantir que o
projecto esteja dentro do prazo.

Cronograma geral do projecto. Elaborado pelas autoras.


4. Orçamento do projecto: O orçamento do projecto incluirá todos os custos envolvidos na
criação da aplicação web, incluindo os custos de desenvolvimento, design, testes,
hospedagem e manutenção. O orçamento será actualizado regularmente para garantir que o
projecto esteja dentro do orçamento.
5. Gerenciamento de riscos: O gerenciamento de riscos será uma parte importante do
projecto, com o objectivo de identificar, avaliar e mitigar possíveis riscos que possam afetar

44
o sucesso do projecto. Os riscos serão avaliados regularmente e medidas serão tomadas para
minimizá-los.
6. Comunicação do projecto: A comunicação será fundamental para garantir o sucesso do
projecto. Serão realizadas reuniões regulares com a equipa e os representantes dos
Restaurante & Churrascaria Mambos Gil para manter todos informados sobre o progresso
do projecto, discutir questões e tomar decisões importantes.
7. Testes e qualidade: A qualidade da aplicação será uma prioridade durante todo o projecto.
Testes serão realizados regularmente para garantir que a aplicação esteja funcionando
corretamente e atendendo aos requisitos do cliente.
8. Implementação e treinamento: após a conclusão do desenvolvimento da aplicação, a
equipa será responsável por implementar a aplicação, configurar o ambiente de hospedagem
e treinar os funcionários do restaurante sobre como usar a aplicação.
9. Manutenção e suporte: após a implementação, a equipa será responsável por fornecer
manutenção e suporte contínuos para garantir que a aplicação continue funcionando
corretamente e atendendo às necessidades do cliente.
O plano de gestão do projecto será actualizado regularmente para garantir que o projecto
esteja dentro do prazo, dentro do orçamento e atenda aos requisitos do cliente.

2.9. Estudo de viabilidade do projecto

O estudo de viabilidade do projecto de aplicação web de gestão de atendimento para o


Restaurante & Churrascaria Mambos Gil envolveu uma análise detalhada dos aspectos
financeiros, técnicos e operacionais do projecto. Abaixo, estão os resultados desse estudo:
1. Viabilidade financeira: O projecto é viável financeiramente, com um retorno sobre o
investimento projectado em um período de tempo razoável. O investimento necessário para
o desenvolvimento e implementação da aplicação será recuperado por meio da melhoria da
eficiência e qualidade do atendimento, resultando em aumento de receita e fidelização dos
clientes.
2. Viabilidade técnica: O projecto é viável tecnicamente, com a tecnologia necessária
disponível para o desenvolvimento e implementação da aplicação. A equipa de
desenvolvimento tem experiência e habilidades necessárias para criar uma aplicação web de
alta qualidade e escalável.
3. Viabilidade operacional: O projecto é viável operacionalmente, com o Restaurante &
Churrascaria Mambos Gil já tendo estabelecido processos de atendimento e gerenciamento

45
que podem ser integrados à aplicação. A equipa do restaurante está disposta a se adaptar à
nova ferramenta e treinar os funcionários para usar a aplicação.
4. Análise de mercado: A análise de mercado mostrou que há uma demanda crescente por
aplicativos de gestão de atendimento para restaurantes, especialmente após a pandemia de
COVID-19 que aumentou a necessidade de serviços online. Além disso, os concorrentes
directos do restaurante já oferecem aplicativos de gestão de atendimento, tornando
necessário que o restaurante acompanhe essa tendência para permanecer competitivo.
5. Análise de risco: foram identificados alguns riscos no projecto, como possíveis atrasos
na implementação e custos adicionais imprevistos. No entanto, medidas serão tomadas para
mitigar esses riscos, incluindo a criação de um cronograma realista e um orçamento
detalhado.
Com base nesse estudo de viabilidade, conclui-se que o projecto de aplicação web de gestão
de atendimento para o restaurante em estudo é viável e tem o potencial de melhorar
significativamente a eficiência e qualidade do atendimento aos clientes.

2.10. Ferramentas de gestão do projecto

Para a gestão do projecto de aplicação web de gestão de atendimento para o Restaurante &
Churrascaria Mambos Gil serão utilizadas as seguintes ferramentas:
1. Trello: o Trello é uma ferramenta de gerenciamento de projectos baseada em quadros. Ele
permite que a equipa do projecto crie quadros para cada fase do projecto, adicione tarefas a
cada quadro e atribua tarefas a membros da equipa. Também é possível definir prazos,
adicionar comentários e anexar arquivos aos cartões. O Trello será usado para gerenciar as
tarefas e o progresso do projecto.
2. Google Drive: o Google Drive é uma plataforma de armazenamento em nuvem que
permite armazenar e compartilhar arquivos. Ele será usado para compartilhar documentos
do projecto, como planilhas de orçamento, especificações técnicas e cronogramas. A equipa
do projecto poderá acessar e editar esses documentos em tempo real, facilitando a
colaboração e a comunicação.
3. Slack: o Slack é uma ferramenta de comunicação baseada em mensagens instantâneas.
Ele permitirá que a equipa do projecto se comunique rapidamente e compartilhe informações
importantes. Além disso, o Slack pode ser integrado com outras ferramentas, como o Trello
e o Google Drive, para fornecer notificações automáticas quando ocorrerem alterações no
projecto.

46
4. GitHub: o GitHub é uma plataforma de gerenciamento de código-fonte. Ele será usado
para armazenar e controlar as versões do código-fonte da aplicação web. Isso permitirá que
a equipa do projecto trabalhe em conjunto no código-fonte, controle as alterações feitas e
mantenha um registo de todas as versões do código.

5. Skype ou Zoom: essas ferramentas de videoconferência serão usadas para reuniões online
entre a equipa do projecto e os stakeholders. Eles permitem que as pessoas se comuniquem
de forma eficaz em tempo real, mesmo que estejam em locais diferentes.
Essas ferramentas ajudarão a equipa do projecto a gerenciar efetivamente o projecto e a
manter uma comunicação clara e eficaz entre os membros da equipa e os stakeholders.

2.11. Recursos necessários para o desenvolvimento do projecto

Para o desenvolvimento do projecto de aplicação web de gestão de atendimento para o


restaurante em estudo serão necessários os seguintes recursos:
1. Equipa de desenvolvimento: será necessária uma equipa de desenvolvimento composta
por desenvolvedores de front-end e back-end, designer gráfico e um gerente de projecto. A
equipa deve ser experiente em desenvolvimento web, incluindo habilidades em linguagens
de programação, frameworks e ferramentas de desenvolvimento.
2. Hardware: a equipa de desenvolvimento precisará de computadores de alta qualidade
com capacidade suficiente para executar o software necessário para o desenvolvimento do
projecto.
3. Software: serão necessários vários softwares para o desenvolvimento da aplicação web,
incluindo um editor de código, um ambiente de desenvolvimento integrado (IDE),
ferramentas de design gráfico, softwares de gerenciamento de base de dados, e outras
ferramentas específicas para o desenvolvimento web.
4. Serviços em nuvem: o projecto pode exigir o uso de serviços em nuvem, como provedores
de hospedagem na web, serviços de base de dados e serviços de e-mail.
5. Equipamentos de teste: serão necessários dispositivos móveis e desktop para testar a
aplicação web em diferentes plataformas e navegadores.
6. Tempo: o desenvolvimento de um projecto de aplicação web pode levar meses ou até
anos, portanto, é necessário um cronograma de projecto realista que permita tempo suficiente
para a equipa desenvolver e testar a aplicação.

47
7. Orçamento: o projecto também exigirá um orçamento adequado para cobrir os custos de
desenvolvimento, hospedagem, testes, marketing e outros custos associados à criação e
lançamento de uma aplicação web de alta qualidade.
8. Feedback do usuário: é importante considerar a opinião dos usuários finais da aplicação
web para garantir que a solução atenda às suas necessidades e expectativas. Isso pode exigir
a realização de pesquisas de mercado, testes de usuário e feedback contínuo durante o
processo de desenvolvimento.

2.12. Análise de riscos do projecto e plano de contingência

Análise de riscos:
1. Atraso na entrega do projecto: pode ocorrer atraso na entrega do projecto devido a
problemas técnicos ou de comunicação dentro da equipa de desenvolvimento. Isso pode
resultar em uma perda de receita para o Restaurante & Churrascaria Mambos Gil e danificar
a reputação da equipa de desenvolvimento.
2. Problemas de segurança: a aplicação web pode estar vulnerável a ataques de hackers,
resultando em violação de dados de clientes ou roubo de informações sensíveis do
restaurante.
3. Mudança de requisitos: pode ocorrer uma mudança nos requisitos do projecto, o que
pode afetar o cronograma e o orçamento.
4. Problemas de desempenho: a aplicação web pode não funcionar conforme o esperado
devido a problemas de desempenho, resultando em uma experiência ruim do usuário e
danificando a reputação do restaurante.
Plano de contingência:
1. Gerenciamento de projecto: um gerente de projecto será responsável por supervisionar
o desenvolvimento do projecto e garantir que ele esteja em conformidade com o cronograma
e orçamento estabelecidos. O gerente de projecto também garantirá que as informações
sejam compartilhadas de forma eficaz e que a equipa de desenvolvimento esteja trabalhando
de maneira eficiente.
2. Segurança: a equipa de desenvolvimento utilizará boas práticas de segurança, incluindo
a implementação de criptografia de dados e autenticação de usuários. Também serão
realizadas auditorias regulares de segurança para identificar vulnerabilidades e implementar
medidas de protecção adicionais.

48
3. Gerenciamento de requisitos: um processo formal de gerenciamento de mudanças será
implementado para lidar com quaisquer mudanças nos requisitos do projecto. As mudanças
serão avaliadas em relação ao cronograma e orçamento estabelecidos antes de serem
aprovadas.
4. Testes e desempenho: serão realizados testes rigorosos de desempenho para garantir que
a aplicação web esteja funcionando correctamente. Serão implementadas medidas para
monitorar o desempenho da aplicação em tempo real e tomar medidas correctivas se
necessário.
Em caso de falha do projecto, será necessário um plano de recuperação que inclui um
processo formal de revisão de falhas e uma análise dos custos envolvidos na correcção do
problema.

2.13. Plano orçamental do projecto

O plano orçamental para o projecto de aplicação web de gestão de atendimento para o


restaurante & Churrascaria Mambos Gil pode ser dividido em várias categorias de custos,
incluindo:
1. Desenvolvimento: Este é o custo de desenvolvimento da aplicação web, incluindo o
salário da equipa de desenvolvimento, hardware e software necessários, além de quaisquer
despesas de viagem relacionadas a reuniões com o cliente. O custo de desenvolvimento pode
variar dependendo do tamanho e da complexidade do projecto, que se notará ao longo do
seu desenvolvimento.
2. Testes: Este é o custo de testes de qualidade, que incluem testes de unidade, testes de
integração e testes de aceitação do usuário. Isso envolve o custo de ferramentas de teste,
tempo da equipa de teste e possíveis terceirizações de testes.
3. Hospedagem: Este é o custo de hospedagem da aplicação web em um servidor. Isso pode
incluir o custo mensal de um servidor, o custo de um nome de domínio e o custo de um
certificado SSL para garantir a segurança dos dados.
4. Suporte e manutenção: Este é o custo de fornecer suporte e manutenção contínuos para
a aplicação web após o lançamento. Isso inclui o salário da equipa de suporte, despesas
relacionadas a actualizações e correcções de bugs, e quaisquer custos associados a melhorias
contínuas da aplicação.

49
5. Gerenciamento de projectos: Este é o custo de gerenciamento do projecto, incluindo o
salário do gerente de projectos, despesas relacionadas a ferramentas de gerenciamento de
projectos e quaisquer custos relacionados a comunicações com o cliente.
O orçamento total do projecto pode ser determinado através da soma dos custos de cada
categoria. Nessa senda o custo previsto é de 1.170.000,00 Kz. É importante lembrar que os
custos podem variar dependendo da complexidade e duração do projecto, e é recomendado
criar uma margem para eventuais imprevistos e contingências.

CAPÍTULO III- PLANO DE DESENVOLVIMENTO DA APLICAÇÃO PROPOSTA

3.1. Escopo da aplicação

O escopo da aplicação web de gestão de atendimento para o Restaurante & Churrascaria


Mambos Gil inclui os seguintes recursos e funcionalidades:
1. Reservas de mesas: os clientes poderão fazer reservas de mesas directamente na aplicação
web, escolhendo o número de pessoas e a data e hora desejadas.
2. Cardápio: O cardápio completo do restaurante estará disponível na aplicação, incluindo
descrições dos pratos, preços e fotos.
3. Pedidos: os clientes poderão fazer pedidos directamente na aplicação, escolhendo os
pratos desejados e as quantidades.
4. Pagamentos: A aplicação permitirá que os clientes paguem suas contas directamente,
usando cartões de crédito ou outros métodos de pagamento electrónico.
5. Gerenciamento de mesas: A aplicação permitirá que os funcionários do restaurante
gerenciem a ocupação das mesas, incluindo a marcação de mesas como ocupadas ou
disponíveis e o acompanhamento das reservas.
6. Gerenciamento de pedidos: A aplicação permitirá que os funcionários do restaurante
gerenciem os pedidos dos clientes, incluindo o status dos pedidos e a comunicação com a
cozinha.
7. Relatórios: A aplicação fornecerá relatórios detalhados sobre a actividade do restaurante,
incluindo informações sobre as vendas, a ocupação das mesas e o histórico de pedidos.
8. Administração: A aplicação terá um painel de administração que permitirá que os gerentes
do restaurante gerenciem as configurações da aplicação, incluindo o cardápio, os preços e as
opções de pagamento.
É importante destacar que o escopo da aplicação web pode ser ajustado durante o
desenvolvimento, de acordo com as necessidades do cliente e as limitações do projecto.

50
3.2. Definição da aplicação

A aplicação web de gestão de atendimento para o Restaurante & Churrascaria Mambos Gil
é uma solução tecnológica que visa melhorar a experiência dos clientes e a eficiência
operacional do restaurante. Com essa aplicação, os clientes podem fazer pedidos
directamente pela internet, pagar suas contas e verificar o histórico de pedidos anteriores.
Além disso, os funcionários do restaurante têm acesso a ferramentas de gerenciamento de
pedidos, estoque e mesas, o que torna a operação mais eficiente e produtiva.
A aplicação é baseada em um modelo de acesso seguro, onde os usuários precisam se
autenticar antes de acessar as funcionalidades disponíveis. Os clientes podem acessar o menu
do restaurante, fazer pedidos, fazer pagamentos e verificar seus históricos de pedidos. Os
funcionários do restaurante, por sua vez, têm acesso a um painel de controlo que permite o
gerenciamento de pedidos, a aprovação ou rejeição de pedidos, o gerenciamento de estoque,
o gerenciamento de mesas e a comunicação interna.
A aplicação web utiliza tecnologia moderna para garantir uma experiência de usuário
eficiente e intuitiva. Os usuários podem acessar a aplicação de qualquer dispositivo com
acesso à internet, incluindo smartphones, tablets e computadores. Além disso, a aplicação é
projectada para ser fácil de usar e requer apenas uma curva de aprendizado mínima.
Com a aplicação web de gestão de atendimento, o Restaurante & Churrascaria Mambos Gil
poderá oferecer uma experiência aprimorada aos seus clientes e ao mesmo tempo melhorar
a sua eficiência operacional, economizando tempo e recursos. A aplicação permite uma
comunicação mais rápida e eficiente entre os funcionários e os clientes, facilitando a
coordenação e aumentando a satisfação dos clientes.

3.3. Metodologia de desenvolvimento da aplicação

Para o desenvolvimento da aplicação web de gestão de atendimento para o Restaurante &


Churrascaria Mambos Gil, utilizou-se a metodologia ágil Scrum. O Scrum é uma abordagem
iterativa e incremental para gerenciamento de projectos, que enfatiza a colaboração, a
comunicação e a entrega contínua de valor para o cliente.

3.4. Etapas de desenvolvimento da aplicação

A seguir, são descritas as principais fases e actividades do Scrum para o desenvolvimento


da aplicação web de gestão de atendimento para o Restaurante & Churrascaria Mambos Gil.

51
3.4.1. Planeamento

Nesta fase, o Product Owner definiu o backlog do produto, que é uma lista priorizada de
requisitos e funcionalidades da aplicação. A equipa de desenvolvimento definiu o backlog
da sprint, que é uma lista de tarefas a serem realizadas durante a sprint, que foi um período
de tempo fixo de duas a quatro semanas. Essas tarefas que foram apresentadas como história
de usuário formaram os requisitos da aplicação ao longo das sprints. O objectivo foi definir
as tarefas que serão realizadas na próxima sprint. A tabela X representa o Backlog do
produto.
História Usuário Descrição
Garçom
Gerenciar Como um atendente, eu quero poder marcar mesas como ocupadas
disponibilidade de ou livres no sistema para que os clientes possam ser direcionados
mesas adequadamente.

Acesso a pedidos Como um garçom, eu quero ter acesso fácil a informações sobre
especiais pedidos especiais, como alergias alimentares ou solicitações de
preparo diferenciado.
Informações do Como um atendente, eu quero poder acessar informações
Menu detalhadas sobre cada item do menu para fornecer informações
precisas aos clientes.
Atendimento de Como um garçom, eu quero ter a capacidade de registrar os pedidos
Pedidos dos clientes diretamente na aplicação para garantir precisão e
eficiência.
Acesso ao Painel Como um funcionário, eu quero poder fazer login em um painel de
de Controle controle específico para acessar informações relevantes para o meu
papel, como pedidos a serem preparados e mesas a serem atendidas.
Histórico de Como um funcionário, eu quero poder visualizar um histórico de
Atendimentos atendimentos anteriores de um cliente para oferecer um serviço
personalizado e melhorar a experiência.
Notificações de Cozinheiro
Pedidos Como um cozinheiro, eu quero receber notificações em tempo real
sobre novos pedidos para que eu possa iniciar o preparo
imediatamente.

52
Visualização de Host
Reservas Como um host, eu quero poder visualizar todas as reservas
confirmadas para o dia e gerenciar o fluxo de cliente mais eficaz.
Como um host, eu quero poder gerenciar as reservas e o fluxo de
clientes de forma eficaz.
Análise de Dados e Como um gerente, eu quero visualizar métricas-chave para tomar
Relatórios de decisões informadas sobre o negócio.
Desempenho Como um proprietário do restaurante, eu quero ter acesso a
relatórios de desempenho, incluindo vendas, pedidos, avaliações e
tendências.
Reservas e Cliente
Eventos Especiais Como um cliente, eu quero poder reservar uma mesa para uma data
e horário específicos.

3.4.2. Sprint

Nesta fase, a equipa de desenvolvimento realizou as tarefas definidas no backlog da sprint.


A equipa realizou reuniões diárias de 15 minutos para alinhar o andamento do trabalho e
remover impedimentos. Ao final da sprint, a equipa apresentou o incremento da aplicação
ao Product Owner e ao cliente.

SPRINT 1 (2 Semanas) SPRINT 2 (2 Semanas) SPRINT 3 (2 Semanas)

• Configuração do • Continuação do • Finalização do módulo


ambiente de desenvolvimento da de pedidos
desenvolvimento interface do usário • Desenvolvimento da
• Desenvolvimento da para visualização do funcionalidade de
interface de usuário menu reserva de mesa
básica para • Implementação do • Implementação da
visualização do menu módulo de pedido funcionalidade de
• Implementação do • Implementação da notificação para
módulo de cadastros e funcionalidade de atualização de pedido
login de usuários formas de pagamentos • Planeamento da
• Planeamento da • Planeamento da próxima Sprint
próxima Sprint próxima Sprint.

53
SPRINT 4 (2 Semanas) SPRINT 5 (2 Semanas) SPRINT 6 (2 Semanas)

• Refinamento da • Optimização da • Últimos ajustes e


funcionalidade de interface do usário polimentos
reserva de mesa para dispositivos • Revisão final e
• Implementação móveis. preparação para o
domódulo de avaliação • Testes abtrangentes de incremento
e comentário dos todas as • Testes
clientes funcionalidades • Implantação da
• Correcção de errros implementadas. aplicação
(bugs) identificados • Implementação da
nas sprints anteriores funcionalidade de
• Planeamento da formas de pagamentos
próxima Sprint. • Planeamento da
próxima Sprint

Cada sprint foi planeada em conjunto com a equipa de desenvolvimento, Product Owner e
demais stakeholders, com base no backlog do produto e nos objectivos de curto prazo. As
sprints permitiram um progresso contínuo entregando valor aos clientes a cada iteração e
permitindo a adaptação a mudança de requisitos ou prioridades ao longo do tempo.
3.4.3. Revisão

Nesta fase, o Product Owner e o cliente avaliaram o incremento da aplicação apresentado


pela equipa e fornecem feedback para os próximos incrementos. O Product Owner actualizou
o backlog do produto com base no feedback do cliente e definiu as prioridades para a
próxima sprint.
3.4.4. Retrospectiva

Nesta fase, a equipa de desenvolvimento avaliou o próprio processo de trabalho e identificou


oportunidades de melhoria para as próximas sprints. O Scrum Master facilitou a
retrospectiva e ajudou a equipa a identificar oportunidades de melhoria.

3.5. Diagramas da aplicação

Esses diagramas foram construídos para o melhor entendimento da documentação da


aplicação pela equipa de desenvolvimento.
3.5.1. Diagrama de classe

54
D
Diagrama de classe

3.5.2. Diagrama de entidade relacionamento (descrição textual)

Descrição textual do diagrama Entidade-Relacionamento (ER) para a aplicação web de


gestão de atendimento para o Restaurante & Churrascaria Mambos Gil.
Esses relacionamentos estabelecem as conexões entre as entidades e permitem o
rastreamento das interações e associações entre os diferentes elementos da aplicação.
1. Entidade "Cliente":
- Atributos: IDCliente (identificador único), Nome, Contato, Preferências, Restrições
Alimentares.
- Relacionamentos: nenhum relacionamento direto com outras entidades.
2. Entidade "Reserva":
55
- Atributos: IDReserva (identificador único), Data, Hora, Número de Hóspedes.
- Relacionamentos:
- "Cliente" (1 para N): Um cliente pode ter várias reservas, mas uma reserva pertence a um
único cliente.
3. Entidade "Mesa":
- Atributos: IDMesa (identificador único), Capacidade.
- Relacionamentos:
- "Reserva" (1 para N): Uma reserva é associada a uma única mesa, mas uma mesa pode ter
várias reservas.
4. Entidade "Pedido":
- Atributos: IDPedido (identificador único), Status, Total.
- Relacionamentos:
- "Reserva" (1 para 1): Um pedido está associado a uma reserva específica.
- "Item de Menu" (N para N): Um pedido pode ter vários itens de menu e um item de menu
pode estar presente em vários pedidos.
5. Entidade "Item de Menu":
- Atributos: IDItem (identificador único), Nome, Preço, Descrição.
- Relacionamentos: nenhum relacionamento direto com outras entidades.
6. Entidade "Fatura":
- Atributos: IDFatura (identificador único), Data, Valor Devido, Status de Pagamento.
- Relacionamentos:
- "Pedido" (1 para 1): Uma fatura está associada a um único pedido.
- "Pagamento" (0 para N): Uma fatura pode ter vários pagamentos ou nenhum.
7. Entidade "Pagamento":
- Atributos: IDPagamento (identificador único), Valor, Status.
- Relacionamentos:
- "Fatura" (1 para 1): Um pagamento está associado a uma única fatura.
8. A entidade "Usuário" representa os usuários do sistema, como funcionários do restaurante
ou administradores:
- Atributos: IDUsuário, Nome, Papel.
Descrições das entidades
 Um cliente pode fazer uma ou várias reservas no restaurante. Portanto, existe um
relacionamento "1 para N" entre a entidade "Cliente" e a entidade "Reserva".

56
 Cada reserva está associada a uma mesa específica no restaurante. Portanto, existe
um relacionamento "1 para N" entre a entidade "Reserva" e a entidade "Mesa".
 Uma reserva pode resultar em um ou vários pedidos. Portanto, existe um
relacionamento "1 para N" entre a entidade "Reserva" e a entidade "Pedido".
 Cada pedido pode conter um ou vários itens de menu. Portanto, existe um
relacionamento "N para M" entre a entidade "Pedido" e a entidade "Item de Menu" (por meio
da entidade associativa "ItemPedido").
 Cada item de menu está associado a um produto específico disponível no restaurante.
Portanto, existe um relacionamento "1 para N" entre a entidade "Item de Menu" e a entidade
"Produto".
 Cada pedido gera uma fatura que deve ser paga pelo cliente. Portanto, existe um
relacionamento "1 para 1" entre a entidade "Pedido" e a entidade "Fatura".
 Cada fatura pode ter um ou vários pagamentos. Portanto, existe um relacionamento
"1 para N" entre a entidade "Fatura" e a entidade "Pagamento".
 Cada usuário do sistema tem um papel específico, como funcionário ou
administrador.
 Portanto, existe um relacionamento "1 para N" entre a entidade "Usuário" e a
entidade "Papel".

3.6. Telas da aplicação

As telas da aplicação apresentam as ilustrações, gráficas, da interface do usuário.

Tela 1 - Login

57
Tela 2 – Home

Tela 3-Consulta pedidos

58
Tela 4-Refeições

Tela 5-Sobremesas

59
Tela 6-Consulta de clientes

Tela 7-Consulta pratos

60
Tela 8-Pedidos-feitos

Tela 9-Pedidos Pagos

Tela 10-Consulta mesas

61
Tela 11-Consulta de reservas

Tela 12-Todos os pedidos

Tela 13-Consulta categoria produtos

62
Tela 14-Fatura

Tela 15-Consulta de usuários

3.7. Ferramentas utilizadas para o desenvolvimento da aplicação

63
Existem diversas ferramentas que foram utilizadas para o desenvolvimento da aplicação web
de gestão de atendimento para o Restaurante & Churrascaria Mambos Gil. Algumas das
ferramentas mais comuns são:
1. Linguagem de programação: para o desenvolvimento da aplicação web, foi necessário
escolher uma linguagem de programação que fosse adequada para o projecto. As linguagens
de desenvolvimento usadas foram JavaScript e PHP.
2. Frameworks: Frameworks são ferramentas que fornecem uma estrutura básica para o
desenvolvimento de aplicações web. Os frameworks utilizados para o desenvolvimento da
aplicação web são React, Angular e Vue.js.
3. Base de dados: uma base de dados é fundamental para armazenar os dados da aplicação.
A base de dados utilizado foi o MySQL.
4. Ambiente de desenvolvimento integrado (IDE): uma IDE é uma ferramenta que ajuda os
desenvolvedores a escrever, testar e depurar código. A IDEs popular utilizada para essa
aplicação é o Visual Studio Code.
5. Controlo de versão: para o gerenciamento do código-fonte e colaboração em equipa, foi
usado o GitHub.
6. Ferramentas de comunicação e colaboração: para facilitar a comunicação e colaboração
entre a equipa de desenvolvimento e outros stakeholders do projecto, foram úteis ferramentas
como Slack e Trello.
7. Ferramentas de testes: para garantir a qualidade da aplicação, foi importante utilizar a
seguinte ferramentas de teste Jest, Mocha, Selenium e Cypress.
8. Ferramentas de integração e entrega contínua: para facilitar a integração e entrega de
novas funcionalidades, as ferramentas como Jenkins e CircleCI foram úteis.
É importante ressaltar que a escolha das ferramentas foi baseada nas necessidades
específicas do projecto e da equipa de desenvolvimento.

3.8. Recursos para o desenvolvimento da aplicação

Para o desenvolvimento da aplicação web de gestão de atendimento para o Restaurante &


Churrascaria Mambos Gil, uma equipa de desenvolvimento foi essencial bem como recursos
materiais. Cada membro do projecto pôde desempenhar mais de um papel.

64
3.8.1. Recursos humanos

Papel Qtd Tarefa/Responsabilidade


Responsável por gerenciar o projecto como um todo,
definir e monitorar o escopo, cronograma e orçamento do
Gerente de 1 projecto, coordenar a equipa de desenvolvimento e
projecto garantir a entrega do projecto de acordo com as
especificações e requisitos.
Responsáveis por desenvolver a interface do usuário da
Desenvolvedores 2 aplicação, usando tecnologias como HTML, CSS e
front-end JavaScript. São responsáveis por garantir que a interface
do usuário seja atraente, intuitiva e responsiva.
Desenvolvedores 2 Responsáveis por desenvolver a lógica de negócios da
back-end aplicação, implementando a lógica de processamento de
dados e regras de negócios, utilizando tecnologias como
PHP.
Responsável por projectar a estrutura e a arquitetura da
Arquitecto de 1 aplicação, definindo as tecnologias e ferramentas a serem
software utilizadas, garantindo a escalabilidade e a
manutenibilidade da aplicação
Designer gráfico 1 Responsável pela criação de elementos visuais da
aplicação, como logotipos, ícones, layouts de página, etc.
Responsáveis por garantir a qualidade da aplicação,
Testadores 2 testando e validando as funcionalidades e detectando
eventuais erros.
Responsável por analisar os dados gerados pela
aplicação, identificando tendências e padrões que possam
Analista de dados 2 ajudar a optimizar o desempenho da aplicação e
aprimorar a experiência do usuário.
Responsável por garantir que a aplicação seja segura,
Especialista em 1 implementando medidas de segurança como
segurança autenticação, autorização, criptografia, prevenção de
ataques de injeção de código, entre outros.

65
3.8.2. Recursos materiais

Os recursos materiais necessários para o desenvolvimento da aplicação web de gestão de


atendimento para o Restaurante & Churrascaria Mambos Gil incluem:
Descrição Qtd Observação
Os computadores utilizados para desenvolver a
aplicação web devem ter uma boa capacidade de
Hardware 5 processamento e memória para lidar com as
(Computadores) demandas do projecto. Além disso, é necessário
garantir que o hardware seja actualizado e
compatível com as ferramentas de
desenvolvimento utilizadas.
Serão necessárias ferramentas de
desenvolvimento, como um ambiente de
desenvolvimento integrado (IDE), ferramentas
Software --------- de versões de código, bibliotecas de terceiros,
base de dados e servidor web. Alguns exemplos
de software que podem ser utilizados incluem
Visual Studio Code, Git, React, Node.js,
PostgreSQL, entre outros.
Para hospedar a aplicação web, pode ser
necessário usar serviços em nuvem, como
Amazon Web Services (AWS) ou Microsoft
Serviços em nuvem --------- Azure. Esses serviços fornecem um ambiente
escalável e seguro para executar e gerenciar a
aplicação.
Para permitir a comunicação entre a equipa de
Equipamentos de -------- desenvolvimento, é necessário dispor de
comunicação equipamentos adequados, como telefones, e-
mail, videoconferência, entre outros.
A equipa de desenvolvimento precisa de um
espaço de trabalho adequado para realizar suas
Ambiente de trabalho --------- tarefas, que pode incluir mesas, cadeiras, luz

66
adequada e um ambiente silencioso para facilitar
a concentração.

3.9. Custo para o desenvolvimento da aplicação

O custo para o desenvolvimento da aplicação web de gestão de atendimento para o


Restaurante & Churrascaria Mambos Gil pode variar dependendo de vários factores, como
o escopo do projecto, a complexidade da aplicação, os recursos necessários, a experiência
da equipa de desenvolvimento e a duração do projecto. No entanto, pode-se citar alguns
custos que podem estar envolvidos:

Tipo de recurso Justificativa Valor


A contratação de uma equipa de desenvolvimento
Recursos humanos pode ser um dos maiores custos do projecto, 500.000,00
incluindo desenvolvedores, designers, gerentes
de projecto, analistas de qualidade, entre outros.
Algumas ferramentas de desenvolvimento podem
ser gratuitas, mas outras podem exigir licenças
Ferramentas de pagas, como IDEs, bancos de dados e serviços em 200.000,00
desenvolvimento nuvem. O custo pode variar dependendo das
necessidades específicas do projecto
O uso de serviços em nuvem para hospedar a
aplicação web pode ter um custo mensal ou anual,
Infraestrutura dependendo do provedor e do tamanho da 250.000,00
infraestrutura necessária.
Se a equipa de desenvolvimento precisar de
Treinamento treinamento em novas tecnologias ou 100.000,00
ferramentas, isso pode exigir um custo adicional.
É importante ter um orçamento para
Contingências contingências, como imprevistos durante o
desenvolvimento ou mudanças de escopo que 120.000,00
possam exigir mais tempo ou recursos.
Total geral 1.170.000,00

67
3.10. Requisitos necessários para instalação da aplicação

Para instalar e executar a aplicação web de gestão de atendimento para o Restaurante &
Churrascaria Mambos Gil, é necessário atender aos seguintes requisitos mínimos:
3.10.1. Requisitos de equipamentos

- Um computador com sistema operacional Windows, Linux ou MacOS;


- Um navegador web moderno (como Google Chrome, Mozilla Firefox, Safari, ou Microsoft
Edge) com suporte a HTML5 e CSS3;
- Conexão com a internet com velocidade mínima de 5 Mbps (megabits por segundo);
- Resolução de tela mínima de 1280x768 pixels.
Para equipamentos utilizados pelos colaboradores do restaurante que irão utilizar a
aplicação, recomenda-se que tenham configurações similares às especificações acima para
garantir uma boa experiência de uso.
3.10.2. Requisitos de rede

Para a instalação e operação da aplicação web de gestão de atendimento para o Restaurante


& Churrascaria Mambos Gil, são necessários alguns requisitos de rede, que incluem:
- Conexão com a internet de alta velocidade e confiabilidade, com largura de banda
suficiente para suportar o tráfego de dados gerado pela aplicação e pelos usuários;
- Rede sem fio segura e confiável, com um sinal forte e abrangente para cobrir todas as áreas
onde a aplicação será utilizada;
- Firewall E/ou sistema de segurança que permita o acesso apenas aos usuários autorizados
e impeça o acesso não autorizado;
- Capacidade de armazenamento suficiente para dados gerados pela aplicação, incluindo
backups regulares para garantir a segurança dos dados em caso de perda ou falha do sistema;
- Suporte técnico e manutenção regular para garantir a disponibilidade contínua da aplicação
e minimizar o tempo de inatividade.
É importante que a rede atenda aos requisitos acima para garantir que a aplicação seja
executada de forma eficiente e sem interrupções, proporcionando uma experiência de
usuário satisfatória.
3.10.3. Requisitos de ambiente

Os requisitos de ambiente para instalação da aplicação web de gestão de atendimento para o


Restaurante & Churrascaria Mambos Gil incluem:

68
- Um servidor web compatível com a aplicação, que suporte as linguagens de programação
e bibliotecas utilizadas no desenvolvimento;
- Uma base de dados adequada para a aplicação, que suporte as operações e consultas
necessárias, além de garantir a integridade dos dados;
- Sistema operacional compatível com a aplicação e seus requisitos;
- Configurações de segurança adequadas, incluindo firewalls, sistemas de autenticação e
autorização, e criptografia de dados;
- Configurações de backup e recuperação, para garantir a disponibilidade e integridade dos
dados em caso de falha do sistema;
- Hardware adequado para suportar o processamento e armazenamento necessário,
considerando o número de usuários e a quantidade de dados gerados pela aplicação.
É importante ressaltar que os requisitos de ambiente podem variar de acordo com a
complexidade da aplicação, o número de usuários e outras particularidades do projecto. Por
isso, é fundamental contar com uma equipa técnica especializada para avaliar os requisitos
e garantir que o ambiente esteja adequado para a instalação da aplicação.

3.10.4. Requisitos de segurança

Para garantir a segurança da aplicação web de gestão de atendimento para o Restaurante &
Churrascaria Mambos Gil, é importante seguir algumas práticas e requisitos, tais como:
1. Autenticação e autorização: a aplicação deve contar com um sistema de autenticação
seguro, para que apenas usuários autorizados possam acessá-la. Além disso, é importante
definir níveis de autorização de acordo com as funções e responsabilidades de cada usuário.
2. Criptografia de dados: as informações sensíveis, como senhas e dados pessoais dos
usuários, devem ser armazenadas e transmitidas de forma criptografada, para evitar que
sejam interceptadas por terceiros mal-intencionados.
3. Protecção contra-ataques: a aplicação deve contar com sistemas de proteção contra-
ataques, como firewalls e sistemas de detecção de intrusão, para evitar que hackers tenham
acesso a informações confidenciais ou possam prejudicar o funcionamento da aplicação.
4. Actualização de software e correcções de segurança: é importante manter a aplicação e
todos os seus componentes actualizados, com as últimas correcções de segurança
disponíveis.

69
5. Backup de dados: é fundamental fazer backups regulares dos dados da aplicação, para que
seja possível recuperá-los em caso de perda ou roubo de informações.
6. Política de segurança: é importante definir uma política de segurança clara e objectiva,
com directrizes para o uso da aplicação e dos dados armazenados nela. Os usuários devem
ser informados sobre as medidas de segurança adotapdas e instruídos a seguir as melhores
práticas de segurança da informação.

70
CONCLUSÃO E RECOMENDAÇÕES

Com base na hipótese de que a automatização do processo de pedidos e na entrega dos


produtos pode reduzir os problemas enfrentados pelo Restaurante & Churrascaria Mambos
Gil, e considerando que os objectivos foram alcançados a 90%, chegou – se a seguinte
conclusão:
A implementação da aplicação web de gestão de atendimento para o Restaurante &
Churrascaria Mambos Gil foi bem-sucedida na melhoria do atendimento e na solução de
problemas previamente identificados. A automatização do processo contribuiu para reduzir
a incidência de erros nos pedidos, acelerar o atendimento ao cliente e eliminar problemas
relacionados ao uso de blocos de papel. No entanto, é importante observar que ainda pode
haver espaço para melhorias adicionais para atingir a totalidade dos objectivos estabelecidos.
Recomenda-se que o restaurante continue a monitorar e refinar a aplicação web, ou seja, os
10% restantes dos objectivos específicos que não foram totalmente alcançados, a fim de
aprimorar ainda mais o atendimento e a eficiência operacional. Além disso, é importante
colectar feedback dos clientes e dos funcionários para garantir que a aplicação continue
atendendo às necessidades em constante evolução do restaurante.
Embora que a conclusão é positiva, indicando que a implementação da aplicação web trouxe
melhorias significativas para o Restaurante & Churrascaria Mambos Gil, é necessário
continuar a aprimorar o sistema para atingir a plena satisfação dos objectivos estabelecidos.

71
REFERÊNCIAS BIBLIOGRÁFICAS

Brown, E. (2014). Web Development with Node and Express: Leveraging the JavaScript
Stack. California: O'Reilly Media.
CONFEA. (26 de Abril de 2023). Conselho Federal de Engenharia e Agronomia
(CONFEA). Obtido de confea.org:
http://www.confea.org.br/portal/index.php?option=com_content&view=article&id
=139&Itemid=478
Fernandes, N. O. (25 de Janeiro de 2014). Segurança da Informção. Cuiabá, Mato Grosso,
Brasil. Obtido em 11 de Janeiro de 2023
Gil, A. C. (2008). Métodos e técnicas de pesquisa social (6ª ed.). São Paulo: Atlas S.A.
Jacobsen, A. d. (2014). Sistemas de Informação. São Paulo: UFSC.
Kauark, F., Manhães, F. C., & Medeiros, C. H. (2010). Metodologia da pesquisa : guia
prático. Itabuna: Via Litterarum.
Lakatos, E. M., & Marconi, M. d. (1992). Metodologia científica (2ª ed.). São Paulo: Atlas
S.A.

72
Moresi, E. (2003). Metodologia da pesquisa. Brasília - DF: UNIVERSIDADE CATÓLICA
DE BRASÍLIA – UCB.
OWASP-Foundation. (12 de Agosto de 2023). OWASP (Open Web Application Security
Project). Obtido de OWASP Foundation:
https://owasp.org/search/?searchString=web+app+security
Pressman, S. R. (2015). Engenharia de Software: uma abordagem profissional (8º ed.).
Nova York: McGraw-Hill Education.
Robbins, J. N. (2012). Learning Web Design: A Beginner's Guide to HTML, CSS,
JavaScript, and Web Graphics (4º ed.). California: O'Reilly Media.
Rouse, M. (11 de Agosto de 2023). Whatis.com. Obtido de Techtarget:
https://whatis.techtarget.com/
Smith, B. T. (12 de Agosto de 2023). developer.mozilla.org. Obtido de Mozila:
https://developer.mozilla.org/en-US/blog/
Sommerville, I. (2011). Engenharia de Software. São Paulo: Pearson Prentice Hall.
Sullivan, B., & Liu, V. (2011). Web Application Security, A Beginner's Guide (1º ed.). Nova
York: McGraw Hill.

73

Você também pode gostar