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 relativas ao projecto e à sua avaliação são as seguintes:

  • 2015/10/09 (publicação do enunciado)
  • 2015/10/23 (até às 12:00) (entrega UML)
  • 2015/11/16 (até às 23:59) (entrega intermédia)
  • 2015/12/01 (até às 23:59) (entrega final)
  • 2015/12/02 - 2015/12/15 (teste prático)

Enunciado

Enunciado: Nova versão do enunciado (18/10/2015) document-18102015.pdf

Esclarecimentos sobre as alterações realizadas a 18/10:

  • Foi adicionado um parágrafo em cada secção que descreve a acção a realizar por um comando, indicando o nome da subclasse Command parcialmente concretizada já disponibilizada em template.jar.
  • Secção 2.2.2: Tornou-se mais claro o a situação de secção sem título:
    • É apresentada a lista de títulos de todas as subsecções da secção actual (recursivamente): cada título entre chavetas é precedido pelo seu identificador único entre parênteses rectos (ou só os parânteses, caso o identificador não esteja definido). Se algum título for vazio, apresentam-se apenas as chavetas.
  • Secção 2.2.4:
    • Por forma a ficar mais claro alterou-se o texto "Permite seleccionar a secção ..." para "Permite seleccionar a subsecção ..."
  • Secção 2.2.6 :
    • A cadeia de caracteres para pedir o identificador único a atribuir passa a ser representada por requestUniqueId em vez de requestSectionId.
    • A mensagem de aviso a utilizar neste caso deve ser a retornada por sectionNameChanged em vez de nameChanged
  • Secção 2.2.9:
    • A cadeia de caracteres para pedir o identificador único a atribuir passa a ser representada por requestUniqueId em vez de requestParagraphId.
    • A mensagem de aviso a utilizar neste caso deve ser a retornada por paragraphNameChanged em vez de nameChanged

Diagrama de Classes

O diagrama de classes UML das entidades do domínio proposto pelo corpo docente é o seguinte: EditorClassDiagram.png

Atenção:

  • Esta não é a única solução correcta para o projecto. Existem outras soluções igualmente válidas. Os alunos não serão penalizados se seguirem outra solução, desde que seja uma solução válida.
  • Esta solução não tem em conta a secção 4 do enunciado: Considerações sobre Flexibilidade e Eficiência. Para concretizar este ponto vai ser necessário realizar algumas alterações ao desenho da solução por forma a atingir-se a flexibilidade desejada.Na segunda parte da matéria da disciplina, Padrões de Desenho, vai ser ensinado que alterações é que é necessário aplicar para se obter a flexibilidade pretendida.

Submissão e Avaliação do Projecto

Cada entrega do projecto é submetida electronicamente via Fénix no projecto disponibilizado no Fénix.A submissão electrónica apenas deve 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.


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 o código depois não compila e nunhum teste é executado.


Os projectos são avaliados de forma manual e automática. A secção Avaliação Automática descreve o processo de avaliação automático aplicado e disponibiliza os vários conjuntos de testes aplicados durante a submissão e avaliação da entrega intermédia e final do projecto.. Na avaliação manual podem-se aplicar as seguintes penalizações.

Entrega Intermédia

  • Descrição do trabalho a realizar para a entrega intermédia do projecto: Entrega Intermédia
  • Classe para realizar o parsing do ficheiro de importParser.java

Entrega Final

  • Descrição do trabalho a realizar e dos critérios a utilizar para a entrega final: Entrega Final

Teste Prático


Teste Prático (TP) consiste num conjunto de questões (correspondentes a pequenas alterações/extensões ao enunciado) a resolver com base na concretização do projecto submetida para a avaliação correspondente à entrega final. O teste prático decorre nos em Desembro de manhã de acordo com um escalonamento indicado em Escalonamento do Teste Prático O teste prático é feito preferencialmente no computador do aluno. Os alunos que necessitem de um computador para realizar o teste prático devem inscrever-se no agrupamento "Teste Prático - Sem computador". A inscrição deve ser feita até às 18:00 horas de sábado, dia 5 de Dezembro.

Todos os alunos que entregaram projecto podem à partida realizar o teste prático. No entanto,  isto não garante qualquer hipótese a priori de aprovação à disciplina. A condição de a nota relativa ao projecto (o que inclui o teste prático) ter que ser maior ou igual a 9.5 continua a ser necessária.

Este teste é individual e avalia o conhecimento do aluno relativamente ao projecto entregue, assim como a sua capacidade de realizar alterações ao código do projecto. 

A não realização do Teste Prático conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina.

Os alunos já devem trazer instalado no seu computador a última versão submetida do projecto, a biblioteca po-ulib.jar e o material de suporte edt-support.jar e os seguintes ficheiros import import.jar.

Teste Prático Tipo


O teste prático tem a duração de uma hora, tem quatro perguntas e tem a seguinte estrutura:

  1. A primeira consiste em alterar um comando já realizado;
  2. A segunda corresponde a criar uma nova opção relativamente simples;
  3. Na terceira pergunta será também necessário concretizar uma nova opção, mas agora com uma complexidade maior.
  4. A quarta questão corresponde simplesmente aos alunos mostrarem que sabem compilar e executar proramas java a partir da linha de comandos utilizando os comandos javac e javaEsta pergunta é eliminatória.

Enunciado tipo para o teste prático :

  1. Altere o comando “Adicionar secção” para só permitir a inserção da secção caso o número de subsecções da secção activa seja menor ou igual a 3. Caso seja superior, então deve apresentar uma mensagem de erro.    
  2. Acrescente uma nova opção (9) ao menu principal que pede um identificador único ao utilizador e remove esse identificador único do documento. Ou seja, o elemento de texto que tinha esse identificador deixa de ter um identificador único associado.    
  3. Acrescente uma nova opção ao menu principal que apresenta dois números ao utilizador: o tamanho dos nomes e dos emails dos autores do documento. De seguida, caso o tamanho dos nomes seja inferior ao tamanho dos emails, este comando deve remover o primeiro autor do documento    

Material Adicional

Material de Apoio

Compilar e Executar Projecto

Método de Avaliação