Trabalho feito com base nas templates oferecidas no repositório AEDsIII, visando a criação de um sistema com a implementação de um CRUD das entidades Série e Episódio, com controle preciso do armazenamento em arquivos.
O programa permite a criação das entidades Série e Episódio (as quais herdam da interface Registro) , que contêm os seguintes atributos:
Série:
- ID
- Nome
- Sinopse
- Ano de lançamento
- Streaming
Episódio:
- ID
- ID Serie
- Nome
- Número
- Temporada
- Data de lançamento
- Duração
As entidades criadas são armazenadas em forma de arquivo (um para cada tipo), além de cada arquivo ser acompanhado por arquivos de índice, os quais facilitam a busca, usando a estrutura provida em HashExtensivel. Além disso, há a implementação da conexão entre as entidades (pela dependência de Episódio de Série por conter uma chave estrangeira de tal), que é feita pela estrutura ArvoreBMais.
Nosso trabalho foi de converter e adaptar as template mencionadas anteriormente, considerando as diferentes necessidades das entidades com as quais trabalhamos, como a entidade Episódio tendo referência à classe Série. Tivemos dificuldade especialmente no que diz respeito a tratar as estruturas ArvoreBMais e HashExtensivel, a considerar o quão detalhado os seus códigos são, havendo dificuldades especialmente no que diz respeito ao método de deletar.
- "As operações de inclusão, busca, alteração e exclusão de séries estão implementadas e funcionando corretamente?"
- "As operações de inclusão, busca, alteração e exclusão de episódios, por série, estão implementadas e funcionando corretamente?"
- "Essas operações usam a classe CRUD genérica para a construção do arquivo e as classes Tabela Hash Extensível e Árvore B+ como índices diretos e indiretos?"
- "O atributo de ID de série, como chave estrangeira, foi criado na classe de episódios?"
- "Há uma árvore B+ que registre o relacionamento 1:N entre episódios e séries?"
- "Há uma visualização das séries que mostre os episódios por temporada?"
- "A remoção de séries checa se há algum episódio vinculado a ela?"
- "A inclusão da série em um episódio se limita às séries existentes?"
- "O trabalho está funcionando corretamente?"
- "O trabalho está completo?"
- "O trabalho é original e não a cópia de um trabalho de outro grupo?"
Formato base do arquivo para salvar informações das entidades, contendo os métodos de CRUD, e cabeçalho que registra último ID e último espaço com registro deletado.
Estrutura e métodos de arquivo adaptados à entidade Episódio, incluindo métodos para recuperar e deletar grupo de episódios com base no ID de série.
Estrutura e métodos de arquivo adaptados à entidade Série.
Interface base para composição das entidades, contendo os métodos que são necessários de forma universal.
Chave usada para organização da entidade Episodio na estrutura ArvoreBMais.
Chave usada como indice direto na estrutura HashExtensivel.
Chave usada como indice indireto pela entidade Serie na estrutura HashExtensivel.
Estrutura básica da entidade Episodio, contendo os atributos e seus respectivos gets e sets.
Estrutura básica da entidade Serie, contendo os atributos e seus respectivos gets e sets.
Interface com os necessário métodos à estrutura ArvoreBMais.
Estrutura ArvoreBMais, com métodos de inserção de novo elemento (que possui os necessários meios para aumentar o tamanho atual da estrutura quando o número de elementos ultrapassar o máximo atual), leitura e remoção.
Interface com os necessário métodos à estrutura HashExtensivel.
Estrutura HashExtensivel, com métodos de leitura, inserção, atualização e remoção. Divide-se em Diretório e Cesto, em acordo com aquilo a ser salvo.
Acesso e chamada via interface às operações CRUD da entidade Episodio.
Acesso e chamada via interface às operações CRUD da entidade Serie.
Acesso via interface aos menus das respectivas classes.