Programação com Objectos/Projecto de Programação com Objectos/Repositório CVS
From Wiki**3
| AVISOS - Avaliação em Época Normal |
|---|
|
Esclarecimento de dúvidas:
|
|
Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Programação com Objectos):
|
|
Processo de avaliação (ver informação completa em Avaliação do Projecto):
|
| Material de Uso Obrigatório |
|---|
| As bibliotecas po-uuilib e o conteúdo inicial do CVS são de uso obrigatório: |
|
| 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.
Localização
Os repositórios estão disponíveis no AFS em:
- /afs/ist.utl.pt/groups/leic-po/po19/cvs
O conteúdo do repositório pode ser manipulado com o comando cvs ou com qualquer outro cliente compatível (e.g. eclipse).
Modo de Acesso
No texto que se segue:
- ### designa o número de grupo com três dígitos, e.g., 012
- 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/po19/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/po19/cvs/### (disponível via SSH; verificar que CVS_RSH=ssh)
Conteúdo e Estrutura do Repositório
O código fornecido é de uso obrigatório e deve ser completado.
Cada projecto é constituído por dois módulos: project/sth-core e project/sth-app.
| Conteúdo inicial do repositório CVS para o módulo sth-core |
|---|
| <text>
sth-core ├── Makefile └── src └── sth
├── exceptions
│ ├── BadEntryException.java
│ ├── ImportFileException.java
│ └── NoSuchPersonIdException.java
├── School.java
└── SchoolManager.java
</text> |
| Conteúdo inicial do repositório CVS para o módulo sth-app |
|---|
m19-app
├── bin
├── Makefile
└── src
└── m19
└── app
├── App.java
├── exceptions
│ ├── FileOpenFailedException.java
│ ├── Message.java
│ ├── NoSuchUserException.java
│ ├── NoSuchWorkException.java
│ ├── RuleFailedException.java
│ ├── UserIsActiveException.java
│ ├── UserRegistrationFailedException.java
│ └── WorkNotBorrowedByUserException.java
├── main
│ ├── DoAdvanceDate.java
│ ├── DoDisplayDate.java
│ ├── DoOpen.java
│ ├── DoOpenRequestsMenu.java
│ ├── DoOpenUsersMenu.java
│ ├── DoOpenWorksMenu.java
│ ├── DoSave.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── requests
│ ├── DoRequestWork.java
│ ├── DoReturnWork.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── users
│ ├── DoPayFine.java
│ ├── DoRegisterUser.java
│ ├── DoShowUser.java
│ ├── DoShowUserNotifications.java
│ ├── DoShowUsers.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
└── works
├── DoDisplayWork.java
├── DoDisplayWorks.java
├── DoPerformSearch.java
├── Label.java
├── Menu.java
└── Message.java
|
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).
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/po19/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:
- 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);
- Editar/adicionar material do/ao projecto;
- Caso sejam criados ficheiros ou directórios novos, fazer cvs add ficheiro1 ficheiro2 ... ficheiro3 (adicionar cada ficheiro novo ao projecto no CVS);
- 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)
- 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.