SIMULADO - Domain Driven Design aplicada em 24/08/2023.
![]() |
Domain Driven Design |
---|---|
ALUNO: | TURMA: 1TDSA |
PROFESSOR: Benefrancis do Nascimento | 24/08/2023 |
SIMULADO | **** |
Estamos expandindo o negócio e a meta para este semestre é desenvolver um aplicativo de músicas online.
Nossa equipe de analistas desenvolveu o Diagrama de Classes abaixo, e a sua missão é implementar código capaz de separar as responsabilidades das classes entre as camadas objetivando melhor legibilidade e manutenibilidade do código do programa.
Na sprint atual, você foi incumbido de fazer:
-
As classes responsáveis pelas regras de negócio da aplicação no pacote service.
-
A criação das classes responsáveis pela persistencia e recuperação dos dados no repositório
-
Desenvolver métodos capazes de persistir todos os objetos em List ou outra Collection;
-
A implementação de todos os métodos previstos nas interfaces Repository e Services:
Você deverá:
Fazer o fork do projeto do github.:
https://github.com/Benefrancis/benezinho-music
Caso o github esteja indisponível, você deverá pegar o projeto no diretório compartilhado.
Alterar o arquivo contido em documentacao/equipe.txt para incluir os RMs e nomes e turma da dupla que fará esta atividade.
OBS: Será com base nos nomes contidos neste aquivo que eu irei atribuir a nota.
-
(1 Pontos) implementar corretamente a classe ArtistaService.
Lembre-se que:
- Existe a necessidade de se impedir que o nome do artista seja nulo ou vazio. Crie esta regra de negócio.
- É necessário implementar corretamente a interface Service;
-
(1 Ponto) implementar corretamente a classe EstiloService.
Lembre-se que:
- Existe a necessidade de se impedir que o nome do estilo seja nulo ou vazio. Crie esta regra de negócio.
- É necessário implementar corretamente a interface Service;
-
(1 Ponto) implementar corretamente a classe MusicaService.
Lembre-se que:
- Existe a necessidade de se impedir que o nome da musica seja nulo ou vazio. Crie esta regra de negócio.
- É necessário implementar corretamente a interface Service;
-
(1,5 Pontos) implementar corretamente a classe MusicaRepository .
Lembre-se que:
- É necessário implementar corretamente a interface Repository;
-
(1,5 Pontos) implementar corretamente a classe EstiloRepository .
Lembre-se que:
- É necessário implementar corretamente a interface Repository;
-
(1,5 Pontos) implementar corretamente a classe ArtistaRepository .
Lembre-se que:
- É necessário implementar corretamente a interface Repository;
-
(2,5 Pontos) implementar corretamente a classe Main.
É necessário que a classe Main tenha acesso apenas as classes de serviço, Somente as classes de serviço devem chamar os métodos das classes de Repository.
Respeitando as regras acima, implemente:
- Método capaz de Intanciar e salvar músicas. (Os dados devem ser informados pelo usuário - utilize JoptionPane)
- Método capaz de consultar músicas pelo nome; (Os dados devem ser informados pelo usuário - utilize JoptionPane)
- Método capaz de consultar músicas pelo Id; (Os dados devem ser informados pelo usuário - utilize JoptionPane)
A entrega deverá ser feita pelo Teams, porém não se esqueça de fazer o commit e push do projeto no github.
Nos próximos dias, a correção da prova será disponibilizada no github do professor (branch correcao):
Para acessar digite no prompt:
git clone https://github.com/Benefrancis/benezinho-music && cd benezinho-music && git checkout correcao
A avaliação é em dupla.
Boa avaliação.