Buscar

Sistema Mercado Inteligente - Módulo Mobile Requisitos Funcionais e não Funcionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Instituto de Ciências Exatas e Tecnologia Ciência da Computação – 7º Semestre 
 
 
 
 
 
Sistema Mercado Inteligente - Módulo Mobile 
Requisitos Funcionais e não Funcionais 
 
 
 
Versão 0.7 
 
 
DIOGO ALEXANDRO SILVA OLIVEIRA - R.A: T2826E-4 
LUCAS OLIVEIRA DOS SANTOS - R.A: N18904-5 
MATHEUS ILRAM PRADO DE LIMA - R.A: N183CA-0 
1 
Histórico da Revisão 
 
 
 
Data Versão Descrição Autor 
12/03/2020 0.1 Criação inicial do documento, descrição de 
requisitos funcionais e não funcionais 
Lucas Oliveira 
15/03/2020 0.2 Detalhamento dos requisitos, adicionado 
Finalidade, Escopo e [CASE01] 
Lucas Oliveira 
16/03/2020 0.3 Adicionado casos de uso Lucas Oliveira 
16/03/2020 0.4 Adicionado introdução, descrição geral, 
visão geral, tecnologías usadas e 
referências. Revisão de finalidade, escopo, 
requisito funcional: cadastro de conta e 
formatação de texto. 
Lucas 
Oliveira, 
Matheus Lima 
28/03/2020 0.5 Adicionado diagrama de casos de uso de 
[CASE01], [CASE02], [CASE03]. 
Lucas Oliveira 
29/03/2020 0.6 Adicionado [CASE05], [CASE06] e 
diagrama de caso de uso de [CASE05] e 
[CASE06] 
Lucas Oliveira 
31/03/2020 0.7 Adicionado regra de negócio e vantagens à 
introdução 
Lucas 
Oliveira, 
Diogo 
Alexandro 
 
2 
Índice 
 
1. Introdução 5 
1.1. Finalidade 5 
1.2. Escopo 5 
1.3. Visão Geral 6 
2. Descrição Geral 6 
3. Requisitos não funcionais 6 
3.1. [ReqNF01] Dispositivo portátil 6 
3.2. [ReqNF02] Banco de dados 7 
3.3. [ReqNF03] Sistema de localização 7 
4. Requisitos funcionais 7 
4.1. [ReqF01] Cadastrar conta cliente 7 
4.2. [ReqF02] Login com conta cliente 7 
4.3. [ReqF03] Consultar produto 8 
4.4. [ReqF04] Gerar rota até um produto 8 
4.5. [ReqF05] Gerar carrinho de compras 8 
4.6. [ReqF06] Contatar SAC 8 
5. Casos de uso 8 
5.1. Cadastro de conta cliente 8 
5.1.1 Diagrama do caso de uso [CASE01] 10 
5.2. Fazer login com conta cliente 10 
5.2.1. Diagrama do caso de uso [CASE02] 11 
5.3. Consultar produto 11 
5.3.1. Diagrama do caso de uso [CASE03] 12 
3 
5.4. Adicionar produtos ao carrinho 12 
5.4.1. Diagrama do caso de uso [CASE04] 13 
5.5. Geração de rota até um produto 14 
5.5.1. Diagrama do caso de uso [CASE05] 15 
5.6. Contatar SAC 15 
5.6.1. Diagrama do caso de uso [CASE06] 16 
6. Tecnologias usadas 16 
6.1. Android Studio 17 
6.2. Kotlin 17 
6.3. Unity 18 
6.4. Linguagem C# 18 
6.5. Firebase 18 
6.6. Android Jetpack 18 
6.7. Android Room 19 
7. Referências 19 
 
4 
 
1. Introdução 
O propósito deste documento é informar aos participantes do projeto sobre seu 
desenvolvimento geral, suas funções, benefícios além de possíveis restrições e 
limitações, tudo de forma detalhada e o mais clara possível para um entendimento 
geral. 
O documento possui os requisitos funcionais e não funcionais especificados de 
acordo com o planejamento desenvolvido pelos participantes do projeto. 
A regra de negócio do projeto é que o cliente tenha a experiência de compra em 
um supermercado facilitada, através do uso das funcionalidades do aplicativo como 
consulta de produtos disponíveis e geração de rota até um produto desejado. 
O projeto traz vantagens como: experiência de compra rápida e eficiente, 
facilidade de navegação do espaço físico e maior quantidade de informação sobre os 
produtos desejados. 
1.1. Finalidade 
O projeto consiste da criação de um aplicativo para celulares Android que visa 
trazer serviços e ferramentas digitais para auxiliar o usuário. 
1.2. Escopo 
O projeto foi dividido em múltiplas ilhas com finalidades e escopos diferentes, 
cada uma responsável por um setor, sendo estes: Backend, Web, Mobile, Holograma e 
Mapeamento. Este documento refere a ilha de desenvolvimento mobile, o qual o 
objetivo é desenvolver um aplicativo de celular cujo desempenha tarefas que ajudem o 
usuário a: localizar produtos, navegar o supermercado, ajustar seu carrinho de 
compras e conferir produtos e promoções realizadas pelo supermercado. 
5 
1.3. Visão Geral 
Além desta seção introdutória, as seções seguintes estão organizadas como 
descrito abaixo. 
● Seção 2 - Descrição geral: apresenta uma descrição geral do projeto, 
caracterizando qual é o seu escopo e descrevendo seus usuários. 
● Seção 3 ​- Requisitos não funcionais: cita e descreve brevemente os requisitos 
não funcionais do projeto. 
● Seção 4 ​- Requisitos funcionais: cita e descreve brevemente os requisitos 
funcionais do projeto. 
● Seção 5 - Casos de uso: descreve o funcionamento de certas interações de 
atores com o projeto 
● Seção 6 - Tecnologías usadas: cita e descreve as tecnologias usadas para o 
desenvolvimento do projeto. 
 
2. Descrição Geral 
O objetivo do aplicativo mobile é facilitar a experiência de compra dos usuários 
utilizando ferramentas de localização e listagem. Ele visa principalmente atingir 
usuários que têm dificuldade de navegar em supermercados, ou que desejam ir direto 
ao produto desejado sem ter que procurá-los diretamente. 
3. Requisitos não funcionais 
3.1. [ReqNF01] Dispositivo portátil 
O aplicativo necessita de um dispositivo móvel com um sistema android versão 7 
ou superior. 
6 
3.2. [ReqNF02] Banco de dados 
O aplicativo necessita de acesso à um banco de dados PostgreSQL com 
informações sobre os produtos disponíveis e clientes cadastrados. 
3.3. [ReqNF03] Sistema de localização 
O aplicativo necessita de acesso à um sistema de localização em interiores 
baseado em redes wireless com pontos de acessos para traçar rotas. 
4. Requisitos funcionais 
4.1. [ReqF01] Cadastrar conta cliente 
O aplicativo deve permitir que o usuário se cadastre como cliente. 
● A tela de cadastro de conta consiste de campos de texto obrigatórios e 
opcionais e um botão “Finalizar cadastro”. 
○ Campos obrigatórios: 
■ E-mail. 
■ Senha. 
■ Nome. 
○ Campos opcionais: 
■ Endereço. 
■ CEP. 
4.2. [ReqF02] Login com conta cliente 
O aplicativo deve permitir que o usuário faça login com sua conta. 
● A tela de login consiste de campos de identificação, um botão “Fazer 
login” e um botão “Criar conta”. 
7 
4.3. [ReqF03] Consultar produto 
O aplicativo deve permitir que o usuário consulte informações sobre um ou mais 
produtos. 
4.4. [ReqF04] Gerar rota até um produto 
O aplicativo deve gerar uma rota do presente local do usuário até um produto 
especificado caso esta seja solicitada pelo usuário. 
4.5. [ReqF05] Gerar carrinho de compras 
O aplicativo deve permitir que o usuário adicione produtos consultados a um 
carrinho. 
4.6. [ReqF06] Contatar SAC 
O aplicativo deve permitir que o usuário consiga entrar em contato com o SAC. 
5. Casos de uso 
5.1. Cadastro de conta cliente 
 
[CASE01] Cadastro de conta cliente 
Referência [ReqF01] Cadastrar cliente 
Sumário O usuário faz o cadastro de uma conta cliente. 
Pré-condições O dispositivo usado deve ter conexão com a internet. 
Atores Cliente, Backend 
Descrição 1. O Cliente pressiona o botão “criar nova conta”. 
8 
2. O aplicativo exibe uma tela que contém um formulário com 
campos para os dados necessários para o cadastro e um 
botão para “criar sua conta”. 
3. O Cliente pressiona o botão “criar sua conta”. 
4. O aplicativo envia os dados preenchidos ao Servidor para 
validação. 
5. O aplicativo recebe um retorno do Servidor confirmando o 
cadastro. 
6. O aplicativo retorna à tela inicial. 
Alternativas 1. No passo 3, caso haja algum campo obrigatório vazio ou 
com dados inválidos, o aplicativo exibe um aviso na tela 
informando o campo a ser preenchido corretamente e o 
formato de dados válido para o campo. 
2. No passo 5, caso o Servidor retorne um erro com o 
processo de validação o aplicativo exibe um aviso na tela 
informando o motivo.E.g: “E-mail já cadastrado”. 
Exceção O cadastro da conta cliente não pode ser concluído caso o Cliente 
deixe de preencher um campo obrigatório, caso dados inválidos 
tenham sido preenchidos ou caso existam dados salvos 
anteriormente no servidor que sejam idênticos aos dados 
preenchidos. 
 
9 
5.1.1 Diagrama do caso de uso [CASE01] 
 
 
5.2. Fazer login com conta cliente 
 
[CASE02] Fazer login com conta cliente 
Referência [ReqF01] Cadastrar conta cliente, [ReqF02] Login com conta 
cliente 
Sumário O cliente faz o login no aplicativo com sua conta cliente 
Pré-condições O dispositivo usado deve ter conexão com a internet, [CASE01] 
Cadastro de conta cliente. 
Atores Cliente, Backend 
Descrição 1. O Cliente pressiona o botão “Fazer login”. 
2. O aplicativo exibe uma tela com campos de identificação 
necessários para efetuar o login. 
3. O cliente preenche os campos com os dados de 
identificação. 
4. O Cliente pressiona o botão “Login”. 
10 
5. Os dados preenchidos são enviados para o Backend para 
validação. 
6. O Backend retorna a confirmação da validação. 
7. O aplicativo retorna à tela inicial. 
Alternativas 1. No passo 6 caso, o Backend retorne um erro de validação, 
o processo retorna ao passo 2, porém exibindo também um 
aviso mencionando que o login não foi efetuado. 
Exceção Não é efetuado o login caso os campos de identificação estejam 
vazios ou os dados de identificação estejam incorretos. 
 
5.2.1. Diagrama do caso de uso [CASE02] 
 
5.3. Consultar produto 
[CASE03] Consultar produto 
Referência [ReqF03] Consultar produto 
Sumário O cliente pesquisa produtos disponíveis. 
Pré-condições O dispositivo usado deve ter conexão com a internet. 
11 
Atores Cliente, Backend 
Descrição 1. O Cliente preenche o campo de pesquisa com o nome ou 
parte do nome do produto desejado. 
2. O Cliente pressiona o botão “Pesquisar”. 
3. O dados usados para pesquisa são enviados ao backend. 
4. O backend retorna informações sobre os produtos 
relacionados à pesquisa. 
5. O aplicativo exibe uma tela com o resultado da pesquisa. 
Alternativas - 
Exceção A pesquisa não deve ser efetuada caso o cliente não preenche o 
campo de pesquisa. 
 
5.3.1. Diagrama do caso de uso [CASE03] 
 
5.4. Adicionar produtos ao carrinho 
[CASE04] Adicionar produtos ao carrinho 
Referência [ReqF03] Consultar produto, [ReqF05] Gerar carrinho de compras 
Sumário O cliente adiciona produtos consultados à um carrinho de compras 
12 
digital. 
Pré-condições O dispositivo usado deve ter conexão com a internet, [CASE03] 
Consultar produto. 
Atores Cliente 
Descrição 1. O Cliente determina a quantidade de produto a ser 
adicionado. 
2. O cliente pressiona o botão “Adicionar ao carrinho”. 
3. O aplicativo adiciona o produto na lista do carrinho. 
Alternativas - 
Exceção O produto não é adicionado ao carrinho caso a quantidade 
determinada seja menor ou igual a 0. 
 
5.4.1. Diagrama do caso de uso [CASE04] 
 
13 
 
5.5. Geração de rota até um produto 
[CASE05] Geração de rota até um produto 
Referência [ReqF03] Consultar produto, [ReqF05] Gerar rota até um produto 
Sumário O cliente determina um produto, uma rota partindo da posição 
atual do cliente indo até o produto determinado é gerada e exibida 
no aplicativo. 
Pré-condições O dispositivo usado deve ter conexão com a internet, [CASE03] 
Consultar produto. 
Atores Cliente, Backend 
Descrição 1. O cliente pressiona o botão “rota” 
2. O aplicativo envia dados sobre o local para o backend. 
3. Após serem processados o backend retorna informações 
de rota. 
4. O aplicativo exibe a rota em um tela no aplicativo. 
Alternativas - 
Exceção A rota não é gerada caso ocorra um erro com o processamento de 
dados de rota. 
14 
5.5.1. Diagrama do caso de uso [CASE05] 
 
5.6. Contatar SAC 
[CASE06] Contatar SAC 
Referência [ReqF01] Cadastrar conta cliente,[ReqF02] Fazer login com conta 
cliente, [ReqF06] Contatar SAC 
Sumário O cliente cadastrado e logado em sua conta entra em contato com 
o SAC do mercado. 
Pré-condições O dispositivo usado deve ter conexão com a internet, [CASE01] 
Cadastro de conta cliente, [CASE02] Fazer login com conta 
cliente. 
15 
Atores Cliente, Backend, Funcionário 
Descrição 1. O cliente pressiona o botão “Contatar SAC”. 
2. O aplicativo exibe uma tela que contém um formulário com 
os campos necessários para enviar uma mensagem ao 
SAC. 
3. O cliente pressiona o botão “Enviar mensagem”. 
4. A mensagem é enviada ao Backend que envia a 
mensagem ao SAC. 
5. O aplicativo exibe uma tela que contém um sistema de chat 
com a mensagem enviada pelo cliente. 
Alternativas - 
Exceção A mensagem não é enviada caso campos obrigatórios estejam 
vazios. 
5.6.1. Diagrama do caso de uso [CASE06] 
 
6. Tecnologias usadas 
No desenvolvimento do projeto foram utilizadas as tecnologias descritas abaixo, 
escolhidas durante o planejamento, para realizar funções específicas. 
16 
6.1. Android Studio 
Android Studio é uma ferramenta de desenvolvimento mobile, desenvolvida pela 
Google utilizando como base o IntelliJ IDEA da JetBrains. É uma IDE de código aberto 
que trabalha especificamente para o desenvolvimento na plataforma Android, 
possuindo diversas utilidades que ajudam bastante na simplificação e agilização do 
desenvolvimento do código, dentre eles: 
● Suporte para compilações baseadas em Gradle; 
● Refatoração de código específica para Android; 
● Editor de layout que permite que usuários arrastem componentes de interface de 
usuário, com opção de pré-visualizar layouts em várias configurações de tela; 
● Integração com GitHub. 
Levando em consideração essas utilidades, Android Studio foi considerada a 
melhor ferramenta para o desenvolvimento respectivo do projeto. 
 
6.2. Kotlin 
Kotlin é uma linguagem de programação multiplataforma de propósito geral que 
trabalha utilizando a JVM, assim como Java. Ela foi escolhida para se trabalhar no 
projeto por possuir uma versatilidade maior que a linguagem Java, que seria a outra 
opção para se utilizar no desenvolvimento. 
Ela é uma linguagem muito mais eficiente e com código mais simples, graças 
aos seus lambdas e co-rotinas, além de ser ​null-safe, ​o que ajuda bastante no 
apuramento de bugs e erros. Além disso ela possui uma integração bem robusta com 
Java, permitindo que você utilize de basicamente quase todas as funções e bibliotecas 
que são utilizáveis em Java. 
17 
6.3. Unity 
Unity é uma game engine, ou seja, é uma IDE projetada com foco em 
desenvolvimento de jogos. Embora sua principal funcionalidade seja desenvolvimento 
de jogos, diversas outras funcionalidades foram adicionadas à Unity ao longo dos anos, 
tornando possível o desenvolvimento de vários tipos diferentes de softwares. 
Unity possui suporte para diversas plataformas, como Linux, Windows e 
principalmente Android, facilitando o processo de integração com das funcionalidades 
AR com a parte mobile do projeto. 
6.4. Linguagem C# 
C# é uma linguagem de programação multi-paradigma de propósito geral. 
Projetada para ser simples, moderna e para ser usada no desenvolvimento de 
componentes de software adequados para ambientes distribuídos. C# é também a 
linguagem principal da Unity, a game engine que está sendo usada para 
desenvolvimento do módulo de geração de rotas usando Realidade Aumentada. 
6.5. Firebase 
Firebase é um conjunto de serviços prestados a área mobile e web, no caso 
deste projeto sua utilização principal é o Firebase Auth, que é o serviço de autenticação 
de login utilizado pelo usuário. 
6.6. Android Jetpack 
Android Jetpack é um conjunto de componentes, ferramentas e orientações que 
ajudam no desenvolvimento de aplicações android. É basicamente um conjuntoessencial de bibliotecas para desenvolvimento android de maneira geral, e nosso 
projeto não é exceção; 
18 
6.7. Android Room 
Room é uma biblioteca de persistência que fornece uma interação com banco de 
dados SQLite, é uma ferramenta que serve como uma camada de interação com o 
banco de dados. 
 
7. Referências 
GOOGLE LLC. Android Jetpack | Android Developers. Disponível em: 
https://developer.android.com/jetpack​. Acesso em: 16 mar. 2020. 
GOOGLE LLC. Room Persistence Library | Android Developers. Disponível em: 
https://developer.android.com/topic/libraries/architecture/room​. Acesso em: 16 mar. 
2020. 
UNITY TECHNOLOGIES. Unity - Manual: Unity User Manual (2019.3). Disponível em: 
https://docs.unity3d.com/2019.3/Documentation/Manual/index.html​. Acesso em: 16 mar. 
2020. 
GOOGLE LLC. Firebase - Disponível em: ​https://firebase.google.com/​. Acesso em: 16 
mar. 2020. 
GOOGLE LLC. Meet Android Studio | Android Developers. Disponível em: 
https://developer.android.com/studio/intro​. Acesso em: 16 mar. 2020. 
HELLER, Martin. What is Kotlin? The Java alternative explained. [S. l.], 27 out. 2017. 
Disponível em: 
https://www.infoworld.com/article/3224868/what-is-kotlin-the-java-alternative-explained.
html​. Acesso em: 16 mar. 2020 
JET BRAINS. Reference - Kotlin Programming Language. Disponível em: 
https://kotlinlang.org/docs/reference/​. Acesso em: 16 mar. 2020. 
MICROSOFT CORPORATION. C# docs - get started, tutorials, reference. | Microsoft 
Docs. Disponível em: ​https://docs.microsoft.com/en-us/dotnet/csharp/​. Acesso em 16 
mar. 2020 
19 
https://developer.android.com/jetpack
https://developer.android.com/topic/libraries/architecture/room
https://docs.unity3d.com/2019.3/Documentation/Manual/index.html
https://firebase.google.com/
https://developer.android.com/studio/intro
https://www.infoworld.com/article/3224868/what-is-kotlin-the-java-alternative-explained.html
https://www.infoworld.com/article/3224868/what-is-kotlin-the-java-alternative-explained.html
https://kotlinlang.org/docs/reference/
https://docs.microsoft.com/en-us/dotnet/csharp/

Continue navegando