You are on page 1of 7

Relatório Técnico

Linguagem de Programação II
Jady L. Silva1 ,Wendy M. Moreira2

1
Instituto Metrópole Digital – Universidade Federal do Rio Grande do Norte (UFRN)

1. Introdução
Neste relatório, é apresentado o desenvolvimento de um player de música em Java utili-
zando a biblioteca JLayer, o padrão de arquitetura MVC e a plataforma JavaFX. O obje-
tivo do projeto é criar um reprodutor de música com interface gráfica moderna e recursos
avançados. O desenvolvimento é realizado em etapas, abrangendo desde a configuração
do ambiente de desenvolvimento até a implementação da reprodução de músicas utili-
zando a biblioteca JLayer. A interface gráfica é construı́da com o JavaFX, proporcionando
recursos visuais. Ao final do projeto, é obtido um player de música funcional, capaz de
reproduzir arquivos MP3, controlar a reprodução e exibir informações relevantes. O uso
do JLayer, MVC e JavaFX resulta em uma estrutura organizada e uma interface amigável
para o usuário.

2. Solução do problema
Durante o projeto, foram tomadas algumas decisões importantes, como a utilização da
arquitetura MVC para separar a lógica de negócio da interface gráfica, o que permitiu
uma melhor organização e manutenção do código.
Além disso, foram identificados padrões de projeto aplicados, como:

• Padrão Observer: Utilizado para notificar a interface gráfica sobre alterações nos
dados das músicas ou playlists.
• Padrão Factory Method: Utilizado na criação de objetos do tipo User, permitindo
a criação de usuários VIP ou comuns de forma flexı́vel.
• Padrão DAO (Data Access Object): Utilizado para separar a camada de acesso
a dados da lógica de negócio, permitindo uma maior flexibilidade na troca de
implementações de acesso a dados.

Essas decisões e padrões de projeto aplicados contribuı́ram para a criação de um


sistema robusto, modular e de fácil manutenção, permitindo a expansão e a melhoria
contı́nua do player de música em Java.
Por fim, foram aplicados princı́pios de encapsulamento, herança e polimorfismo
que garantiram a coesão e a reutilização de código, como mostra a o diagrama de classes
abaixo.
Figura 1. Diagrama de Classes

2.1. Distribuição de atividades

Após realizado a análise e definição das ferramentas e arquitetura que melhor contribuiria
para o desenvolvimento do projeto, houve a distribuição de tarefas entre os integrantes do
grupo.
As atividades desempenhadas por cada integrante foram definidas de acordo com
afinidades de cada um. Além disso, a distribuição de atividades foi definida visando
contribuir para o desenvolvimento ágil e organizado da aplicação. Esta ficou definida
como apresentada a tabela abaixo.
Tabela 1. Tabela de distribuição de tarefas

2.2. Ferramentas e extensões


As ferramentas de desenvolvimento foram definidas seguindo orientações do professor
nas aulas. Elas foram selecionadas devido a facilidade para codificação e desenvolvimento
colaborativo.
• Eclipse IDE: É uma ferramenta de desenvolvimento de código Java, gratuita, que
permite agilidade no desenvolvimento de códigos. Ela foi utilizada principalmente
para codificação das classes do tipo modelo, controler e DAO.
• Git e GitHub: São ferramentas utilizadas para controle, versionamento e hospeda-
gem de código. A ferramenta foi selecionada devido a facilidade na utilização.
• Scene Builder: É uma ferramenta que auxilia no desenvolvimento ágil de classes
FXML. Esta teve sua utilização no desenvolvimento das classe do tipo visão.
Além das ferramentas, foram utilizadas extensões definidas no projeto proposto
como trabalho final da disciplina de Linguagem de Programação II. Elas foram utilizadas
principalmente na construção das classes do tipo visão e na execução e reprodução das
músicas.
• JLayer: A biblioteca JLayer, é uma biblioteca java que auxilia na reprodução
de arquivos do tipo MP3. Ela foi utilizada com a finalidade da reprodução das
músicas.
• JavaFX: É uma biblioteca que disponibiliza de recursos para melhor desenvolvi-
mento de telas. Possui facilidade na códificação devido a possivel utilização do
Scene Builder e apresenta telas com interfaces mais amigáveis.
As ferramentas e extensões foram facilitadoras no desenvolvimento do Media
Player. Pois, além de apresentarem interfaces amigáveis, eram de fácil utilização e con-
tribuiam na codificação da aplicação.

3. Descrição geral
O projeto consiste no desenvolvimento de um player de música em Java, utilizando di-
versos conceitos e componentes para sua implementação. O sistema é baseado em uma
arquitetura MVC (Model-View-Controller) e utiliza a plataforma JavaFX para a criação
da interface gráfica. As classes modelo desse projeto incluem:
• AbstractUser: é uma classe abstrata que define comportamentos comuns a todos
os tipos de usuários.
• User: Herda os atributos de AbstractUser e implementa a função abstrata. Essa
classe representa um usuário do sistema.
• CommonUser: é uma subclasse de User e representa um usuário comum.
• VipUser: é uma subclasse de User e representa um usuário com privilégios VIP.
• Music: representa uma música, contendo informações como nome, caminho e
identificador.
• Directory: representa um diretório de músicas.
• Playlist: representa uma playlist, contendo uma coleção de músicas.
Além das classes modelo, o projeto também possui classes de controle para as
telas FXML, que são responsáveis por gerenciar a interação entre a interface gráfica e a
lógica de negócio.
Para lidar com exceções, foram implementadas classes de exceptions, que tratam
erros especı́ficos que podem ocorrer durante a execução do programa.
As classes DAO (Data Access Object) são responsáveis por realizar operações de
acesso e manipulação de dados relacionados ao sistema. Essas classes incluem:
• FileDAO: classe intermediária para operações de manipulação de arquivos.
• DirectoryDAO: realiza operações relacionadas aos diretórios de músicas, como
criação, remoção e pesquisa.
• DirectoryFileDAO: classe que contém as funções de manipulação do diretório.txt.
• MusicDAO: realiza operações relacionadas às músicas, como obtenção de meta-
dados e manipulação da lista de reprodução.
• MusicFileDAO: classe que contém as funções de manipulação do musica.txt.
• PlaylistDAO: realiza operações relacionadas às playlists, como criação, adição e
remoção de músicas.
• PlaylistFileDAO: classe que contém as funções de manipulação dos arquivos play-
list xxx.txt.
• UserDAO: realiza operações relacionadas aos usuários, como criação de usuário.
• UserFileDAO: classe que contém as funções de manipulação do usuarios.txt.
Essas classes DAO permitem o acesso aos dados necessários para o funcionamento
do player de música, realizando operações de leitura, gravação e exclusão de informações.
As classes do tipo Controler ficaram responsáveis pela interatividade da tela. Ela
possui a execução dos comandos executado a cada interação do usuário com a tela. Entre
as classes do tipo controler temos:
• TelaCadastroController: responsáveis pela interação da tela de cadastro de
usuário. Ela é responsável pela chamada de funções que permitem o cadastro
de uma conta do usuário no player.
• TelaDiretorioController: classe que contém as chamadas dos métodos para
interação na telaDiretorio.
• TelaLoginController: classe responsável por chamar as funções que controla o
acesso de usuário ao play. Ela verifica se o usuário esta cadastrado, se sim, permite
a seção dele. Caso o usuário não esteja no banco ela retorna um aviso para que o
mesmo se cadastre.
• TelaMusicasController: é o controle que contém as chamadas de funções para tela
de manipulação das músicas.
Além das classe acima, foram criadas as classe do tipo visão, onde estão as telas.
O projeto foi dividido em 5 telas, essas são:
• telaLogin: tela inicial da aplicação. Tela inicial, como mostra a figura 3.

Figura 2. Tela de login

• telaCadastro: em caso de um novo usuário esta acessando a aplicação pela pri-


meira vez, ele deve criar uma conta para acesso ao play. Apresentada na figura 3.

Figura 3. Tela de cadastro

• telaPlayer: tela onde encontra-se o acesso as músicas, diretórios e playlists dis-


ponı́veis para cada usuário, seja ele do tipo comum ou VIP. Exemplo de tela na
figura 4.

Figura 4. Tela de player


• telaMusicas: tela que o usuário pode inserir ou remover uma música a aplicação.
Como mostra a figura 4

Figura 5. Tela de musicas

• telaDiretório: semelhante a tela de música, ela é responsável por chamar funções


de criar e remover um diretório a aplicação. Como mostra a figura 5

Figura 6. Tela de diretórios

No geral, o projeto busca oferecer uma solução completa para reprodução de


músicas em Java, seguindo boas práticas de arquitetura e organização de código.

4. Conclusão
Em resumo, o projeto do player de música em Java mostrou a aplicação prática de vários
conceitos e componentes importantes no desenvolvimento de um sistema complexo. A
utilização da arquitetura MVC, JavaFX, classes de exceção e DAOs contribuiu para a
organização, eficiência e robustez do sistema, oferecendo uma experiência satisfatória
aos usuários. Com base nesse projeto, é possı́vel explorar ainda mais recursos e aprimo-
rar a funcionalidade do player de música, atendendo às necessidades e expectativas dos
usuários de forma cada vez mais completa.

5. Referências
Flavio Vieira - Progamação Noob. COMO REPRODUZIR ARQUIVOS MP3 COM LIN-
GUAGEM JAVA PARTE 1 (Programação Noob). [Vı́deo]. YouTube, 2021. Disponı́vel
em: https://youtu.be/kC9d K5hQP o.Acessoem : 03jun.2023.
Flavio Vieira - Progamação Noob. COMO REPRODUZIR ARQUIVOS MP3
COM LINGUAGEM JAVA PARTE 2 (Programação Noob). [Vı́deo]. YouTube, 2021.
Disponı́vel em: https://youtu.be/cu1mcOjJtdg. Acesso em: 03 jun. 2023.
SOCIEDADE BRASILEIRA DE COMPUTAÇÃO (SBC). Modelos
para publicação de artigos e capı́tulos de livros. [Online]. Disponı́vel em:
https://www.sbc.org.br/documentos-da-sbc/summary/169-templates-para-artigos-e-
capitulos-de-livros/878-modelosparapublicaodeartigos. Acesso em: 15 jun. 2023.
BOSON TREINAMENTOS. Obter informações sobre arqui-
vos e diretórios com Java e classes NIO. [Online]. Disponı́vel em:
http://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-
diretorios-com-java-e-classes-nio/. Acesso em: 13 jun. 2023.
MEDEIROS, A. Escrever e Ler arquivos com Java. [Online]. Disponı́vel em:
https://www.lncc.br/ rogerio/poo/08-Arquivos-Java/Escrever
MBALLEM. Manipulando arquivo TXT com Java. [Online]. Disponı́vel em:
https://www.mballem.com/post/manipulando-arquivo-txt-com-java/. Acesso em: 05 jun.
2023.

You might also like