Compromisso de Honra
A entrega de qualquer trabalho pressupõe o compromisso de honra que o trabalho correspondente foi realizado pelos alunos referenciados no grupo. A quebra deste compromisso, i.e., a tentativa de um grupo se apropriar de trabalho realizado por colegas, tem como consequência a reprovação de todos os alunos envolvidos (incluindo os que possibilitaram a ocorrência) neste ano lectivo, sem prejuízo de acções disciplinares previstas pelo IST.
Ver também:
Datas Importantes
As datas e trabalho a realizar relativos ao projecto são os seguintes:
- Modelação do domínio - 27/09/2024 (até às 23:59)
- Entrega intermédia - 11/10/2024 (até às 23:59)
- Entrega final - 25/10/2024 (até às 23:59)
- Teste prático - 28/10/2024 a 30/10/2024 (data precisa a definir mais tarde)
Enunciado
Enunciado: enunciado.pdf (23/10)
- Esclarecimentos:
- A chave única de Espécie é uma cadeia de caracteres arbitrária definida na altura da criação
- A cadeia de caracteres a introduzir no comando "Plantar uma árvore" para indicar o tipo de árvore é CADUCA ou PERENE
- A opção 4.4.6 - Visualizar todas as árvores de um habitat tem como funcionalidade apresentar as árvores do habitat indicado pelo utilizador, utilizando o formato de árvore descrito anteriormente.
- Clarificação da funcionalidade "Consultar actos médicos de um veterinário": Se o identificador não existir ou não for de um veterinário, deve ser lançada a excepção UnknownVeterinarianKeyException.
Material de Apoio
Framework de interacção com o utilizador
- compilado para a versão 17 ou superior do Java: po-uilib.jar(versão antiga), po-uilib.jar (versão 10 de Outubro)
- compilado para a versão 21 ou superior do Java po-uilib.jar (versão 10 de Outubro)
Material de suporte (arquivo com o esqueleto das classes comandos e menus utilizados no projecto, algumas classes completas que definem as mensagens e constantes a utilizar na interacção com o utilizador, as excepções a criar na camada de serviços, algumas das excepções a utilizar na camada do domínio, a class que define o ponto de entrada da aplicação, hva.app.App, e algumas classe parcialmente concretizadas da camada de domínio, incluindo a classe hva.core.HotelManager que representa a interface da camada de domínio:
- Arquivo com as várias classes do esqueleto da aplicação: hva-skeleton.tgz
- Os comandos que criam menus estão completos. Para os restantes comandos é necessário concretizar a funcionalidade associada a cada um, o que inclui especificar os atributos necessários para a interaccção com o utilizador e a definição do corpo do método execute(). Este método deve concretizar a funcionalidade do comando;
- A classe respossável por iniciar a aplicação hva.app.App está completa;
- As várias classes que definem excepções a utilizar na camada de interacção com o utilizador estão completas. São também fornecidas algumas excepções para a camada de lógica de negócio. Neste caso podem ser criadas novas excepções para representar erros que aconteçam nesta camada;
- As duas classes do domínio fornecidas apenas contêm o esqueleto de alguns métodos;
Como compilar e executar o projecto.
Esqueleto da classe que processa o ficheiro de import: Parser.java
Diagrama de classes UML parcial do projecto (proposto pelo corpo docente): ZooHotel.pdf
- Relembra-se que esta solução é parcial, não inclui a grande maioria dos métodos que as várias classes devem oferecer. Existem ainda alguns aspectos a considerar para a entrega final do projecto que também não são considerados.
Submissão e Avaliação do Projecto
O trabalho a realizar em cada entrega está descrito nas respectivas sub-secções. O cálculo da nota da componente de projecto está descrito na secção Método de avaliação.As três entregas do projecto são entregues electronicamente através do Fénix, utilizando as avaliações Entrega UML, Entrega Intermédia ou Entrega Final. Na primeira deve ser submetida um ficheiro com o diagrama de classes do domínio da aplicação . As duas restantes entregas apenas devem conter os ficheiros Java desenvolvidos para o projecto, guardados na estrutura de directórios correcta. Deve submeter um ficheiro jar com o código fonte todo desenvolvido.
Os projectos são avaliados de forma manual e automática. A avaliação automática corresponde a executar o projecto submetido (após compilação) e realizar um conjunto de testes que irão avaliar se o código submetido realiza os requisitos pedidos de forma correcta. A avaliação manual verifica a qualidade do código submetido, verificando se o paradigma de programação com objectos foi bem aplicado durante o desenvolvimento da projecto.. Na avaliação manual podem-se aplicar as seguintes penalizações.
A avaliação automática do projecto está descrita na secção Avaliação Automática
Atenção: O ficheiro jar a submeter deve ser criado a partir da linha de comandos e não deve criá-lo via menu do Linux dado que esta opção não cria o ficheiro jar de forma correcta pelo que a componente de avaliação automática do projecto vai falhar (o código não compila e portanto nenhum teste é executado) e o projecto terá 0 valores nesta componente da avaliação. Estando no directório que contém o directório raiz do projecto (hva), deve-se dar o seguinte comando
- jar cvf proj.jar hva
Teste Prático
A secção Teste Prático contém toda a informação sobre o teste prático.