• Nenhum resultado encontrado

liliane rodrigues dos santos

N/A
N/A
Protected

Academic year: 2023

Share "liliane rodrigues dos santos"

Copied!
94
0
0

Texto

ENCOMENDA A GESTÃO E COMPOSIÇÃO DE ALMOÇOS DE CLIENTES DE RESTAURANTE DA CIDADE DE TEÓFILO OTONI. H1: A utilização de aplicativo mobile melhoraria o processo de montagem e pedido de marmita, mas não seria aceito na rotina do restaurante e de seus clientes; H2: A utilização de um aplicativo mobile melhoraria o processo de montagem e pedido de marmitas, pois auxiliaria na organização e controle das marmitas recebidas pelos clientes;

H3: A utilização de um aplicativo mobile melhorará o processo de montagem e pedido de marmitas, pois será bem aceito pelo restaurante e seus clientes, melhorando a oferta de marmitas.

Engenharia de software

Modelos de processo de software

  • Modelo cascata
  • Modelo incremental
  • Prototipação
  • Modelo espiral

Especificação de requisitos

  • Requisitos
  • Engenharia de requisitos
  • Prazos e custos

A especificação de requisitos de software, como o nome sugere, consiste em determinar ou classificar todos os requisitos definidos para o desenvolvimento de software. A especificação geralmente é um documento que descreve todos os requisitos de um determinado produto (PAULA FILHO, 2000, p.14). Segundo Sommerville (2011, p.103), engenharia de requisitos é o processo que tem como objetivo “estudar a viabilidade do sistema, obter e analisar requisitos, especificar requisitos e sua documentação e, por fim, validar esses requisitos”.

Dessa forma, a engenharia de requisitos reduz problemas comuns no desenvolvimento de software, como a instabilidade de requisitos, o que ajuda a reunir requisitos corretos, embora alterações nos requisitos sejam muitas vezes inevitáveis ​​(PAULA FILHO, 2000, p. 15).

Figura 02: Evolução dos requisitos
Figura 02: Evolução dos requisitos

Metodologias de desenvolvimento

  • Metodologias tradicionais
  • Metodologias ágeis

A redução de requisitos pode levar a reduções de prazos ou custos (mas nem sempre).” ZILVA; SOUZA; CAMARGO, 2013, p.2). Quando um software foi desenvolvido, os custos para fazer correções ou manutenção eram extremamente altos, por isso na época não existiam ferramentas que pudessem auxiliar no processo de desenvolvimento como existe hoje. Desta forma, o desenvolvimento e entrega de software em um curto espaço de tempo torna-se um requisito fundamental neste tipo de metodologia (SOMMERVILLE, 2011, p.38).

Scrum, conforme explica Pressman (2011, p.95), é uma metodologia ágil de software, embora também seja definida como um framework criado na década de 1990 por uma equipe de desenvolvimento com o objetivo de orientar um projeto de desenvolvimento de atividades de aplicação de software incorporadas em isto.

Banco de dados

Modelo de dados relacional

  • SQL

Em um banco de dados relacional é necessário projetar toda a sua estrutura para que os dados possam ser armazenados. O modelo relacional adota a linguagem de definição, manipulação e consulta de banco de dados, chamada SQL, que é considerada o fator de sucesso para bancos de dados relacionais. Segundo Elmasri e Navathe (2005, p.149), “SQL é uma linguagem de banco de dados abrangente: possui comandos para definição de dados, consultas e atualizações”.

Os autores prosseguem afirmando que “SQL é uma linguagem de banco de dados abrangente: possui comandos de definição de dados, consulta e atualização” que permitem a manipulação de registros.

Modelo de dados não relacional

  • Firebase

Um armazenamento de dados de valor-chave permite ao usuário armazenar dados em um tipo de esquema. Os documentos da base de dados são endereçados através de uma chave única para sua representação (IBIDEM). A maioria dos fornecedores de bancos de dados criou sua própria linguagem de consulta, sendo necessária a criação de uma linguagem comum, assim como o SQL para bancos de dados relacionais.

Nayak, Poriya e Poojary destacaram algumas vantagens e desvantagens dos bancos de dados NoSQL em relação aos bancos de dados relacionais.

SGBD

De acordo com o site oficial2, o Firebase Realtime Database é “um banco de dados NoSQL hospedado na nuvem” que permite o armazenamento e a sincronização de dados em tempo real, facilitando o acesso dos usuários aos seus dados de qualquer lugar. Desta forma é possível desenvolver aplicações sem a necessidade de servidores, e, também por causa dos SDKs, quando um usuário fica offline, o Realtime Database possui uma função de cache local no dispositivo, que armazena as alterações até que sejam aplicadas quando o dispositivo volta a ficar on-line para que eles sejam sincronizados automaticamente. O Realtime Database fornece regras de segurança para definir a estrutura dos dados e quando eles são lidos e gravados.

Possui integração com Firebase Authentication, o que facilita a autenticação nas redes sociais e a definição de acessos e permissões.

Desenvolvimento móvel

Desenvolvimento nativo

Desenvolvimento híbrido

Existem soluções que permitem o desenvolvimento de aplicativos multiplataforma, incluindo Cordova, PhoneGap, Ionic e React Native.

Ambiente web

  • Linguagens de Programação
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • Frameworks
    • Angular
    • Ionic
  • Serviço
    • Back-end as a Service
  • Ambiente de desenvolvimento
    • Visual Studio Code

HTML, sigla para Hypertext Markup Language, que significa Hypertext Markup Language em português, é a principal linguagem de marcação da World Wide Web segundo o W3C (principal organização de padrões para a World Wide Web). Portanto, HTML é puramente uma linguagem de marcação e não é responsável por lidar com conteúdo relacionado a estilo (cores de fonte, tamanhos de texto), por exemplo. CSS é uma linguagem de estilo definida pelo W3C como um mecanismo simples para adicionar estilo (por exemplo, fontes, cores, espaçamento) a documentos da web, como HTML.

JavaScript, conforme definido pela ECMA (um dos criadores da linguagem), é uma linguagem de script utilizada no lado do cliente, ou seja, no navegador. O JavaScript foi criado pela Netscape em conjunto com a Sun Microsystems em 1995, com o objetivo de proporcionar interatividade nas páginas web. Embora seja uma linguagem que oferece tantas possibilidades de implementação, ela depende de um navegador web para interpretar e executar seus scripts.

Embora o JavaScript seja uma linguagem do lado do cliente, ele também pode ser usado no lado do servidor devido aos intérpretes hospedados nos servidores. JavaScript não pode ser considerado estritamente uma linguagem de programação, mas quando usado com frameworks como Ionic, por exemplo, é. De acordo com o site oficial da linguagem, TypeScript é uma linguagem de código aberto que compila em JavaScript puro.

Para obter esses benefícios, o desenvolvedor deve dominar a linguagem de programação e saber utilizar o framework em seu projeto. Angular é um framework criado pelo Google para o desenvolvimento front-end de aplicações multiplataforma, utilizando linguagens web (HTML, CSS e TypeScript).

Metodologia de desenvolvimento

Ambiente web

Ferramentas e aplicações

  • Visual Studio Code
  • Genymotion
  • Astah
  • Node.js
  • NPM

A ordem de desenvolvimento das modalidades de aplicação foi especificada com base na prioridade dos requisitos e nos requisitos que alguns exigiam. Foram selecionadas algumas ferramentas e aplicações essenciais para o processo de desenvolvimento e teste de aplicações móveis, nomeadamente Visual Studio Code, Genymotion, Astah, Node.js e NPM. O editor é gratuito, de código aberto e oferece uma variedade de plugins e extensões que podem ser incluídos no aplicativo para simplificar e agilizar o processo de desenvolvimento.

A instalação é simples, através do seu site oficial5 baixe o arquivo executável e siga suas instruções. Para realizar testes relacionados à renderização do aplicativo, foi escolhido o Genymotion versão 2.12.2 para emular um dispositivo Android virtual. Sua instalação é simples e o pré-requisito é a instalação do VirtualBox, software que permite a virtualização de dispositivos virtuais.

Astah é um programa que permite criar diferentes tipos de diagramas, incluindo diagramas de casos de uso. Node.js7 é um interpretador de código JavaScript de código aberto, que pode executar várias instruções simultaneamente. O NPM consiste em um kit de ferramentas de desenvolvimento que permite a instalação de diversos pacotes, como o próprio ionic.

Esse passo a passo vai desde o processo de levantamento e especificação de requisitos até a finalização do desenvolvimento da aplicação. O desenvolvimento foi feito em ambiente Windows, utilizando editor de texto, terminal, navegador e emulador para produção e testes.

Figura 04: Visual Studio Code
Figura 04: Visual Studio Code

Levantamento de requisitos

Preparação do ambiente

  • Instalação do Ionic
  • Criação do projeto
  • Instalação do firebase
  • Pacote e versões
  • Conexão com o Firebase

O início refere-se ao início da aplicação, depois é definido um nome e depois o template (pode ser um menu lateral, abas ou vazio). Este comando instala todos os pacotes e dependências necessários para conectar-se ao banco de dados. Logo no início do arquivo são exibidos o nome do projeto, o autor, o endereço de e-mail e o status da solicitação, que ainda é privada.

Observe que as dependências indicam a versão do ionic e do firebase utilizadas, ou seja, 3.9.2 e 5.4.0 respectivamente. A Figura 09 mostra a tela onde é necessário inserir o nome do projeto e selecionar a opção de aceitar os termos de uso. Nas configurações do Firebase, aparece uma opção para "Adicionar Firebase ao seu aplicativo da web".

Nesta opção são exibidas as configurações do projeto gerado, contendo chave, domínio de autenticação, endereço do banco de dados, ID do projeto, local de armazenamento e ID do remetente da mensagem. Abaixo segue um trecho do arquivo apenas com as linhas referentes ao Firebase e ao console web Figura 10.

Figura 09: Criação do projeto no firebase
Figura 09: Criação do projeto no firebase

O aplicativo

Diagrama de Casos de uso

Construção da aplicação

Login

Cadastro de usuário

É nesta tela que o usuário, caso esteja cadastrado, insere suas credenciais para acessar o aplicativo. Quando o usuário seleciona a opção “Cadastre-se” na tela de login, ele é direcionado para a tela de Cadastro. Nele, o cliente preencherá algumas informações básicas, incluindo sequencialmente o nome, telefone, e-mail e a senha escolhida para posterior acesso ao aplicativo.

Tela inicial e de perfil

Ao efetuar login ou cadastro no sistema, o cliente será direcionado para a tela inicial do aplicativo. Nesta tela ele verá algumas informações sobre o restaurante e abaixo dela as opções Compor marmita e Enviar sugestões.

Figura 14: Tela home e menu lateral
Figura 14: Tela home e menu lateral

Montagem de marmita

Finalizar pedido

Tela de Enviar sugestões

Tela inicial administrador

Cadastrar administrador

Cadastrar categoria

Manipulação de itens

Ao clicar em um item da tela de listagem de itens, o usuário será direcionado para a tela de edição de itens.

Figura 21: Tela de cadastrar itens
Figura 21: Tela de cadastrar itens

Gerenciar cardápio

Cadastrar cardápio

Receber pedidos

Visualizar feedbacks

Banco de dados

  • CRUD
  • Autenticação

CRUD (Criar, Ler, Atualizar e Excluir) no banco de dados corresponde às operações de inserção, seleção, atualização e exclusão de dados.

Figura 27: Estrutura de armazenamento
Figura 27: Estrutura de armazenamento

TESTES E RESULTADOS

Com a terceira questão pretendíamos determinar a satisfação dos utilizadores relativamente à eficácia da organização e monitorização dos pedidos de marmita recebidos. O Gráfico 03 mostra o resultado onde 100% das respostas foram SIM, assim concluímos que o aplicativo é útil para organização e controle de pedidos. O Gráfico 05 apresenta o resultado onde 100% das respostas foram Sim, concluindo que o aplicativo é uma ferramenta que promete melhorar o processo de montagem e pedido de marmita em um restaurante.

Com o desenvolvimento deste trabalho foi possível apresentar a capacidade com que uma aplicação mobile irá melhorar as rotinas de um restaurante e dos seus clientes no processo de encomenda de uma marmita. Através deste aplicativo, os clientes podem facilmente fazer pedidos de almoço, e o restaurante pode controlar os pedidos e demais atividades envolvidas neste processo. Para atingir o objetivo geral definido, foram seguidos vários objetivos específicos, tais como: Evidência de problemas relacionados com a montagem e encomenda de lancheiras que levam à ineficiência na prestação deste serviço; avaliar o processo de montagem e pedido da marmita para analisar as melhores formas de acertar o pedido; estudar as melhores práticas para desenvolvimento de aplicativos para que sejam simples, interativos e fáceis de usar por clientes e restaurantes; analisar aplicações similares no mercado, para melhorar as funcionalidades a serem desenvolvidas na aplicação proposta.

Os resultados obtidos neste projeto foram através da aplicação de um questionário, onde foi analisado o nível de satisfação do restaurante com a aplicação através de perguntas com respostas sim ou não. H0: A utilização de aplicativo mobile não melhoraria o processo de montagem e pedido de marmitas, uma vez que o restaurante pode controlar os pedidos recebidos, sem necessidade de ferramenta para esta função; Com o desenvolvimento desta investigação e o facto do restaurante procurar uma nova solução para os problemas que enfrenta, fica claro que não existe um controlo ideal sobre os pedidos feitos pelos clientes.

O fato de um aplicativo ajudar nesse processo é um grande benefício, pois atenderá as funções já desempenhadas e proporcionará as melhorias esperadas pelo restaurante. A garantia de melhoria da oferta de marmita não pode ser comprovada pelo facto da aplicação não ser disponibilizada por tempo suficiente para ser utilizada pelos clientes e pelo restaurante e os dados necessários à recolha para essa comprovação.

Figura 32: Teste de cadastro e edição de itens
Figura 32: Teste de cadastro e edição de itens

Imagem

Figura 02: Evolução dos requisitos
Figura 03: Trello
Figura 05: Genymotion
Figura 06: Astah
+7

Referências

Documentos relacionados

Para alcançar o objetivo descrito, traçamos os objetivos específicos: 1 realizar uma revisão bibliográfica para entendermos o que é trabalho como categoria teórica e espaço geográfico