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. |
O USO DO REPOSITÓRIO CVS É OBRIGATÓRIO -- NÃO SERÃO CONSIDERADOS PROJECTOS QUE NÃO ESTEJAM NO CVS
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/po20/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/po20/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/po20/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/woo-core e project/woo-app.
| Conteúdo inicial do repositório CVS para o módulo woo-core |
|---|
woo-core
├── Makefile
└── src
└── woo
├── exceptions
│ ├── BadEntryException.java
│ ├── ImportFileException.java
│ ├── MissingFileAssociationException.java
│ └── UnavailableFileException.java
├── Storefront.java
└── Store.java
|
| Conteúdo inicial do repositório CVS para o módulo woo-app |
|---|
woo-app
├── data.txt
├── Makefile
└── src
└── woo
└── app
├── App.java
├── clients
│ ├── DoRegisterClient.java
│ ├── DoShowAllClients.java
│ ├── DoShowClient.java
│ ├── DoShowClientTransactions.java
│ ├── DoToggleProductNotifications.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── exceptions
│ ├── DuplicateClientKeyException.java
│ ├── DuplicateProductKeyException.java
│ ├── DuplicateSupplierKeyException.java
│ ├── FileOpenFailedException.java
│ ├── InvalidDateException.java
│ ├── Message.java
│ ├── UnauthorizedSupplierException.java
│ ├── UnavailableProductException.java
│ ├── UnknownClientKeyException.java
│ ├── UnknownProductKeyException.java
│ ├── UnknownServiceLevelException.java
│ ├── UnknownServiceTypeException.java
│ ├── UnknownSupplierKeyException.java
│ ├── UnknownTransactionKeyException.java
│ └── WrongSupplierException.java
├── lookups
│ ├── DoLookupPaymentsByClient.java
│ ├── DoLookupProductsUnderTopPrice.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── main
│ ├── DoAdvanceDate.java
│ ├── DoDisplayDate.java
│ ├── DoOpen.java
│ ├── DoOpenMenuClients.java
│ ├── DoOpenMenuLookups.java
│ ├── DoOpenMenuProducts.java
│ ├── DoOpenMenuSuppliers.java
│ ├── DoOpenMenuTransactions.java
│ ├── DoSave.java
│ ├── DoShowGlobalBalance.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── products
│ ├── DoChangePrice.java
│ ├── DoRegisterProductBook.java
│ ├── DoRegisterProductBox.java
│ ├── DoRegisterProductContainer.java
│ ├── DoShowAllProducts.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
├── suppliers
│ ├── DoRegisterSupplier.java
│ ├── DoShowSuppliers.java
│ ├── DoShowSupplierTransactions.java
│ ├── DoToggleTransactions.java
│ ├── Label.java
│ ├── Menu.java
│ └── Message.java
└── transactions
├── DoPay.java
├── DoRegisterOrderTransaction.java
├── DoRegisterSaleTransaction.java
├── DoShowTransaction.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:
- woo-core (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador)
- woo-core/Makefile (makefile secundária, semelhante à disponibilizada na aplicação bancária)
- woo-core/src (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária)
- woo-app (directoria correspondente à aplicação; contém a interface com o utilizador)
- woo-app/Makefile (makefile secundária, semelhante à disponibilizada na aplicação bancária)
- woo-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 (woo-core) (que devem ser adaptadas) e outras parcial ou completamente implementadas (woo-app) (algumas das quais 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/po20/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.