Difference between revisions of "Programação com Objectos/Projecto de Programação com Objectos/Repositório CVS"

From Wiki**3

< Programação com Objectos‎ | Projecto de Programação com Objectos
(Modo de Acesso)
Line 1: Line 1:
{{PRJPOAvisosEN20172018}}
+
{{PRJPOAvisosEN20182019}}
 
<!--{{PRJPOAvisosEE20172018}}-->
 
<!--{{PRJPOAvisosEE20172018}}-->
 
{{PRJPOMandatory20172018}}
 
{{PRJPOMandatory20172018}}
 
{{TOCright}}
 
{{TOCright}}
<!--'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''-->
+
'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''
  
 
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
 
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
Line 13: Line 13:
 
Os repositórios estão disponíveis no AFS em:
 
Os repositórios estão disponíveis no AFS em:
  
* '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po17/cvs</nowiki>'''
+
* '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po18/cvs</nowiki>'''
  
 
O conteúdo do repositório pode ser manipulado com o comando '''cvs''' ou com qualquer outro cliente compatível (e.g. ''[http://www.eclipse.org/ eclipse]'').
 
O conteúdo do repositório pode ser manipulado com o comando '''cvs''' ou com qualquer outro cliente compatível (e.g. ''[http://www.eclipse.org/ eclipse]'').
Line 27: Line 27:
 
Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são:
 
Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são:
  
* '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po17/cvs/###</nowiki>''' (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
+
* '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po18/cvs/###</nowiki>''' (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
* '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-po/po17/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
+
* '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-po/po18/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
  
 
{{Aviso|Alunos que ainda não visitaram o [https://ciist.ist.utl.pt/servicos/self_service/ self-service do CIIST (DSI)], devem fazê-lo, para activação dos serviços relevantes (AFS e Shell, pelo menos). Sem isso, não conseguirão desenvolver ou entregar o projecto, reprovando à disciplina.}}
 
{{Aviso|Alunos que ainda não visitaram o [https://ciist.ist.utl.pt/servicos/self_service/ self-service do CIIST (DSI)], devem fazê-lo, para activação dos serviços relevantes (AFS e Shell, pelo menos). Sem isso, não conseguirão desenvolver ou entregar o projecto, reprovando à disciplina.}}
Line 36: Line 36:
 
Cada projecto é constituído por dois módulos: <!-- (por exemplo, no eclipse, são projectos independentes):-->
 
Cada projecto é constituído por dois módulos: <!-- (por exemplo, no eclipse, são projectos independentes):-->
  
* '''project/mmt-core'''
+
* '''project/sth-core'''
* '''project/mmt-app'''
+
* '''project/sth-app'''
  
 
Estes módulos podem ser obtidos em conjunto fazendo checkout de '''project''' (ver abaixo). <!-- (não recomendado, pois podem aparecer interferências indesejáveis -- configurações de eclipse, por exemplo).-->
 
Estes módulos podem ser obtidos em conjunto fazendo checkout de '''project''' (ver abaixo). <!-- (não recomendado, pois podem aparecer interferências indesejáveis -- configurações de eclipse, por exemplo).-->
Line 43: Line 43:
 
O repositório já tem a seguinte estrutura:
 
O repositório já tem a seguinte estrutura:
 
<!--* '''Makefile''' (makefile "principal" -- repete as acções sobre as makefiles secundárias)-->
 
<!--* '''Makefile''' (makefile "principal" -- repete as acções sobre as makefiles secundárias)-->
* '''mmt-core''' (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador)
+
* '''sth-core''' (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador)
* '''mmt-core/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
+
* '''sth-core/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
* '''mmt-core/src''' (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária)
+
* '''sth-core/src''' (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária)
* '''mmt-app''' (directoria correspondente à aplicação; contém a interface com o utilizador)
+
* '''sth-app''' (directoria correspondente à aplicação; contém a interface com o utilizador)
* '''mmt-app/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
+
* '''sth-app/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
* '''mmt-app/src''' (directoria onde já reside o código da interface textual, tal como na biblioteca equivalente da aplicação bancária)
+
* '''sth-app/src''' (directoria onde já reside o código da interface textual, tal como na biblioteca equivalente da aplicação bancária)
  
Esta estrutura já contém algumas classes parcialmente implementadas ('''mmt-core''') (que devem ser adaptadas) e outras completamente implementadas ('''mmt-app''') (que não podem ser alteradas). <!--Estas implementações devem ser adaptadas ao código particular de cada projecto.-->
+
Esta estrutura já contém algumas classes parcialmente implementadas ('''sth-core''') (que devem ser adaptadas) e outras completamente implementadas ('''sth-app''') (que não podem ser alteradas). <!--Estas implementações devem ser adaptadas ao código particular de cada projecto.-->
  
 
{{Aviso|A estrutura do repositório não pode ser alterada.}}
 
{{Aviso|A estrutura do repositório não pode ser alterada.}}
  
{{Aviso|Os nomes das classes fornecidas em '''mmt-core''' não podem ser alterados.}}
+
{{Aviso|Os nomes das classes fornecidas em '''sth-core''' não podem ser alterados.}}
  
{{Aviso|O código fornecido em '''mmt-app''' tem de ser completado, mas os nomes das classes não podem ser alterados.}}
+
{{Aviso|O código fornecido em '''sth-app''' tem de ser completado, mas os nomes das classes não podem ser alterados.}}
  
 
== Cuidados a ter na Utilização do Repositório CVS ==
 
== Cuidados a ter na Utilização do Repositório CVS ==
Line 64: Line 64:
 
* '''cvs init''' (não é necessário: o repositório já existe)
 
* '''cvs init''' (não é necessário: o repositório já existe)
 
* '''cvs import''' (não é necessário: o projecto já existe)
 
* '''cvs import''' (não é necessário: o projecto já existe)
* '''cd /afs/ist.utl.pt/groups/leic-po/po17/cvs''' (ou qualquer outra manipulação directa dos ficheiros do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")
+
* '''cd /afs/ist.utl.pt/groups/leic-po/po18/cvs''' (ou qualquer outra manipulação directa dos ficheiros do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")
  
 
=== <font color="forestgreen">FAZER</font> ===
 
=== <font color="forestgreen">FAZER</font> ===

Revision as of 14:44, 29 August 2018

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: 2018/10/19 12:00 (inicial); 2018/11/16 12:00 (intercalar); 2018/12/07 12:00 (final); 2018/12/10-2018/12/14 (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
  • mmt-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • mmt-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 DISPONIBILIZAR BREVEMENTE

Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.

Guia para leitores perplexos: CVS Crash Course.

Localização

Os repositórios estão disponíveis no AFS em:

  • /afs/ist.utl.pt/groups/leic-po/po18/cvs

O conteúdo do repositório pode ser manipulado com o comando cvs ou com qualquer outro cliente compatível (e.g. eclipse).

Esta directoria não deve ser utilizada directamente.

Modo de Acesso

No texto que se segue:

  • ### designa o número de grupo (três dígitos, e.g., 123)
  • ISTID designa o identificador de aluno, no formato "ist123456"

Assim, os valores possíveis para a variável de ambiente CVSROOT (ou pela opção -d do comando "cvs") são:

  • /afs/ist.utl.pt/groups/leic-po/po18/cvs/### (disponível em clientes AFS e utilizador com token válido para a célula ist.utl.pt)
  • :ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-po/po18/cvs/### (disponível via SSH; verificar que CVS_RSH=ssh)
Alunos que ainda não visitaram o self-service do CIIST (DSI), devem fazê-lo, para activação dos serviços relevantes (AFS e Shell, pelo menos). Sem isso, não conseguirão desenvolver ou entregar o projecto, reprovando à disciplina.

Conteúdo e Estrutura do Repositório

Cada projecto é constituído por dois módulos:

  • project/sth-core
  • project/sth-app

Estes módulos podem ser obtidos em conjunto fazendo checkout de project (ver abaixo).

O repositório já tem a seguinte estrutura:

  • sth-core (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador)
  • sth-core/Makefile (makefile secundária, semelhante à disponibilizada na aplicação bancária)
  • sth-core/src (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária)
  • sth-app (directoria correspondente à aplicação; contém a interface com o utilizador)
  • sth-app/Makefile (makefile secundária, semelhante à disponibilizada na aplicação bancária)
  • sth-app/src (directoria onde já reside o código da interface textual, tal como na biblioteca equivalente da aplicação bancária)

Esta estrutura já contém algumas classes parcialmente implementadas (sth-core) (que devem ser adaptadas) e outras completamente implementadas (sth-app) (que não podem ser alteradas).

A estrutura do repositório não pode ser alterada.
Os nomes das classes fornecidas em sth-core não podem ser alterados.
O código fornecido em sth-app tem de ser completado, mas os nomes das classes não podem ser alterados.

Cuidados a ter na Utilização do Repositório CVS

NÃO FAZER

  • cvs init (não é necessário: o repositório já existe)
  • cvs import (não é necessário: o projecto já existe)
  • cd /afs/ist.utl.pt/groups/leic-po/po18/cvs (ou qualquer outra manipulação directa dos ficheiros do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")

FAZER

Antes de tudo o mais, fazer cópias de segurança (vulgo "backups") de tudo o que já foi feito.

O repositório já contém uma versão preliminar do projecto e devem ser dados os seguintes passos, para continuar a desenvolver o projecto:

  1. cvs co project (permite criar localmente uma directoria controlada pelo CVS, com o nome project, com a estrutura apresentada acima, contendo os ficheiros do projecto);
  2. Editar/adicionar material do/ao projecto;
  3. Caso sejam criados ficheiros ou directórios novos, fazer cvs add ficheiro1 ficheiro2 ... ficheiro3 (adicionar cada ficheiro novo ao projecto no CVS);
  4. cvs update (antes de enviar alteração locais para o repositório, verificar se há actualizações a incorporar na cópia local e que não foi esquecido nenhum ficheiro importante: voltar a 3 até terem sido todos adicionados)
  5. cvs commit (enviar alterações para o repositório)

Observações importantes

  • No ponto 3 acima, é importante notar que quando se quer adicionar o conteúdo de uma (sub)directoria, deve ser primeiro adicionada a própria directoria e, só depois, o seu conteúdo.
  • Não adicionar a biblioteca po-uuilib ao projecto (serão removidas e quaisquer alterações perdidas -- isto pode causar problemas de compilação e perda de nota).
  • Pessoas sem área no AFS, ou sem login activado, não poderão aceder ao conteúdo do repositório: para activar estes acessos, consultar o self-service do CIIST (DSI). Em caso de dificuldade, consultar o corpo docente.
  • A estrutura do projecto no CVS deve ser mantida como apresentado e cada biblioteca do projecto deve ser, em geral, semelhante, em estrutura, às apresentadas para a aplicação bancária.
  • Em caso de dúvidas, consultar o corpo docente.

Agradece-se a comunicação de eventuais problemas.