LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A
Engenharia de Software e Sistemas Distribuı́dos
2o Semestre – 2014/2015
Enunciado Geral do Projecto
O que se segue é uma descrição geral do domı́nio do projecto a desenvolver no contexto das
disciplinas de Engenharia de Software (ES) e de Sistemas Distribuı́dos (SD). O projecto a concretizar efectivamente será descrito nos enunciados respectivos a cada entrega de ES e de SD.
1. Introdução
A aplicação B UBBLE D OCS permitirá a criação, gestão e edição de vários tipos de documentos:
folhas de cálculo, texto e apresentação. Os utilizadores da aplicação a desenvolver podem
interagir uns com os outros através da alteração de documentos partilhados entre eles.
O projeto a desenvolver consistirá no desenho e concretização parcial da B UBBLE D OCS e
serviços associados, de forma a disponibilizar um subconjunto das funcionalidades esperadas
num sistema deste género. Na aplicação a desenvolver apenas se vai considerar um único tipo
de documento, a folha de cálculo.
A B UBBLE D OCS estará integrada com dois serviços externos: um serviço de identidade e
autenticação, o SD-ID, e um serviço de armazenamento fiável, o SD-S TORE.
2. Domı́nio da Aplicação
Todas as entidades do domı́nio geridas pela aplicação têm um identificador único. Os identificadores únicos que são administrados pelo sistema são gerados sequencialmente e começam
em zero. Sempre que for necessário visualizar uma lista de entidades do domı́nio, por omissão,
a ordem é determinada pelos identificadores das entidades presentes na lista.
2.1. Utilizador
Cada utilizador tem um username, nome e palavra chave. O username é o identificador único do
utilizador. Cada utilizador tem associado um determinado conjunto de documentos e apenas
pode aceder a documentos desse conjunto. Além disso, cada utilizador tem associado um
modo de acesso para cada documento. Existem dois modos de acesso:
• leitura. O utilizador pode ver o conteúdo do documento mas não pode alterá-lo.
• escrita. O utilizador pode ver e alterar o conteúdo do documento.
Existe um utilizador especial designado como o utilizador root. Este utilizador tem o username root, o qual está reservado para este utilizador, e o seu nome é Super User. O utilizador
root pode realizar um conjunto adicional de operações que não estão disponı́veis para os utilizadores normais:
• adição de um novo utilizador.
• remoção de um utilizador existente. Ao remover um utilizador, a aplicação deve também
remover automaticamente da aplicação todas as folhas criadas pelo utilizador. Não é
possı́vel remover o utilizador root.
• aceder aos utilizadores registados na aplicação.
2.2. Documento
Cada documento gerido pela aplicação tem um identificador único, sequencial, que é gerado
automaticamente pelo sistema. Cada documento tem ainda um nome, o qual não é necessariamente único. Cada documento conhece o utilizador que o criou assim como a data da sua
criação.
Qualquer utilizador que possa escrever num documento pode alterar o conjunto de utilizadores que pode aceder (em modo de leitura ou escrita) ao documento. O utilizador que criou o
documento pode sempre alterar este conjunto, independentemente de ainda pertencer ou não
ao conjunto de utilizadores que pode escrever no documento.
2.3. Folha de Cálculo
A folha de cálculo é um dos tipos possı́veis de documentos geridos pela aplicação. Uma folha de cálculo é uma matriz de células. A dimensão da folha de cálculo (número de linhas
e colunas) é especificado no momento da criação da folha de cálculo e não pode ser alterado
posteriormente.
2.3.1 Endereçamento: Células e Intervalos
Cada célula de uma folha de cálculo tem um dado conteúdo (por omissão está vazia) e tem
uma dada posição, designada por endereço da célula, na folha de cálculo. O endereço de uma
célula é representado por dois números inteiros, respectivamente a linha e coluna da célula na
folha de cálculo, separados pelo sı́mbolo ”;”. Por exemplo, o endereço da célula presente na
linha 1 e coluna 2 é representado por 1;2. As linhas e colunas de uma folha de cálculo têm inı́cio
em 1 (um).
Um intervalo (fechado) é uma submatriz da folha de cálculo e é definido utilizando dois
endereços que representam a primeira e última célula da submatriz. Um intervalo é representado pelo endereço de duas células separadas pelo sı́mbolo ”:”. Por exemplo, o intervalo que
representa as células da linha 1 entre as colunas 2 e 20 é representado por 1;2:1;20.
2
2.3.2 Contéudo de uma célula
Quando um utilizador cria uma folha de cálculo, todas as células da folha criada estão vazias,
i.e. estão sem qualquer conteúdo. Uma célula pode ter um conteúdo de três tipos possı́veis:
literais, referências e funções. Por questões de simplificação, os literais só podem ser números
inteiros e as funções devolvem sempre um número inteiro. Uma referência indica a célula da
folha de cálculo com um dado endereço e é representada utilizando o simbolo “=“ seguido do
endereço da célula pretendida.
As funções são especificadas pelo utilizador utilizando também o sı́mbolo “=“ seguido do
nome da função e a lista de argumentos separados por vı́rgulas. Existem dois tipos de funções:
• Funções binárias, que são funções que aceitam dois argumentos. Os argumentos podem
ser referências (representadas por um endereço) ou literais. Existem as seguintes funções
binárias: adição, subtração, multiplicação e divisão, representadas respectivamente pelas seguintes cadeias de caracteres ADD, SUB, MUL e DIV. Por exemplo, a função que
adiciona o número 2 ao conteúdo da célula da linha 3 e coluna 1 seria especificada pelo
utilizador como =ADD(2,3;1).
• Funções intervalo, que apenas recebem um argumento. Este argumento é um intervalo
de células. As funções a considerar neste caso são a média1 e piatório, representadas respectivamente por AVG e PRD. Por exemplo, a função que calcula da média das células
pertencentes à linha 2 entre as colunas 3 e 20 será especificada pelo utilizador como
=AVG(2;3:2;20).
Por razões de simplificação do projecto a desenvolver, pode considerar que os utilizadores
nunca criarão uma dependência circular (directa ou indirecta) entre duas ou mais células da
folha de cálculo. Por isso, a sua solução não precisará de verificar a existência de uma dependência circular. Por exemplo, o caso em que os conteúdos da células com o endereços 2;3 e
4,5 são =4;5 e =2;3 , respectivamente, nunca irá acontecer porque representa uma dependência
circular entre as duas células.
Do ponto de vista de cálculo do valor de uma referência, a referência é designada como
inválida se representar um endereço inválido da folha de cálculo ou a célula referenciada estiver vazia. Relativamente às funções não é realizada qualquer validação dos seus argumentos.
Essa validação só é feita quando é necessário calcular o valor da função. Uma função tem argumentos inválidos caso tenha argumentos com uma ou mais referências inválidas. O valor
a apresentar para células cuja expressão contém pelo menos uma referência inválida deve ser
#VALUE.
Uma célula pode estar protegida ou não. Não é possı́vel alterar o conteúdo de uma célula
protegida. Só os utilizadores que podem alterar uma folha de cálculo é que podem proteger ou
desproteger as células dessa folha de cálculo.
3. Serviços Distribuı́dos
A aplicação B UBBLE D OCS integra-se com dois serviços distribuı́dos, SD-ID e SD-S TORE,
através da tecnologia de Web Services.
1
O cálculo da média deve utilizar a divisão inteira por forma a garantir que a média dos valores das células
representados pelo intervalo indicado no argumento da função é um número inteiro.
3
A Figura 1 apresenta uma visão global da solução pretendida. Os utilizadores usam a
aplicação B UBBLE D OCS com autenticação no serviço SD-ID e com salvaguarda no serviço
SD-S TORE .
ES
SD
SD-ID
Bubble
Docs
Utilizador
SD-STORE
Figura 1: Visão global da aplicação e dos serviços externos, com separação de componentes
entre as Unidades Curriculares.
O SD-ID é um serviço de autenticação distribuı́da usado pelos utilizadores do B UBBLE
D OCS. Cada utilizador do B UBBLE D OCS mantém uma conta no SD-ID. É essa conta que
permite a esse utilizador autenticar-se perante o B UBBLE D OCS para editar os seus documentos. É também essa conta que permite ao B UBBLE D OCS recorrer a outros serviços externos
(tais como o SD-S TORE) em nome do utilizador. A principal vantagem do SD-ID é evitar que
os utilizadores tenham de manter diversas contas (e respetivas senhas secretas), uma para cada
aplicação ou serviço que o utilizador venha a usar. Ao mesmo tempo, ao oferecer um serviço
de gestão e autenticação de utilizadores, o serviço SD-ID facilita o desenvolvimento de novas
aplicações e serviços.
O SD-S TORE é um serviço de armazenamento fiável de documentos. A principal preocupação
da SD-S TORE é oferecer a utilizadores e aplicações uma alternativa de elevada capacidade de
armazenamento e uma elevada disponibilidade para estes salvaguardarem os seus documentos. Cada utilizador registado no SD-ID pode salvaguardar cópias fiáveis dos seus documentos. Em caso de necessidade (por exemplo, em caso de perda ou corrupção de um documento),
um utilizador pode recuperar a cópia mais recente dos seus documentos.
4. Realização do Projeto
As tarefas de desenvolvimento vão ser partilhadas pelas duas unidades curriculares: B UBBLE
D OCS será desenvolvida em ES; SD-ID e SD-S TORE serão desenvolvidos e integrados em SD.
A Figura 1 resume a partilha de tarefas.
4.1. Grupos
O projeto é realizado em grupos de 6 alunos, que se dividem em 2 grupos de 3 alunos para SD.
Os grupos têm que ser formados por alunos na mesma situação de inscrição:
• Inscritos em ES e SD;
• Inscritos apenas em ES;
• Inscritos apenas em SD.
Em resumo, os alunos têm que trabalhar com colegas na mesma situação de inscrição e
frequentando as mesmas aulas de laboratório.
4
4.2. Trabalhadores-Estudantes
Os alunos que sejam Trabalhadores-Estudantes têm que fazer o projecto integrados em grupo,
mas apenas têm que comparecer na discussão final.
4.3. Fases de desenvolvimento
O projeto será realizado de forma faseada, existindo 4 datas de avaliação de ES, e 2 datas de
SD. A Tabela 1 apresenta o calendário de projeto e os pesos de cada entrega na nota final de
projecto dos grupos.
Datas
ES
SD
18 a 20 de Fevereiro
Inscrições dos grupos
11 a 17 de Março de 2015
Entrega 1 – 15%
—
25 a 31 de Março de 2015
Entrega 2 – 25%
—
17 de Abril de 2015
Entrega 3 – 25%
Entrega 1 – 40%
13 de Maio de 2015
Entrega 4 – 35%
Entrega 2 – 60%
14 a 29 de Maio
Discussões
Tabela 1: Calendário de projeto.
4.4. Avaliação
A avaliação nas duas unidades curriculares é independente. O trabalho desenvolvido em cada
entrega será visualizado e avaliado nas aulas de laboratório seguintes da respetiva unidade
curricular. A entrega final é avaliada com visualização e discussão. Após as discussões, cada
aluno terá uma nota individual em cada uma das unidades curriculares que reflectirá a sua
participação no projecto ao longo do semestre.
A nota mı́nima para ES é de 8 valores e para SD é de 9 valores.
5. Conclusão
Este enunciado geral descreveu o domı́nio da aplicação B UBBLE D OCS e dos serviços SD-ID e
SD-S TORE e apresentou a forma como o projeto deverá ser realizado no âmbito de cada umas
das unidades curriculares. Serão publicados enunciados a detalhar o que será pedido para cada
uma das entregas.
Bom semestre e bom trabalho!
5
Download

Engenharia de Software e Sistemas Distribuıdos Enunciado Geral