Você está na página 1de 26

Instituto Superior de Transportes e Comunicações

Nome: Saifodine Carlos.


Nr: 5427
Turma: I31
Ano: 3ᵒ
Cadeira: Programação para Dispositivos Móveis (Intensivo)
Tema: Aplicativo de Música com Comando de Voz (MT2)

Docente: Engº Ataíde Chilaúle

Maputo, aos 30 de Janeiro, de 2023

1
Sumário

1. Introdução ................................................................................................................................. 1
2. Programação para Dispositivos Móveis ...................................................................................... 2
3. Linguagens de Programação para Dispositivos Móveis ............................................................... 2
4. Requisitos .................................................................................................................................. 3
5. Arquitectura de Software........................................................................................................... 4
6. Diagrama de Entidades e Relacionamentos ................................................................................ 4
7. Sistema e Gestão de Base de Dados (SGBD) ............................................................................... 5
8. Metodologia (Qualitativo e Quantitativo) .................................................................................. 6
9. Cinco Problemas Identificados ................................................................................................... 6
10. TheWay ................................................................................................................................. 7
10.1. Descrição do Problema e Público-alvo ................................................................................ 7
10.2. Descrição da Solução .......................................................................................................... 7
11. Requisitos Funcionais............................................................................................................. 7
12. Diagrama de Entidades e Relacionamentos (DER) .................................................................. 8
13. Diagrama de Classes .............................................................................................................. 9
14. Arquitectura de Software (MVA) .......................................................................................... 10
15. Protótipo ............................................................................................................................. 11
15.1. Fragment Home ............................................................................................................... 20
15.2. Fragment Favoritos .......................................................................................................... 20
15.3. Fragment Contacto .......................................................................................................... 20
15.4. Fragment Log Out/ Deslogar ............................................................................................ 20
16. Link do github ...................................................................................................................... 21
17. Conclusão ............................................................................................................................ 22
18. Referências Bibliográficas .................................................................................................... 23

Índice de Figuras

Figura 1 – Exemplos de Dispositivos Móveis ................................................................................. 2


Figura 2 – Notação Chen ................................................................................................................ 5
Figura 3 – Componentes de um Sistema de Banco de Dados. ........................................................ 5
Figura 4 – DER do aplicativo de música TheWay. ......................................................................... 8
Figura 5 – Diagrama de Classes do aplicativo de música TheWay. ............................................... 9
Figura 6 – MVA do aplicativo de música TheWay. ...................................................................... 10

2
3
1. Introdução
Este trabalho é uma ilustração sobre a qualidade da aplicação cujo nome é TheWay, podendo
assim conhecer-se os seus limites e o seu objectivo principal para o qual deve ser programado.
Cujo foco é facilitar a interação do usuário e o aplicativo, em momentos que este usuário possa
estar em situações que obrigatoriamente não possa mexer o dispositivo, ou que apenas se
encontra em cenários negativos. Como por exemplo: conduzindo ou mesmo caminhando e
correr o risco de ser roubado.

Objectivo Geral
- Fazer um levantamento de requisitos.

Objectivo Específico
- Formalizar e descrever o escopo do projecto em questão.

1
➢ Esta é a seccção da Revisão Bibliográfica

2. Programação para Dispositivos Móveis


Programação para Dispositivos Móveis basicamente é a acção de desenvolver aplicativos
destinados para dispositivos móveis.
E o que seriam estes tais de dispositivos móveis?
- São dispositivos em que o usuário tem fácil capacidade de se deslocar com tais, eles são
compostos por variados aplicativos que cumprem suas funções programadas, além da sua gama
de aplicativos, eles têm a capacidade de se conectar, obter e fornecer dados a outros usuários,
aplicações e sistemas.
Ainda tem dúvidas? Então, eis alguns exemplos ilustrados por uma única imagem:

Figura 1 – Exemplos de Dispositivos Móveis

3. Linguagens de Programação para Dispositivos Móveis


C++, JavaScript, Kotlin, C#, Python, PHP, Swift , Objective C, JAVA, HTML 5, Ruby,
Rust, Lua, Action Script, SQL, Dart e muitas mais. Mas, estas de acordo com pesquisas
feitas são as que estão no topo da classificação segundo o site da SPINX.
Dentre as linguagens citadas, qual é a melhor para Dispositivos Móveis?
- “Existem várias linguagens de programação para diferentes tipos de tarefas. A seleção certa
produz soluções concisas, fáceis de codificar, fáceis de dimensionar, fáceis de depurar e
corrigir.”(spinxdigital)

2
No caso deste trabalho, que tal falar do Java?
Java
- Segurança, robustez, popularidade, recursos de desenvolvimento móvel integrados,
investimento relativamente baixo, Suporte da comunidade.
Acima estão citados os seus benefícios primários, quando falamos de Java para Dispositivos
Móveis.
Por que usar Java para desenvolvimento móvel?
“Java é uma linguagem de programação versátil e poderosa que pode ser usada para
desenvolver uma ampla gama de aplicativos. Pode ser executado em qualquer plataforma,
incluindo Android e iOS.”(Borusiuk 2022)
Plataformas Java
✓ Java Standard Edition (JSE) – Define a JVM e bibliotecas que irão correr em
computadores.
✓ Java Enterprise Edition (JEE) – É a plataforma JSE adicionada a um conjunto de APIs
para os servidores, containers e ferramentas.
✓ Java Micro Edition (JME) – É a plataforma projectada para pequenos dispositivos e
possui uma máquina virtual mais leve e um mínimo de bibliotecas.

4. Requisitos
Neste âmbito, sua definição seria como sendo o conjunto de dados que podemos chamar de
descrição de um sistema de software por desenvolver.
E temos dois tipos de requisitos, que são os:
- Funcinais e não-funcionais.
Requisitos Funcionais
Estes dizem sobre a capacidade da aplicação, mais concretamente, o que ela faz.
Exemplo: Um aplicativo de música deve ser capaz de realizar pesquisas musicais do usuário e
tocar a tal música assim como realizar as outras operações básicas.
Requisitos Não-Funcionais
Praticamente são as limitações de um aplicativo, ou por outras palavras, as qualidades
específicas, isto é, sem sair da “caixa”, destinado a um tipo de ambiente ou ação.
Exemplo: Afirmar que o software deve operar somente em Android e IOS ou somente em IOS.
Ou ainda, quando definimos que uma solução precisa utilizar criptografia, pois manipula dados
sensíveis de usuários.

3
5. Arquitectura de Software
É de extrema importância pensar em arquitectura desde o dia zero da criação de um software.
Porquê?
- Devido a cada escolha durante o crescimento do trabalho, pois se essa escolha for errada pode
vir a criar consequências futuras como uma que toda gente conhece, a lentidão do software, e
vários outros e isso pode levar ao termo chato chamado trabalho.
De acordo com o canal da Youtube Código Fonte TV, o mais simples e o mais conhecido
padrão de arquitectura de software é o model-view-controller (MVC) mas neste trabalho irá se
falar do Minimum Viable Architecture (MVA) que é tecnicamente equivalente ao Minimum
Viable Product (MVP).
“Um MVP precisa de um MVA” (Bittner 2022)
MVA – pode ser definido como a arquitetura com as mínimas funcionalidades do produto, a
cada fase ou versão que o producto vai passando. Em que durante o ciclo de vida de cada versão
ele é melhorado.
Os Principais Princípios da Arquitetura Mínima Viável
“- Construir para o cenário mais provável” (Novoseltseva 2022)
“- Manter o design flexível o suficiente para lidar com cenários extremos à medida que eles
surgem” (Novoseltseva 2022)
“- O produto é construído em pequenos incrementos ao longo de um determinado período de
tempo” (Novoseltseva 2022)
“- Esse tipo de arquitetura é fundamentado em requisitos concretos e factuais, em vez de
suposições” (Novoseltseva 2022)

6. Diagrama de Entidades e Relacionamentos


Definição – é a ilustração de um fluxograma com suas próprias representações de símbolos
,em que as Entidades se relacionam entre sí num sistema.
Este diagrama é uma das fases iniciais muito usados devido a base de dados de um determinado
sistema.
Símbolos e Notações de Diagramas ER
Existem diversos sistemas de notação que são semelhantes entre si, porém variam em alguns
detalhes.
Estilo de notação Chen

4
Figura 2 – Notação Chen

Como Desenhar um Diagrama ER Básico


1. Entidades: identifique as entidades que estão envolvidas.
2. Relacionamentos: determine como as entidades estão todas relacionadas. Desenhe
linhas entre elas para mostrar as relações e rotulá-las. Algumas entidades podem não
estar relacionadas, e isso não é um problema.
3. Atributos: acrescente mais camadas de detalhes ao adicionar atributos-chave de
entidades.
4. Cardinalidade: mostre se a relação é de um-para-um, um-para-muitos ou muitos-para-
muitos.

7. Sistema e Gestão de Base de Dados (SGBD)


A maioria dos aplicativos, só são úteis se forem capazes de gravar e relacionar informações,
pois, todo programa opera a partir de dados.
Sem sair da caixa, o prórpio aplicativo de música precisa efectuar consultas, listar, eliminar,
actualizar, etc, e isso somente vai acontecer com sucesso se tivermos o SGBD como solução.

E o que é isso de SGBD?


- “Software que possui recursos capazes de manipular as informações do banco de dados e
interagir com o usuário.” (DEVMEDIA 2006)

Figura 3 – Componentes de um Sistema de Banco de Dados.

5
Tipos de SGBD
1. Relacionais (SQL): cuja função é conectar dados de origens diferentes
2. Não relacionais (NoSQL): a diferença em relação aos bancos SQL é que, aqui, a
estrutura de dados não tem que ser previamente definida
3. Hierárquico: formato mais antigo, no qual os dados se organizam em uma disposição
piramidal, onde dados “filhos” são ligados a dados “pai”
4. De rede: nele, cada “filho” pode ter mais de um “pai” e a estrutura dos dados se
assemelha mais a uma teia de aranha do que a uma pirâmide
5. Orientado a objetos: modelo mais avançado em que diferentes formatos de dados se
mesclam, sendo, por isso, mais caro de se implementar.

PrincipaisVantagens Do SGBD
✓ Menos esforço humano
✓ Customização
✓ Evita redundâncias
✓ Facilidade no compartilhamento de dados.

8. Metodologia (Qualitativo e Quantitativo)


Os métodos usados para a busca de informação foi por meio do motor de pesquisa da
www.google.com e através da plataforma de vídeos www.youtube.com .

➢ Termina a secção Revisão Bibliográfica e de seguida encontrar-se-á a secção do


Desenvolvimento prático do trabalho.
➢ Início da secção do Desenvolvimento prático
9. Cinco Problemas Identificados
Taxímetro: A não noção da distância em tempo real para saber o custo do transporte até uma
determinada distância;
BossTravel: A chegada precoce de um passageiro na terminal mas mesmo assim tem de lutar
para poder ter lugar no autocarro para chegar ao seu destino e mesmo se apanhar lugar, durante
a viagem passa mal de fome e tem que esperar até um certo local para comer.
TheWay: Onde encontrar música de Danilo, o recente artista moçambicano com alta voz?...
Caros condutores, olhos sempre à estrada, caros pedestres, cuidado com os perigos ao redor...
Mas a vontade é tanta para trocar de música, ou aumentar o volume, ou mesmo parar a música
por estar cansado de escutar.
JustYell: Sempre a perder o celular.
MZsports: Onde ver a classificações dos jogadores, das equipes, do clube de natação, do melhor
nadador, do melhor pugilista, etc, haverá algum aplicativo ou site organizado?

6
Bom, acima estão descritos os problemas e suas possíveis aplicações que servirão de soluções.
Opcionalmente o problema que tem maior impacto na sociedade, o que será facilmente usado
pelos utilizadores é o TheWay apesar da concorrência.
10. TheWay
10.1.Descrição do Problema e Público-alvo
TheWay é o nome do aplicativo que principalmente irá inovar os artistas locais do nosso país,
além de ter músicas globais, terá músicas dos artistas locais que dificilmente são encontrados
na maioria dos aplicativos de músicas online. Esta app servirá como uma ponte para aqueles
que querem que os seus nomes sejam conhecidos numa grande extensão de área.
Solucionará também o problema que os condutores, e pedestres normalmente têm, que são:
acidentes de viação e roubos de dispositivos na rua, respectivamente.

10.2.Descrição da Solução
Com o uso do comando de voz para realizar as operações importantes do aplicativo, o usuário
não precisa de interação directa com o dispositivo. Assim, em qualquer situação de difícil
manuseamento, o usuário só precisará usar o comando de voz.

11. Requisitos Funcionais


- O aplicativo deve permitir que um usuário faça sign in usando o seu nome de usuário, email
ou número do celular e senha. Assim como deve permitir que o mesmo faça log in com apenas
o nome do usuário e senha.
- O aplicativo deve ser capaz de fazer com que o usuário pesquise nomes de músicas, assim
como nome de artistas musicais.
- O aplicativo deve ser capaz de listar as músicas que o usuário seleccionou para escutar.
- O aplicativo deve ser capaz de tocar as músicas de um determinado artista ou da lista criada
pelo usuário de forma contínua e ordenada ou aleatória, dependendo do usuário.
- O aplicativo deve ser capaz de parar, tocar, aumentar e baixar volume, adiantar ou retroceder
a música quando o usuário seleccionar tais opções.
- O aplicativo deve ser capaz de mudar para o modo de comando de voz quando este é
seleccionado pelo usuário.
- O aplicativo no modo do comando de voz deve conseguir tocar e parar a música, aumentar e
baixar volume, trocar de música anterior ou a próxima e pesquisar uma determinada música.

7
12. Diagrama de Entidades e Relacionamentos (DER)

Figura 4 – DER do aplicativo de música TheWay.

8
13. Diagrama de Classes

Figura 5 – Diagrama de Classes do aplicativo de música TheWay.

9
14. Arquitectura de Software (MVA)

Figura 6 – MVA do aplicativo de música TheWay.

10
15. Protótipo

11
12
13
14
15
16
17
18
19
Numa primeira fase o aplicativo faz o upload das músicas numa activity em que o botão
presente no fragment home redireciona até a própria activity, onde se conecta com o storage
do firebase para não fazer-se o upload directamente do firebase isto é, fazer upload
manualmente, criando sempre variáveis. E o aplicativo irá como conclusão tocar a música
que será listada numa activity que cont’em recycler view.
De momento ao tocar a própria card view a música toca, ainda não pausa ou vai para a
seguinte música.
A app contém 4 fragments de home, favoritos, de log out e contacto, contém também um
header, options, toast messages e a própria navigation Drawer.

15.1.Fragment Home
- possui no momento um botão que irá redicionar o usuário a activity que terá a função de
fazer upload da música;
-Futura deve possuir uma visualização amigável para o usuário.

15.2.Fragment Favoritos
- Deve futuramente listar as músicas favoritas do usuário.

15.3.Fragment Contacto
- Deve possuir contacto para suporte ao usuário.

15.4.Fragment Log Out/ Deslogar


Possui uma imagem que ao tocar redireciona o usuário a página de Login

20
16. Link do github

- https://github.com/DidasMorera/TheWay

21
17. Conclusão
Este trabalho no geral foi um levantamento de requisitos que é a fase inicial de qualquer
projecto, neste caso, de um projecto de um aplicativo. Conclui-se que os diagramas
principalmente são a base para uma ideia se tornar concreta e para que esta ideia concreta seja
devidamente organizada para evitar futuros contratempos, usando diagramas de entidades e
relações, diagrama de classes como também a mínima arquitectura viável.
Os Objectivos propostos foram atingidos teoricamente e praticamente, pois os pontos foram
abordados mas alguns não devidamente aprofundados devido ao contexto em causa.

22
18. Referências Bibliográficas

1. Lucidchart. “O que é um diagrama entidade relacionamento?” .


https://www.lucidchart.com/pages/pt/o-que-e-diagrama-entidade-relacionamento
2. DEVMEDIA, 2006. “Conceitos Fundamentais de Banco de Dados”.
https://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649
3. Novoseltseva, Ekaterina, 2022. “Minimum Viable Architecture”.
https://apiumhub.com/tech-blog-barcelona/minimum-viable-architecture/
4. Spinxdigital, 2023. “16 Best Programming Languages for Mobile App Development
2023”. https://www.spinxdigital.com/blog/mobile-app-development-languages/
5. Santos, Jailson. 2021. Desenvolvimento para Dispositivos Moveis. Brasil: SER
EDCUCACIONAL
6. Melo, Ana Cristina. Desenvolvendo Aplicações com UML, 1 º Edição, Brasport, 2002.
7. Melo, Ana Cristina. Desenvolvimento aplicações com UML 2.0: do conceitual à
implementação / Ana Cristina Melo. – 2. Ed. – Rio de Janeiro : Brasport, 2004.
8. PUC Goiás. 2020. “Análise de Requisitos na Prática”.
https://www.youtube.com/watch?v=XlPidjlnIYM
9. Visure. 2022. “O que são Requisitos Funcionais: Exemplos, Definição, Guia
Completo”. https://visuresolutions.com/pt/blog/functional-requirements/
10. Tech Jarves. How to add navigation drawer in empty activity in android studio [ Part -
1 ]. YouTube, 11 de Agosto de 2020. Disponível em: <
https://www.youtube.com/watch?v=OJX0jpfF4sw>. Acesso em: 29 de Janeiro de
2023.
11. Stack Mobile. Firebase - Cadastro e Autenticação de usuários | Tratando Exceptions |
Verificando usuário logado #3. YouTube, 29 de Janeiro de 2022. Disponível em: <
https://www.youtube.com/watch?v=turCcT_bIVA&t=2431s>. Acesso em: 29 de
Janeiro de 2023.
12. Tech Sanjeet Hindi. how to send data from fragment to activity using intent in android
studio. YouTube, 20 de Janeiro de 2020. Disponível em: <
https://www.youtube.com/watch?v=i-K5uBwEt6o>. Acesso em: 29 de Janeiro de
2023.

13. Iarn tech. Android Studio Navigation Drawer with Custom Fragment and Activity ||
Navigation Component. YouTube, 20 de Fevereiro de 2022. Disponível em: <
https://www.youtube.com/watch?v=aAzjQ2K_pDI>. Acesso em: 29 de Janeiro de
2023.

14. Foysal Tech. Online Music Player App using Firebase + Backend using Android
Studio Part 01. YouTube, 28 de Fevereiro de 2022. Disponível em:
<https://www.youtube.com/watch?v=ThZKrjHTD4M&list=PL0xdCkXoUQmPtkilS
maag0JEWzvGZnYrE&index=4 >. Acesso em: 29 de Janeiro de 2023.

23

Você também pode gostar