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

From Wiki**3

< Programação com Objectos‎ | Pautas 2021-2022
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: 2021/10/08 12:00 (inicial); 2021/10/29 12:00 (intercalar); 2021/11/12 12:00 (final); 2021/11/12 (early bird) 2021/11/15 (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 'main'.
  • 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 CVS são de uso obrigatório:
  • po-uilib (classes de base) po-uilib-202110212142.tar.bz2 (não pode ser alterada) - javadoc
  • ggc-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • ggc-app (classes de interacção) (via CVS) (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 CVS
Apenas se consideram para avaliação os projectos existentes no repositório CVS 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.

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

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

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

Prazo de Revisão

PAUTA FECHADA

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

Os resultados dos testes automáticos estão disponíveis em https://bit.ly/po21-ei

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) - contantes (comparador)
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Utilização correcta da classe WarehouseManager

  • instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
  • serialization - a serialização está no local errado (ou em falta)
  • bad encapsulation - a classe WarehouseManager está a realizar acções de outra classe
  • [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
  • 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)
  • 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
  • [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
  • 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
  • [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)
  • 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)

Pauta

Aqui: https://fenix.tecnico.ulisboa.pt/disciplinas/PO65179577/2020-2021/1-semestre/pautas-da-disciplina