Nota prévia. Convenções



Documentos relacionados
Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

4.1. UML Diagramas de casos de uso

Portal AEPQ Manual do utilizador

Novo Formato de Logins Manual de Consulta

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 029/2014 PORTAL FPT Abertura aos atletas

Orientação a Objetos

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão Cambragest Serviços de Gestão e Software

MOODLE: actividade LIÇÃO

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

3 Classes e instanciação de objectos (em Java)

Tutorial exe elearning XHTML editor (versão 1.0x)

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

Tutorial: Como fazer o backup (cópia) e a restauração de conteúdos no Moodle?

Engenharia de Software. Enunciado da Segunda Parte do Projecto

TCEnet e TCELogin Manual Técnico

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 2ª Fase

Manual de Utilização do Sítio da Disciplina

Desenvolvimento de Sistema de Software

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Plataforma de Benefícios Públicos Acesso externo

Engenharia de Software Sistemas Distribuídos

Utilizando a ferramenta de criação de aulas

Introdução a Java. Hélder Nunes

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Projecto de Implementação da. Modelo 11

Documento de Análise e Projeto VideoSystem

Procedimentos para a divulgação de eventos no site da ECUM

Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC

Gerar o Ficheiro de Inventário

PLATAFORMA INFORMÁTICA DE REQUISIÇÃO DE POLICIAMENTO DE ESPETÁCULOS DESPORTIVOS (PIRPED)

Engenharia de Software Sistemas Distribuídos

Comm5 Tecnologia Protocolo MI. Protocolo. Família MI

FEDERAÇÃO NACIONAL DAS COOPERATIVAS DE CONSUMIDORES, FCRL

Como proceder à renovação ou à confirmação de dados estimados

Feature-Driven Development

Análise e Concepção de Sistemas de Informação

Sistema Online de Emissão de Declarações

Plataforma. Manual de Utilização Acesso ao Procedimento Fornecedor. Electrónica BizGov

Manual de Colaboração

ISO/IEC 12207: Gerência de Configuração

Guia de início rápido BlackBerry Enterprise 4.0 para Microsoft Exchange. Versão 1.0

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Projecto de Desenvolvimento de Sistemas de Software

Manual de Utilização de Certificados Digitais. Microsoft Word 2003

PROJ. Nº LLP NL-ERASMUS-ECUE

Recomendações gerais para o preenchimento do Formulário de Candidatura

Descrição de um problema de integração: Sistema de vendas online

Módulo de Administração de Utilizadores

GUIA BÁSICO DA SALA VIRTUAL

Gescom isales. Aplicação Mobile Profissional para Vendedores

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Os Serviços ELEVATION no ERP PRIMAVERA 9 Questões Frequentes sobre serviços cloud e a ligação do ERP ao ELEVATION

1.0 Março-2006 Farmácia e do Medicamento

Driver Eticadata Versão 1.0 de Português

Especificação do 3º Trabalho

SIBA SISTEMA DE INFORMAÇÃO DE BOLETINS DE ALOJAMENTO MANUAL DE UTILIZADOR

Guia do Candidato.

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Manual do Google agenda. criação e compartilhamento de agendas

Modelo Cascata ou Clássico

MANUAL DE INSTRUÇÕES

(DE ACORDO COM O N.º 3 DO ARTIGO 11.º DO DECRETO-LEI N.º 145/2009, DE 17 DE JUNHO) INTRODUÇÃO pág. 2. ACESSO AO SISTEMA DE REGISTO pág.

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Manual de Utilização

Manual do Ambiente Moodle para Professores

Entendendo como funciona o NAT

Um sistema SMS 1 simplificado

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Comunicação electrónica do Inventário à AT

Desenvolvimento de Sistemas de Software

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

A BDAP Passo a Passo.

MANUAL DE PROCEDIMENTOS PLATAFORMA DE INSCRIÇÕES ONLINE

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento)

A Acta Reumatológica Portuguesa disponibiliza em uma plataforma online de submissão e revisão dos artigos submetidos.

Um jogo de preencher casas

Tarefa Orientada 15 Manipulação de dados

Licenciatura em Informática. - Análise e Conceção de Sistemas de Informação. Gestão de Condómino. Documento de Análise.

ESCOLA SECUNDÁRIA DR. GINESTAL MACHADO SANTARÉM

tarefa 1. Para criar uma Tarefa clique em Ativar edição.

Universidade Anhanguera Uniderp Centro de Educação a Distância

Java Mail Server. Manual do Utilizador

Manual XML-Validador-Conversor Registar recursos humanos

Orientação a Objetos

Rock In Rio - Lisboa

MANUAL DO UTILIZADOR

COMPUTAÇÃO e PROGRAMAÇÃO

Transcrição:

Nota prévia O draft de diagrama de componentes, e respectivas interfaces, foi actualizado pela última vez em 07/12/2007. Este draft servirá de base para as implementações do CyberChair. Caso detecte alguma omissão, ou incorrecção, indique no moodle claramente o que está mal e proponha uma solução alternativa. Caso a sua sugestão seja aceite, será incorporada numa nova versão deste draft, sendo as alterações assinaladas junto a cada diagrama. Para que todos os componentes possam comunicar correctamente, é necessário usar as interfaces aqui especificadas. Convenções 1. Quando um utilizador faz login no sistema, deverá ser criado um sessionid para esse utilizador. Em diversas operações, é enviado o argumento sessionid. Esse argumento serve para identificar quem está a invocar a operação. Naturalmente, o sessionid deixa de ser válido quando o utilizador fizer logout do sistema. 2. Dado que temos uma arquitectura por camadas, os componentes de uma camada só podem ter dependências para a camada que está abaixo deles, ou dentro da própria camada, mas nunca com a camada superior. 3. Do ponto de vista da implementação, um componente vai corresponder a um package em Java. Podemos criar packages internos deste package, como é natural. Mas as interfaces fornecidas por cada componente deverão ser, portanto publicadas no package que as oferece. Dentro de cada componente, poderá implementar as classes que entender convenientes, mas tenha sempre presente que apenas temos acesso às interfaces oferecidas pelo componente. 4. Em operações que devolvem objectos, ou iteradores sobre colecções de objectos, a falha no acesso a esses objectos deve ser assinalada devolvendo-os a null. Note que um iterador com uma colecção vazia indica que não há elementos que satisfaçam os requisitos para pertencer à colecção solicitada, enquanto que null indicaria a tentativa de acesso sem privilégios adequados a essa colecção. 5. Em operações que devolvem inteiros que representam o identificador de um elemento (por exemplo, a função submitnew(newabstract: IAbstract): Integer devolve o paperid), vamos assumir, por convenção, que esses identificadores têm de ser números inteiros positivos. Portanto, se essas funções devolverem um número negativo, ou 0, isso significa que houve insucesso na operação. 6. Há uma série de verificações de segurança que podem ser mais facilmente acauteladas no repositório de dados do que em outros sítios. Portanto, o repositório de dados deve verificar o sessionid do requerente antes de ler ou escrever nas tabelas.

Diagrama de componentes (actualizado a 05/12/2007) Login (actualizado a 07/12/2007) getuserkind serve para que quem faz o login consiga saber que tipo de interface vai ter de apresentar ao utilizador, logo de seguida ao login. (actualizado a 05/12/2007) Quer em createpcmemberaccount( ) quer createpcchairaccount( ), o valor de retorno indica se a operação teve sucesso. A criação de contas pode falhar se o sessionid não tiver privilégios de administrador, ou se o login escolhido já existir. A criação de

uma conta de autor (leia-se, o autor de contacto de um artigo) tem sempre sucesso e não requer autenticação prévia, dado que é feita quando se submete um abstract. A String de retorno devolve o sessionid dessa IContactPerson. Note que não incluímos aqui a criação da conta de administrador porque essa criação tem de ser feita à parte, na configuração inicial do sistema. Não haveria forma de autenticar quem criasse a conta de administrador. (actualizado em 07/12/2007) Nos métodos referentes às contas, o valor booleano de retorno indica o sucesso ou insucesso da operação, a exemplo do que acontecia em IAccount. No de criação da conta, o valor retornado é o sessionid da conta criada. As operações getusername() e getpassword devolvem esses dados, relativamente ao sessionid passado para a camada do repositório como argumento nessas chamadas. (actualizado em 05/12/2007) Em getsessionid, se o par username, password for desconhecido, a operação devolve null. Nota: Na aula de dia 5/12 foi solicitado ainda um método para conseguir, dado um sessionid, obter o paperid do abstract/artigo enviado pelos autores. Afinal, não é necessário. A informação está disponível na camada de apresentação via IAbstractSubmission (método getabstract( )), que a obtém através do componente AbstractSubmission. Por sua vez, este componente pode obter o paperid através da interface IAbstractRep (método readmyabstract(sessionid: String): IAbstract devolve o abstract submetido pelo autor com aquele sessionid, ou null, se não existir nenhum abstract associado ao sessionid). Para mais detalhes, ver a secção dedicada à submissão de abstracts. Repare que na submissão de um artigo temos acesso ao respectivo abstract, e, por essa via, ao paperid. (acrescentado em 30/11/2007)

Abstract submission (actualizado a 05/12/2007) Note que a submissão de um novo abstract não leva um sessionid, porque esta operação é feita por um utilizador não registado no sistema. Note que quando a contact person submete um abstract pela primeira vez, ainda não conhece o respectivo paperid. A camada de controlo, também não. Cabe à camada do repositório gerar o paperid, de modo a que ele passe a ser conhecido na camada de controlo e, por sua vez, esta o possa devolver à camada de apresentação. Assim, o valor de retorno de submitnew é o paperid. A operação gettopics devolve uma colecção de strings, uma por tópico. Opta-se por não devolver directamente um ITopicsInfo, para evitar que novos tópicos possam ser acrescentados, neste contexto. (actualizado a 06/12/2007)

(actualizado a 06/12/2007) (actualizado a 30/11/2007) (alterado a 30/11/2007) Temos vários tipos de leituras, destinadas a utilizadores diversos. Quando passamos um paperid, queremos o abstract correspondente a esse artigo. Quando fazemos

readmyabstract, apenas acedemos ao abstract submetido por nós (ou seja, pela contact person cujo sessionid é passado como argumento). Há ainda duas leituras, por tópico e para todos os abstracts, pensadas para os membros da comissão de programa, chair, ou administrador do sistema. Paper bidding (alterado em 05/12/2007) Acrescentou-se a possibilidade de declarar o nível de expertise num determinado tópico, sendo o booleano retornado apenas uma indicação do sucesso da actualização da informação. Note-se que ao ser feito bid do paper, IPaperBid tem gets e sets de expertise level. O expertise level num tópico não tem implicações directas no expertise level num artigo sobre esse tópico (que vem expresso em IPaperBid). O motivo é o seguinte: um artigo aborda mais que um tópico, um revisor pode ser perito em alguns dos tópicos abordados, mas inexperiente noutros. Assim, quando fazemos um setexpertise( ) em IPaperBid, estamos a dar informação específica sobre a experiência do revisor no tema abordado no artigo, e isso é completamente independente da sua experiência no tópico, em geral. Por omissão, o nível de experiência em qualquer artigo, ou tópico, pode ser considerado low. Para concluir, repare que ao fazer o paper bid, o revisor ainda não leu o artigo. Pode acontecer que, a julgar pelo resumo, o revisor se julgue inexperiente, mas depois de ler o artigo chegue à conclusão de que afinal até é perito no conteúdo do artigo. Isso pode acontecer, por exemplo, com resumos mal feitos. Ou seja, não é obrigatório que o nível de experiência indicado por um revisor face ao artigo seja o mesmo no bid e na revisão. Para verificar se as revisões efectuadas incluíram a opinião de peritos, conta a indicação dada nas revisões, não a dos bids.

(acrescentado em 30/11/2007) (actualizado em 30/11/2007) Send paper (actualizado a 05/12/2007) A actualização pretende harmonizar o estilo de interface com o seguido na submissão do resumo. Quer em submitnew, quer em replace, o inteiro devolvido tem o paperid. Para obter o paperid, começa-se por fazer um getpaper, com o sessionid a servir para identificar a contact person e, consequentemente, o paper.

(actualizado em 30/11/2007) (actualizado em 30/11/2007) Review paper (actualizado em 06/12/2007)

(actualizado a 05/12/2007) (acrescentado em 30/11/2007) Send feedback to authors

(actualizado em 06/12/2007) A decisão é um valor com 3 estados (Accepted, Rejected, ou Undefined). Isso teve implicações quer em IPaperFeedBack, quer em IFeedbackRep, quer na criação do enumerado Decision. Esta alteração resulta do consenso encontrado na representação do resultado da avaliação, no repositório. Note que deixa de existir uma operação de create em IFeedbackRep, uma vez que quando um artigo é submetido ele fica imediatamente com a sua decisão no estado Undefined. (actualizado em 30/11/2007) Note que em update não é necessário passar o paperid porque o podemos obter dentro do IPaperFeedback. (acrescentado em 27/11/2007)

Camera ready submission (actualizado a 05/12/2007) (acrescentado em 06/12/2007) Maintenance (actualizado em 07/12/2007) Nesta interface, e em IConfiguration, Date foi substituída por Timestamp, por estar depreciada.

(alterado em 05/12/2007) (acrescentado em 05/12/2007) (alterado em 30/11/2007) (alterado em 30/11/2007)

Chair (actualizado em 06/12/2007) (actualizado em 30/11/2007) (actualizado em 06/12/2007)

(removido em 05/12/2007) (actualizado em 05/12/2007) (acrescentado em 27/11/2007) Messenger (acrescentado em 05/12/2007) (acrescentado em 27/11/2007)

(alterado em 06/12/2007) (acrescentado em 30/11/2007)