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

From Wiki**3

< Programação com Objectos‎ | Pautas 2024-2025
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.
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).

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).

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)