Difference between revisions of "Programação com Objectos/Pautas 2019-2020/Pauta do Projecto: Entrega Intermédia"

From Wiki**3

< Programação com Objectos‎ | Pautas 2019-2020
(Created page with "{{PRJPOAvisosEN20192020}} {{PRJPOMandatory20192020}} {{TOCright}} A entrega intermédia vale 5 valores em 20. Esta entrega não é obrigatória (não entregar significa apena...")
 
(Prazo de Revisão)
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
A entrega intermédia vale 5 valores em 20. Esta entrega não é obrigatória (não entregar significa apenas não ter estes 5 valores).
 
A entrega intermédia vale 5 valores em 20. Esta entrega não é obrigatória (não entregar significa apenas não ter estes 5 valores).
  
'''<font color="brown">Os alunos devem compreender/verificar/corrigir os problemas reportados.</font>'''
+
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.
 
Quaisquer dúvidas ou sugestões, relativas a esta informação, devem ser enviadas ao responsável pela disciplina.
Line 27: Line 27:
 
|-
 
|-
 
! style="padding-left:10px; padding-right:10px; font-weight: normal; border-style: solid; border-width: 1px; border-color: #bbbbaa; " |  
 
! style="padding-left:10px; padding-right:10px; font-weight: normal; border-style: solid; border-width: 1px; border-color: #bbbbaa; " |  
Os resultados dos testes automáticos estão disponíveis em https://goo.gl/UuiVAQ
+
Os resultados dos testes automáticos estão disponíveis em https://bit.ly/2KkZ5aK
  
 
* São consideradas irrelevantes diferenças que consistam apenas em quantidade de espaços brancos (não ter espaços é considerada uma diferença).
 
* São consideradas irrelevantes diferenças que consistam apenas em quantidade de espaços brancos (não ter espaços é considerada uma diferença).
Line 38: Line 38:
 
! style="padding-left:10px; padding-right:10px; font-weight: normal; border-style: solid; border-width: 1px; border-color: #bbbbaa; " |  
 
! style="padding-left:10px; padding-right:10px; font-weight: normal; border-style: solid; border-width: 1px; border-color: #bbbbaa; " |  
 
'''Atributos não públicos:'''
 
'''Atributos não públicos:'''
* [nomes] - atributos públicos
+
* public - atributos públicos
 
* protected - atributos protected (potencialmente desnecessariamente; potencialmente descontados na entrega final)
 
* protected - atributos protected (potencialmente desnecessariamente; potencialmente descontados na entrega final)
* (package) - atributos sem qualificação de acesso (potencialmente descontados na entrega final)
+
* (package) - atributos sem qualificação de acesso
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
'''Atributos e métodos não “static”'''
 
'''Atributos e métodos não “static”'''
* CAPACITY - a capacidade das disciplinas não tem de ser constante (nem global)
+
* (const) - contantes
 +
* creation - métodos de criação de objectos
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
'''Utilização correcta da classe SchoolManager'''
+
'''Utilização correcta da classe LibraryManager'''
 
* instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
 
* instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
* serialization - a serialização da escola está noutro local (ou em falta)
+
* serialization - a serialização da mediateca está noutro local (ou em falta)
* bad encapsulation - a classe SchoolManager está a realizar acções de outra classe
+
* bad encapsulation - a classe LibraryManager está a realizar acções de outra classe
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
'''Serialização'''
 
'''Serialização'''
* ois - falta criação de ObjectInputStream
+
* ois - problemas na utilização de ObjectInputStream
* oos - falta criação de ObjectOutputStream
+
* oos - problemas na utilização de ObjectOutputStream
* collator wrapper - má solução de serialização
 
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
'''Utilização de estruturas de dados correctas'''
 
'''Utilização de estruturas de dados correctas'''
Line 59: Line 59:
 
* Object - utilização directa da classe Object (sem ser para satisfazer um requisito de Java)
 
* Object - utilização directa da classe Object (sem ser para satisfazer um requisito de Java)
 
* instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
 
* instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
* persons - definiciência na modelação da hierarquia das pessoas (ou falta dela)
+
* System.* - problemas na utilização de canais de I/O
* person type - uso indevido variável para distinguir tipos de pessoa (menos mau, mas equivalente a instanceof)
 
* tmp lists - uso deficiente de atributos de objectos para guardar informação temporária
 
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
* [outras anotações] - consultar professor responsável (horário de dúvidas)
 
'''Separação textui/core'''
 
'''Separação textui/core'''

Latest revision as of 15:51, 19 December 2019

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: 2019/10/18 12:00 (inicial); 2019/11/18 12:00 (intercalar); 2019/12/09 12:00 (final); 2019/12/16-2019/12/20 (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-uuilib e o conteúdo inicial do CVS são de uso obrigatório:
  • po-uuilib (classes de base) po-uuilib-201708311009.tar.bz2 (não pode ser alterada) - javadoc
  • m19-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • m19-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 vale 5 valores em 20. Esta entrega não é obrigatória (não entregar significa apenas não ter estes 5 valores).

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

As colunas "Auto" indicam a percentagem de teste automáticos certos e valem, em conjunto, 2.5 valores.

NA na coluna "Nota" indica "não avaliado".

Explicação dos testes automáticos

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

  • São consideradas irrelevantes diferenças que consistam apenas em quantidade de espaços brancos (não ter espaços é considerada uma diferença).
  • O uso da função fileNotFound com e sem argumentos é considerado igual.
Explicação das anotações

Atributos não públicos:

  • public - atributos públicos
  • protected - atributos protected (potencialmente desnecessariamente; potencialmente descontados na entrega final)
  • (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
  • creation - métodos de criação de objectos
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Utilização correcta da classe LibraryManager

  • instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
  • serialization - a serialização da mediateca está noutro local (ou em falta)
  • bad encapsulation - a classe LibraryManager 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)
  • instanceof - uso de instanceof (não é justificável numa solução de boa qualidade)
  • System.* - problemas na utilização de canais de I/O
  • [outras anotações] - consultar professor responsável (horário de dúvidas)

Separação textui/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/2019-2020/1-semestre/pautas-da-disciplina