Programação com Objectos/Pautas 2024-2025/Pauta do Projecto: Entrega Intermédia

From Wiki**3

< Programação com Objectos‎ | Pautas 2024-2025
[Expand] AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Programação com Objectos):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2024/09/27 12:00 (inicial); 2024/10/11 12:00 (intercalar); 2024/10/25 12:00 (final); 2024/10/25 (early bird) 2024/10/28 (normal) (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório.
  • Apenas se consideram para avaliação os projectos existentes no repositório oficial. Apenas se considera para avaliação o ramo 'master'.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório ou de outros materiais, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação.
[Expand] Material de Uso Obrigatório
As bibliotecas po-uilib e o conteúdo inicial do repositório GIT são de uso obrigatório:
  • po-uilib (classes de base) po-uilib-202408310000.tar.bz2 (não pode ser alterada) - javadoc
  • hva-core (classes do "core") (via GIT) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • hva-app (classes de interacção) (via GIT) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório GIT
Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

PAUTA FECHADA

A entrega intermédia é obrigatória e vale 6 valores em 20.

Projectos que não estejam nas condições indicadas nos critérios de avaliação não são considerados, conduzindo a reprovação. Não existem excepções.

Os alunos devem compreender/verificar/corrigir os problemas reportados.

Quaisquer dúvidas, relativas a esta informação, devem ser enviadas ao responsável pela disciplina.

Pauta

Aqui: https://bit.ly/po24-pautas (Fénix)

Prazo de Revisão

Esta pauta está em revisão até à data da entrega final do projecto.

Legenda

Existem factores aditivos positivos (colunas a verde) e negativos (colunas laranja).

A coluna "Auto" indica a percentagem de teste automáticos certos e vale 2.5 valores.

NA na coluna "Nota" indica "não avaliado" (grupo excluído da avaliação da disciplina em época normal no lectivo actual).

[Expand] Explicação dos testes automáticos

Ver avaliação automática no GitLab (RNL): https://gitlab.rnl.tecnico.ulisboa.pt/leic-a-po24/eval/po24

São consideradas irrelevantes diferenças que consistam apenas em quantidade de espaços brancos (não ter espaços é considerada uma diferença).

[Expand] Explicação das anotações

Atributos não públicos:

  • public - atributos públicos
  • protected - atributos protected (potencialmente desnecessária a qualificação)
  • package - atributos sem qualificação de acesso
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Atributos e métodos não “static”

  • (const) - contantes
  • (comparator) - constantes (comparador)
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Serialização

  • ois - problemas na utilização de ObjectInputStream
  • oos - problemas na utilização de ObjectOutputStream
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Utilização de estruturas de dados correctas

  • lists - utilização de listas onde se justifica a utilização de mapas
  • generics - falta de parâmetro em tipo paramétrico
  • Object - utilização directa da classe Object (sem ser para satisfazer um requisito de Java)
  • Exception - utilização directa da classe Exception (processamento indiscriminado de excepções)
  • instanceof - uso de instanceof (não é justificável numa solução de boa qualidade) (idem para getClass)
  • System.* - problemas na utilização de canais de I/O
  • app attrs/fields - definição de atributos em classes da app: deveriam ser variáveis locais a métodos ou simplesmente não existir
  • ArrayList/TreeMap/HashSet/etc. - uso de tipos concretos em declarações de atributos (usar List/Map/Set/etc.)
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Separação app/core

  • serialization - uso de primitivas de serialização na app
  • options - não uso de processo de escolha de opções
  • reader - criação do leitor do ficheiro indicado pela propriedade "import" na app
  • core exposed - exposição desnecessária de estruturas/abstracções do core
  • except - não tratamento de excepções na app
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Qualidade do projecto (apreciação global)

  • instanceof - uso de instanceof (não é justificável numa solução de boa qualidade) (idem para getClass)
  • Object - utilização directa da classe Object (sem ser para satisfazer um requisito de Java)
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Javadoc

  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Seguir regras codificação

  • class - erros de nomenclatura (maus nomes para classes)
  • vars - erros de nomenclatura (maus nomes para variáveis)
  • funcs - erros de nomenclatura (maus nomes para funções)
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Lixo no Repositório

  • [outras anotações] - consultar professor responsável (horário de dúvidas)