(→Localização e Acesso) |
(→Conteúdo e Estrutura do Repositório) |
||
(89 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{PRJPOAvisosEN20222023}} |
− | {{ | + | <!--{{PRJPOAvisosEE20222023}}--> |
+ | {{PRJPOMandatory20222023}} | ||
{{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. | ||
+ | |||
+ | {{Aviso|'''O USO DO REPOSITÓRIO CVS É OBRIGATÓRIO.'''}} | ||
+ | |||
+ | {{Aviso|'''NÃO SERÃO CONSIDERADOS PROJECTOS QUE NÃO ESTEJAM NO CVS.'''}} | ||
+ | |||
+ | {{Suggestion|Pequeno guia para leitores perplexos: [[CVS Crash Course]].}} | ||
== Localização == | == Localização == | ||
− | + | Os repositórios estão disponíveis no AFS em: | |
+ | |||
+ | * '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po22/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]''). | |
− | { | + | {{Aviso|Esta directoria não deve ser utilizada directamente.}} |
− | |||
− | |Esta directoria não deve ser utilizada directamente. | ||
− | |||
− | == Acesso == | + | == Modo de Acesso == |
No texto que se segue: | No texto que se segue: | ||
− | * '''<nowiki> | + | * '''<nowiki>###</nowiki>''' designa o [https://fenix.tecnico.ulisboa.pt/disciplinas/PO/2022-2023/1-semestre/grupos número de grupo] com três dígitos, e.g., 012 |
* '''<nowiki>ISTID</nowiki>''' designa o identificador de aluno, no formato "ist123456" | * '''<nowiki>ISTID</nowiki>''' 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: | 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/ | + | * '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po22/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/ | + | * '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-po/po22/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh) |
− | { | + | {{Aviso|Alunos que ainda não visitaram o [https://selfservice.dsi.tecnico.ulisboa.pt/ self-service da 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.}} |
− | |||
− | |Alunos que ainda não visitaram o [https:// | ||
− | |||
== Conteúdo e Estrutura do Repositório == | == 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/prr-core''' e '''project/prr-app'''. | |
− | + | {{CollapsedCode|Conteúdo inicial do repositório CVS para o módulo prr-core|<source lang="text"> | |
+ | prr-core | ||
+ | ├── Makefile | ||
+ | ├── README.md | ||
+ | └── src | ||
+ | └── prr | ||
+ | ├── exceptions | ||
+ | │ ├── ImportFileException.java | ||
+ | │ ├── MissingFileAssociationException.java | ||
+ | │ ├── UnavailableFileException.java | ||
+ | │ └── UnrecognizedEntryException.java | ||
+ | ├── Network.java | ||
+ | ├── NetworkManager.java | ||
+ | └── terminals | ||
+ | └── Terminal.java</source> | ||
+ | }} | ||
+ | {{CollapsedCode|Conteúdo inicial do repositório CVS para o módulo prr-app|<source lang="text"> | ||
+ | prr-app | ||
+ | ├── Makefile | ||
+ | ├── README.md | ||
+ | └── src | ||
+ | └── prr | ||
+ | └── app | ||
+ | ├── App.java | ||
+ | ├── clients | ||
+ | │ ├── DoDisableClientNotifications.java | ||
+ | │ ├── DoEnableClientNotifications.java | ||
+ | │ ├── DoRegisterClient.java | ||
+ | │ ├── DoShowAllClients.java | ||
+ | │ ├── DoShowClient.java | ||
+ | │ ├── DoShowClientPaymentsAndDebts.java | ||
+ | │ ├── Label.java | ||
+ | │ ├── Menu.java | ||
+ | │ ├── Message.java | ||
+ | │ └── Prompt.java | ||
+ | ├── exceptions | ||
+ | │ ├── DuplicateClientKeyException.java | ||
+ | │ ├── DuplicateTerminalKeyException.java | ||
+ | │ ├── FileOpenFailedException.java | ||
+ | │ ├── InvalidTerminalKeyException.java | ||
+ | │ ├── Message.java | ||
+ | │ ├── UnknownClientKeyException.java | ||
+ | │ └── UnknownTerminalKeyException.java | ||
+ | ├── lookups | ||
+ | │ ├── DoShowAllCommunications.java | ||
+ | │ ├── DoShowClientsWithDebts.java | ||
+ | │ ├── DoShowClientsWithoutDebts.java | ||
+ | │ ├── DoShowCommunicationsFromClient.java | ||
+ | │ ├── DoShowCommunicationsToClient.java | ||
+ | │ ├── DoShowTerminalsWithPositiveBalance.java | ||
+ | │ ├── DoShowUnusedTerminals.java | ||
+ | │ ├── Label.java | ||
+ | │ ├── Menu.java | ||
+ | │ ├── Message.java | ||
+ | │ └── Prompt.java | ||
+ | ├── main | ||
+ | │ ├── DoOpenFile.java | ||
+ | │ ├── DoSaveFile.java | ||
+ | │ ├── DoOpenMenuClient.java | ||
+ | │ ├── DoOpenMenuTerminals.java | ||
+ | │ ├── DoOpenMenuLookups.java | ||
+ | │ ├── DoShowGlobalBalance.java | ||
+ | │ ├── Label.java | ||
+ | │ ├── Menu.java | ||
+ | │ ├── Message.java | ||
+ | │ └── Prompt.java | ||
+ | ├── terminal | ||
+ | │ ├── DoAddFriend.java | ||
+ | │ ├── DoEndInteractiveCommunication.java | ||
+ | │ ├── DoPerformPayment.java | ||
+ | │ ├── DoRemoveFriend.java | ||
+ | │ ├── DoSendTextCommunication.java | ||
+ | │ ├── DoShowOngoingCommunication.java | ||
+ | │ ├── DoShowTerminalBalance.java | ||
+ | │ ├── DoSilenceTerminal.java | ||
+ | │ ├── DoStartInteractiveCommunication.java | ||
+ | │ ├── DoTurnOffTerminal.java | ||
+ | │ ├── DoTurnOnTerminal.java | ||
+ | │ ├── Label.java | ||
+ | │ ├── Menu.java | ||
+ | │ ├── Message.java | ||
+ | │ ├── Prompt.java | ||
+ | │ └── TerminalCommand.java | ||
+ | └── terminals | ||
+ | ├── DoOpenMenuTerminalConsole.java | ||
+ | ├── DoRegisterTerminal.java | ||
+ | ├── DoShowAllTerminals.java | ||
+ | ├── Label.java | ||
+ | ├── Menu.java | ||
+ | ├── Message.java | ||
+ | └── Prompt.java</source> | ||
+ | }} | ||
− | Estes módulos podem ser obtidos em conjunto fazendo checkout de '''project''' ( | + | Estes módulos podem ser obtidos em conjunto fazendo checkout de '''project''' (ver abaixo). |
− | O repositório já tem a seguinte estrutura | + | O repositório já tem a seguinte estrutura: |
− | * ''' | + | * '''prr-core''' (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador) |
− | + | * '''prr-core/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária) | |
− | * ''' | + | * '''prr-core/src''' (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária) |
− | * ''' | + | * '''prr-app''' (directoria correspondente à aplicação; contém a interface com o utilizador) |
− | * ''' | + | * '''prr-app/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária) |
− | * ''' | + | * '''prr-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 ('''prr-core''') (que devem ser adaptadas) e outras parcial ou completamente implementadas ('''prr-app''') (algumas das quais não podem ser alteradas). | ||
+ | |||
+ | {{Aviso|A estrutura do repositório não pode ser alterada.}} | ||
+ | |||
+ | {{Aviso|O código fornecido em '''prr-core''' e '''prr-app''' tem de ser completado.}} | ||
− | + | {{Aviso|Os nomes das classes fornecidas em '''prr-core''' e '''prr-app''' não podem ser alterados.}} | |
+ | |||
+ | {{Aviso|As seguintes classes e interfaces não podem ser alteradas: '''App.java''', todos as '''Label.java''', todos as '''Menu.java''', todos as '''Message.java''', todos os '''Prompt.java''' e todas as excepções fornecidas.}} | ||
== Cuidados a ter na Utilização do Repositório CVS == | == Cuidados a ter na Utilização do Repositório CVS == | ||
Line 57: | Line 161: | ||
* '''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/ | + | * '''cd /afs/ist.utl.pt/groups/leic-po/po22/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> === | ||
Line 74: | Line 178: | ||
* 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. | * 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 | + | * Não adicionar a biblioteca '''po-uilib''' 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. | * 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. | * 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. | ||
Line 80: | Line 184: | ||
Agradece-se a comunicação de eventuais problemas. | Agradece-se a comunicação de eventuais problemas. | ||
+ | |||
+ | == "Receita" para a Entrega de Diagramas UML == | ||
+ | |||
+ | Tal como indicado no [[Programação com Objectos/Projecto de Programação com Objectos/Avaliação do Projecto (Época Normal)|método de avaliação]], os 3 diagramas a entregar -- '''UML-po-uilib.pdf''', '''UML-prr-app.pdf''', '''UML-prr-core.pdf''' -- devem ser colocados na directoria '''uml''' do projecto no repositório CVS. | ||
+ | |||
+ | Os comandos abaixo explicam como realizar essa operação a partir de um projecto no repositório (desde obter uma cópia local até completar a entrega). O passo de obter a cópia local pode ser omitido se o projecto já tiver sido obtido anteriormente. O passo de adicionar novos ficheiros pode ser omitido se as versões dos diagramas corresponderem a actualizações de adições anteriores. Nos exemplos dos comandos abaixo, '''ist123456''' é o ISTid da pessoa que realiza as operações e '''199''' é o grupo dessa pessoa (estes dois valores variam de pessoa para pessoa e de grupo para grupo). | ||
+ | |||
+ | * Obter o projecto do repositório (o projecto fica na directoria local '''project'''). Assume-se que os comandos subsequentes são dados dentro da directoria '''project''' (notar '''cd project''' abaixo): | ||
+ | cvs -d :ext:ist123456@sigma.tecnico.ulisboa.pt:/afs/ist.utl.pt/groups/leic-po/po22/cvs/199 co project | ||
+ | cd project | ||
+ | * Colocar os ficheiros com os diagramas na directoria '''project/uml''' (ficheiros novos ou actualizações). Esta operação depende de onde estão os diagramas ou de como foram digitalizados a partir da versão manuscrita (recorda-se que apenas são aceites diagramas manuscritos, devidamente acompanhados com a declaração de autoria). O comando apresentado é apenas um exemplo (assume que os diagramas estão originalmente na directoria principal do utilizador). | ||
+ | cp ~/UML-po-uilib.pdf ~/UML-prr-app.pdf ~/UML-prr-core.pdf uml | ||
+ | * Adicionar os ficheiros novos ao CVS (no comando a seguir, assume-se que os 3 ficheiros são adicionados, mas pode adicionar-se um de cada vez): | ||
+ | cvs add uml/UML-po-uilib.pdf uml/UML-prr-app.pdf uml/UML-prr-core.pdf | ||
+ | * Pode realizar-se neste ponto um pedido de actualização da cópia local (caso a outra pessoa do grupo também esteja a fazer alterações -- se não é o caso, este passo é opcional): | ||
+ | cvs update | ||
+ | * Finalmente, enviam-se os ficheiros novos para o repositório CVS (a mensagem descreve o commit e evita a abertura de um editor): | ||
+ | cvs commit -m "Adicionados diagramas UML." | ||
[[category:Projecto de PO]] | [[category:Projecto de PO]] | ||
[[category:PO]] | [[category:PO]] | ||
[[category:Ensino]] | [[category:Ensino]] |
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-uilib 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. |
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
Os repositórios estão disponíveis no AFS em:
O conteúdo do repositório pode ser manipulado com o comando cvs ou com qualquer outro cliente compatível (e.g. eclipse).
No texto que se segue:
Assim, os valores possíveis para a variável de ambiente CVSROOT (ou pela opção -d do comando "cvs") são:
O código fornecido é de uso obrigatório e deve ser completado.
Cada projecto é constituído por dois módulos: project/prr-core e project/prr-app.
Conteúdo inicial do repositório CVS para o módulo prr-core |
---|
prr-core
├── Makefile
├── README.md
└── src
└── prr
├── exceptions
│ ├── ImportFileException.java
│ ├── MissingFileAssociationException.java
│ ├── UnavailableFileException.java
│ └── UnrecognizedEntryException.java
├── Network.java
├── NetworkManager.java
└── terminals
└── Terminal.java
|
Conteúdo inicial do repositório CVS para o módulo prr-app |
---|
prr-app
├── Makefile
├── README.md
└── src
└── prr
└── app
├── App.java
├── clients
│ ├── DoDisableClientNotifications.java
│ ├── DoEnableClientNotifications.java
│ ├── DoRegisterClient.java
│ ├── DoShowAllClients.java
│ ├── DoShowClient.java
│ ├── DoShowClientPaymentsAndDebts.java
│ ├── Label.java
│ ├── Menu.java
│ ├── Message.java
│ └── Prompt.java
├── exceptions
│ ├── DuplicateClientKeyException.java
│ ├── DuplicateTerminalKeyException.java
│ ├── FileOpenFailedException.java
│ ├── InvalidTerminalKeyException.java
│ ├── Message.java
│ ├── UnknownClientKeyException.java
│ └── UnknownTerminalKeyException.java
├── lookups
│ ├── DoShowAllCommunications.java
│ ├── DoShowClientsWithDebts.java
│ ├── DoShowClientsWithoutDebts.java
│ ├── DoShowCommunicationsFromClient.java
│ ├── DoShowCommunicationsToClient.java
│ ├── DoShowTerminalsWithPositiveBalance.java
│ ├── DoShowUnusedTerminals.java
│ ├── Label.java
│ ├── Menu.java
│ ├── Message.java
│ └── Prompt.java
├── main
│ ├── DoOpenFile.java
│ ├── DoSaveFile.java
│ ├── DoOpenMenuClient.java
│ ├── DoOpenMenuTerminals.java
│ ├── DoOpenMenuLookups.java
│ ├── DoShowGlobalBalance.java
│ ├── Label.java
│ ├── Menu.java
│ ├── Message.java
│ └── Prompt.java
├── terminal
│ ├── DoAddFriend.java
│ ├── DoEndInteractiveCommunication.java
│ ├── DoPerformPayment.java
│ ├── DoRemoveFriend.java
│ ├── DoSendTextCommunication.java
│ ├── DoShowOngoingCommunication.java
│ ├── DoShowTerminalBalance.java
│ ├── DoSilenceTerminal.java
│ ├── DoStartInteractiveCommunication.java
│ ├── DoTurnOffTerminal.java
│ ├── DoTurnOnTerminal.java
│ ├── Label.java
│ ├── Menu.java
│ ├── Message.java
│ ├── Prompt.java
│ └── TerminalCommand.java
└── terminals
├── DoOpenMenuTerminalConsole.java
├── DoRegisterTerminal.java
├── DoShowAllTerminals.java
├── Label.java
├── Menu.java
├── Message.java
└── Prompt.java
|
Estes módulos podem ser obtidos em conjunto fazendo checkout de project (ver abaixo).
O repositório já tem a seguinte estrutura:
Esta estrutura já contém algumas classes parcialmente implementadas (prr-core) (que devem ser adaptadas) e outras parcial ou completamente implementadas (prr-app) (algumas das quais não podem ser alteradas).
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:
Agradece-se a comunicação de eventuais problemas.
Tal como indicado no método de avaliação, os 3 diagramas a entregar -- UML-po-uilib.pdf, UML-prr-app.pdf, UML-prr-core.pdf -- devem ser colocados na directoria uml do projecto no repositório CVS.
Os comandos abaixo explicam como realizar essa operação a partir de um projecto no repositório (desde obter uma cópia local até completar a entrega). O passo de obter a cópia local pode ser omitido se o projecto já tiver sido obtido anteriormente. O passo de adicionar novos ficheiros pode ser omitido se as versões dos diagramas corresponderem a actualizações de adições anteriores. Nos exemplos dos comandos abaixo, ist123456 é o ISTid da pessoa que realiza as operações e 199 é o grupo dessa pessoa (estes dois valores variam de pessoa para pessoa e de grupo para grupo).
cvs -d :ext:ist123456@sigma.tecnico.ulisboa.pt:/afs/ist.utl.pt/groups/leic-po/po22/cvs/199 co project cd project
cp ~/UML-po-uilib.pdf ~/UML-prr-app.pdf ~/UML-prr-core.pdf uml
cvs add uml/UML-po-uilib.pdf uml/UML-prr-app.pdf uml/UML-prr-core.pdf
cvs update
cvs commit -m "Adicionados diagramas UML."