05FEV2001

Propaganda
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
Engenharia de Software
5 de Fevereiro de 2001
PARTE TEÓRICA – SEM CONSULTA – DURAÇÃO MÁXIMA: 60 minutos
1.
(1.5)
2.
(1.5)
3.
(2.5)
Num processo de desenvolvimento de software a fase de Análise de Requisitos é uma das
mais relevantes. Indique as regras/técnicas que considera fundamentais serem aplicadas
nesta fase por forma a que a mesma seja concretizada de forma adequada.
Diga o que entende por “usabilidade” de uma dada aplicação informática. Como pode
avaliá-la?
Admita que acaba de ser nomeado(a) pela administração da sua empresa para dirigir um
dado projecto de software, de alguma complexidade e responsabilidade. Como tarefas
iniciais terá que constituir a sua equipa de trabalho e organizar todo o projecto.
a) Indique quais os passos que seguiria para constituir a sua equipa de trabalho. A que
capacidades/competências daria maior relevância no processo de selecção de RH?
b) Em que consiste a organização do projecto?
4.
(2.5)
6.
(1.0)
a) Diga o que entende por maturidade de uma equipa de desenvolvimento de software.
Que capacidades/competências da equipa permitem definir diferentes níveis de
maturidade?
b) Segundo alguns especialistas de Engenharia de Software, a utilização de ferramentas
CASE em processos de desenvolvimento de software não é recomendada em empresas
com um nível de maturidade inferior ao nível 3 do CMM. Comente esta recomendação.
Indique, justificando, que diagrama UML seria mais adequado para descrever cada uma das
seguintes realidades:
a)
b)
c)
d)
7.
(1.0)
Tipos de utilizadores e funções a que têm acesso numa aplicação de gestão de pessoal;
Funcionamento de um sistema de alarme para automóveis;
Modo de utilização de uma função de consulta de saldos de contas num banco online;
Relações entre os conceitos subjacentes a uma aplicação de gestão de apólices de
seguros (cliente, apólice, etc.).
No contexto dos diagramas de classes em UML, o que são classes abstractas e operações
abstractas? Qual a sua utilidade? Apresenta um pequeno exemplo envolvendo as classes
FiguraGeométrica, Rectângulo e Elipse.
Total: 10 em 20
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
Engenharia de Software
5 de Fevereiro de 2001
PARTE PRÁTICA – COM CONSULTA – DURAÇÃO MÁXIMA: 75 minutos
Suponha que se pretende projectar um sistema de controlo de versões de código fonte (SCV), de
acordo com os seguintes requisitos:
i. O SCV ajuda a gerir projectos de software, guardando numa base de dados interna as várias
versões dos ficheiros do projecto, sobretudo ficheiros de texto com código fonte, mas
também ficheiros doutros tipos (de texto ou binários). Quando se salva uma nova versão de
um ficheiro no SCV, este guarda a nova versão do ficheiro e as alterações em relação à
versão anterior, permitindo recuperar uma versão antiga do ficheiro a qualquer momento.
ii. Aquando da instalação do SCV, é criada automaticamente uma base de dados por omissão,
mas o administrador do SCV pode a qualquer momento criar novas base de dados, tendo
apenas que indicar um nome e uma localização em disco para cada base de dados criada.
iii. Compete ao administrador do SCV registar os utilizadores com acesso a cada base de
dados, atribuindo um login, password e privilégio de acesso (leitura e escrita ou só leitura)
a cada utilizador.
iv. Para controlar ficheiros com o SCV, um utilizador tem primeiro de criar um projecto no
SCV, dentro de uma base de dados a que tenha acesso com privilégio de escrita. O SCV
suporta uma estrutura hierárquica de projectos dentro de cada base de dados (raiz da
hierarquia), podendo um projecto conter sub-projectos. Assim, para criar um projecto, o
utilizador deve dar um nome ao projecto, indicar uma localização na hierarquia de
projectos (directamente debaixo da raiz ou debaixo doutro projecto) e indicar uma pasta de
trabalho (directório) em disco para efeito de edição dos ficheiros do projecto.
v. Tendo criado um projecto no SCV, o utilizador pode então adicionar ao projecto ficheiros
previamente criados na pasta de trabalho correspondente ao projecto. Quando se adiciona
um ficheiro a um projecto no SCV, este copia o ficheiro da pasta de trabalho para a base de
dados interna, atribui um número interno de 1ª versão ao ficheiro, regista o login e a datahora da 1ª versão e determina automaticamente o tipo do ficheiro (texto ou binário).
vi. Para produzir uma nova versão de um ficheiro controlado com o SCV, o utilizador deve
primeiro fazer check out do ficheiro. Nesse momento, o SCV copia a última versão do
ficheiro da base de dados interna para a pasta de trabalho do projecto, muda o estado do
ficheiro para checked out e regista o login do utilizador. Enquanto um ficheiro está checked
out, mais ninguém pode fazer check out do mesmo ficheiro. Terminadas as alterações, o
utilizador deve fazer check in do ficheiro. Nesse momento, o SCV copia a nova versão do
ficheiro da pasta de trabalho para a base de dados (após determinar e guardar as diferenças
entre as duas versões), incrementa o número interno de versão e regista o login e a datahora da nova versão. Quando se faz check in, o ficheiro pode permanecer ou não checked
out.
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
vii. A qualquer momento (normalmente quando se atinge um marco significativo no
desenvolvimento), um utilizador com privilégio de escrita pode atribuir um label à versão
actual de todos os ficheiros de um projecto (normalmente será um número de versão com
significado para o utilizador).
viii. A qualquer momento, o utilizador pode obter uma cópia para leitura da última versão de
um ficheiro guardado no SCV.
ix. O SCV permite ao utilizador visualizar a história de versões de qualquer ficheiro, com o
número interno de versão, login, data-hora e label de cada versão, e obter uma cópia para
leitura de qualquer versão antiga.
x. O SCV permite ao utilizador visualizar as diferenças (linhas inseridas, eliminadas ou
modificadas) entre duas versões de um ficheiro de texto, sejam elas duas versões guardadas
na base de dados interna ou a última versão guardada na base de dados interna e a versão
que se encontra actualmente na pasta de trabalho.
xi. O SCV permite a um utilizador com privilégio de escrita repor uma versão antiga de
qualquer ficheiro, isto é, substituir a última versão por uma versão antiga.
(3) a)
Elabore um diagrama de casos de uso em UML relativo a este sistema.
(3) b)
Elabore um diagrama de diagrama de classes em UML relativo aos objectos
manipulados por este sistema, com atributos, relações entre classes e operações.
(1) c)
Descreva, através de um diagrama de estados em UML, os estados em que se pode
encontrar um ficheiro controlado pelo SCV, as transições de estado possíveis e os
eventos que causam essas transições.
(3) d)
Descreva, na forma de um diagrama de sequência em UML, uma sequência de
utilização do SCV que demonstre o seu modo de funcionamento e potencialidades,
cobrindo a criação de uma base de dados, o registo de um utilizador, a criação de um
projecto, a adição de um ficheiro de texto ao projecto, a criação de uma nova versão do
ficheiro, a visualização da história de versões do ficheiro e a visualização das
diferenças entre a primeira versão e a nova versão.
Total: 10 em 20
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
Resolução da parte prática
a)
Criar base de dados
Administrador
Registar utilizador
Criar projecto ou sub-projecto
Adicionar ficheiro a projecto
Check out de ficheiro
Check in de ficheiro
Utilizador com acesso
para leitura e escrita
Atribuir label a projecto
Repor versão antiga de ficheiro
Obter cópia para leitura de última
versão de ficheiro
Utilizador com acesso Utilizador com
só para leitura acesso para leitura
Obter cópia para leitura de versão
antiga de ficheiro
Visualizar diferenças entre duas
versões de ficheiro
Visualizar história de versões de
ficheiro
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
b)
Notas:
1) Uma operação de criação de um objecto a partir doutro pode ser colocada na classe do 1º
objecto (como "static") ou do 2ª (como não "static").
2) Incluíram-se apenas as operações de acesso a objectos (não interactivas) de suporte às
operações interactivas referidas no enunciado.
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Rua Dr. Roberto Frias – 4200-465 PORTO - PORTUGAL
Telefone: + 351 22 5081400; Fax: + 351 22 5081441; Endereço electrónico: [email protected]
LEIC / LEEC
c)
check_in[ permanece_checked_out ]
check_out
adicionar_ficheiro
Normal
Ckecked
Out
check_in[ não permanece_checked_out ]
d)
: SCV
: Utilizador com acesso
para leitura e escrita
: Administrador
cria base de dados
regista utilizador
faz login
cria projecto
adiciona ficheiro de texto a projecto
faz check out de ficheiro
fornece cópia de ficheiro
faz check in de ficheiro
pede história de versões de ficheiro
devolve história de versões de ficheiro
pede diferenças entre versões
devolve diferenças entre versões
Download