Você está na página 1de 10

Universidade do Algarve

Faculdade de Ciências e Tecnologia


Exame de Época de Recurso, 26 de junho de 2014
Engenharia de Software

Nome: Nº:

• Exame sem consulta (cotação 200 pontos)


• Duração máxima do exame: 3 horas
• Nas questões de resposta fechada, deve assinalar a sua escolha com
uma cruz (X) no quadrado correspondente

1. (40 pontos) Classifique como verdadeiras (V) ou falsas (F) as afirmações seguintes.
V F
£ £ Um protótipo é construído pelo programador e avaliado pelo cliente, o
objectivo é refinar os requisitos do sistema.

£ £ O processo de desenvolvimento de software define um conjunto de


atividades, as quais devem satisfazer as necessidades de diferentes tipos de
projeto.

£ £ Durante cada iteração do projeto, os riscos técnicos e de gestão são


avaliados, para verificar se é possível completar o projeto, de acordo com
as funcionalidades exigidas, nos limites aceitáveis para os custos e prazos.

£ £ No modelo em Espiral, qualquer disciplina deve terminar antes da próxima


disciplina avançar.

£ £ O RUP (Rational Unified Process) é um processo de desenvolvimento em


cascata, guiado por casos de utilização e centrado na arquitetura.

£ £ As principais disciplinas do RUP são: modelação de negócio, requisitos,


análise e desenho, implementação, testes e instalação. As disciplinas de
suporte são: gestão de projeto, gestão de configuração e alterações e
definição do âmbito.

£ £ O ICONIX consiste na produção incremental e em paralelo de um


conjunto de artefactos que retratam as visões dinâmica e estática de um
sistema, privilegiando a “rastreabilidade” e a robustez.

£ £ O ICONIX não distingue explicitamente um requisito de um caso de


utilização.

£ £ Algumas das práticas do XP (extreme programming) são: jogo de


planeamento (Planning Game), releases pequenas, metáfora que explica o
sistema (System Metaphor), desenho simples, desenvolvimento conduzido
por testes e refatorização (Refactoring).
V F
£ £ No DSDM, o trabalho é organizado em “sprints” baseando-se num
“backlog” de requisitos existentes.

£ £ Os requisitos do utilizador são definidos através de linguagem natural,


tabelas e diagramas, para serem compreendidos apenas pelo programador.

£ £ Em princípio, os requisitos devem declarar o que o sistema deveria fazer e


o desenho deve descrever como se faz.

£ £ O conjunto de tarefas de um projeto deve sobrecarregar a equipa com


trabalho desnecessário.

£ £ Os utilizadores do documento de requisitos são: os clientes do sistema,


gestores, engenheiros do sistema, engenheiros de testes do sistema e
engenheiros de manutenção do sistema.

£ £ As atividades comuns a todos os processos de engenharia de requisitos são:


levantamento de requisitos, análise de requisitos, validação de modelos e
gestão de risco.

£ £ Algumas das técnicas para validação de requisitos são: revisão de


requisitos, prototipagem e geração de casos de testes.

£ £ Os projetos de desenvolvimento de software apresentam dificuldades


quando o âmbito do produto está mal definido.

£ £ O conjunto de atividades depende do tipo de projeto e do grau de rigor


aplicado pelos elementos da equipa de projeto na realização das suas
atividades.

£ £ As métricas do projeto permitem maximizar o calendário de


desenvolvimento, realizando os ajustes necessário de forma a evitar atrasos
e a aumentar problemas e riscos potenciais.

£ £ O grupo de garantia da qualidade do software (SQA) participa no


desenvolvimento do processo de software aplicado no projeto.

2. (15 pontos) Escolha um dos modelos de processos indicados na tabela seguinte para
completar as frases. Note que cada modelo poderá ser usado zero ou mais vezes.

1. Modelo em Cascata 5. Desenvolvimento Rápido de Aplicações (RAD)


2. Modelo em V 6. Modelo em Espiral
3. Modelo Iterativo e Incremental 7. Modelo Formal
4. Prototipagem 8. Modelo de Reutilização de Componentes
No sector de planeamento do ___________________, o plano de gestão detalhado é criado e
os riscos associados são identificados. No ___________________, a descoberta e correção de
ambiguidades, incompletude e inconsistências no sistema podem ser executadas com maior
facilidade através de análise matemática. Por outro lado, o ___________________________
envolve um refinamento e alargamento sucessivo do sistema, bem como da sua qualidade,
detalhe e âmbito.
No _______________ devido à sua natureza sequencial, todas as disciplinas ocorrem de
acordo com uma sucessão predefinida. Em relação a este modelo, o _______________
melhora as estratégias de testes.

3.(15 pontos) Classifique as seguintes afirmações considerando dois critérios:


1. Processos tradicionais ou “pesados”
2. Processos ágeis ou “leves”

£ Produção de extensa documentação


£ XP é o mais popular
£ Ênfase na entrega rápida de software que satisfaz o cliente
£ Comunicação e colaboração entre os elementos da equipa e o cliente
£ Esses processos seguiam o modelo em cascata, burocrático, lento e difícil de
lidar com a alteração de requisitos.
£ Algumas das atividades realizadas não estão diretamente relacionadas com o
produto de software que é desenvolvido
£ Reconhecimento que mudança representa oportunidade
£ Forte formalismo de gestão de projeto
£ Em intervalos regulares, a equipa reflete como é que se pode tornar mais
eficaz, de forma a afinar e ajustar o seu comportamento

4. (15 pontos) Um estudante do último ano de engenharia informática já trabalhou no


departamento de TIC de uma companhia de seguros como analista de suporte e, depois,
como administrador de rede. No ano de estágio e tendo em consideração que a empresa viu
as TIC como uma vantagem de negócio num sector competitivo muito dinâmico e
agressivo. O projeto que o aluno se propõe fazer no seu último ano terá a companhia de
seguros como um cliente. O projeto proposto envolve o levantamento de requisitos de uma
aplicação que regista detalhes de pedidos de mudança para sistemas operacionais feitas
pelos utilizadores e, de seguida, acompanha o progresso subsequente a essa mudança.
Depois de ter obtido os requisitos, o aluno deverá fazer o desenho do sistema e depois
deverá implementá-lo.

Identifique pelo menos 6 riscos potenciais (em relação a atores, estrutura, tecnologia, tarefa
e suas combinações) no projeto proposto e que o aluno deverá ter em conta.
5. As especificações que se seguem descrevem as principais funcionalidades de um sistema
de gestão de salas.

Uma universidade deseja implementar uma aplicação Web para permitir aos seus funcionários
verificar a disponibilidade e efetuar reservar de salas. A universidade tem atualmente 30
edifícios. Os vários edifícios têm tempos de abertura diferentes. Por exemplo, alguns edifícios
estão abertos das 8:00 às 18:00, enquanto outros estão abertos das 8:00 às 20:00. Um edifício
pode abrir em horários diferentes em dias diferentes. Por exemplo, um edifício pode abrir das
8:00 às 20:00 de segunda a sexta-feira, e das 8:00 às 14:00 no sábado e no domingo. Quando
um edifício é aberto, qualquer uma das suas salas podem ser utilizada.
Por uma questão de uniformidade, as reservas serão sempre feita a partir de "um quarto depois
da hora", em horas pares. Por exemplo, um quarto pode ser reservado a partir das 8:15, 10:15,
12:15, etc. Portanto, não é possível reservar um quarto a partir das 17:15, nem às 10:00. Ao
reservar uma sala, os funcionários não precisam de especificar o tempo do fim da reserva. Em
vez disso, presume-se que irão sempre utilizar a sala durante 2 horas. Então, se um elemento
reserva uma sala a partir de 16:15, presume-se que vai usá-la até às 18:15.
Cada sala tem uma determinada capacidade. A capacidade de uma sala é a quantidade máxima
de pessoas que podem estar sentadas naquela sala. As salas mais pequenas têm uma
capacidade de 20, e as maiores têm uma capacidade de 250. Por exemplo, um dos edifícios tem
4 salas com capacidade para 20 pessoas, 6 salas com capacidade para 60 pessoas, 2 salas com
capacidade para 100 pessoas, e uma sala com capacidade para 250 pessoas.

a) (20 pontos) Apresente o diagrama de Casos de Utilização para o sistema de gestão de salas.
b) (10 pontos) Baseado na especificação sistema de gestão de salas, identifique um requisito
funcional do sistema e apresente a sua descrição em linguagem estruturada.

Requisito
Função
Descrição
Entradas
Fonte
Saídas
Destino
Acção:

Pré-Condição
Pós-condição
Efeitos
colaterais

8. Considere uma aplicação Web muito simples que permite criar e gerir faturas. A aplicação
proporciona as seguintes funcionalidades:
• permite aos utilizadores criar, editar, apagar e visualizar um registo de cliente. Um registo
de cliente contém informações suficientes para produzir uma fatura para este cliente.
• permite aos utilizadores criar, editar, apagar e visualizar faturas. Quando uma fatura é
criada, o utilizador pode procurar o cliente pelo nome e adicionar os detalhes do cliente
para a fatura. Em seguida, o utilizador pode inserir linhas na factura. A aplicação calcula os
totais automaticamente.
• permite aos utilizadores recuperar uma fatura por número e marcar a factura paga.
• permite que os utilizadores recuperem todas as faturas emitidas durante um determinado
período (datas de início e fim). Quando essa consulta é executada, a aplicação calcula e
apresenta (em complemento à lista de números de fatura), o montante total facturado
durante o período e o montante total já recebido (pago) para faturas emitidas durante o
período.
a) (10 pontos) Apresente o desenho conceptual para o sistema (aplicação Web) identificando
os componentes.

b) (20 pontos) Calcule os pontos-função para a aplicação Web


7. Considere o projecto descrito pela seguinte tabela, onde os tempos são em semanas e o
custo em euros. O Custo de “Crash” é o custo de reduzir a duração das actividades do tempo
normal para o mínimo.

Atividade Predecessor   Tempo   Mínimo   Custo   Custo  de  


Normal Tempo Normal “Crash”  
A   12 7 3000 5000  
B   A   4 3 4000 7000  
C B   8 5 2000 3500  
D B,C   12 9 50000 71000  
E   D   4 1 500 1100  
F D,E   4 1 500 1100  
G   F   4   3   15000   22000  

a) (15 pontos) Desenhe um diagrama PERT (rede de tarefas) para o projecto com base nas
tarefas apresentadas na tabela e determine o caminho crítico.
b) (20 pontos) Suponha que o gestor tem de terminar o projeto em 42 semanas e deseja saber
qual o custo adicional de completar o projeto nesse tempo.
9. (20 pontos) Um programador está a desenvolver um pequeno sistema para bilheteiras com
quatro módulo. Estima-se que cada módulo irá demorar o mesmo tempo e os custos serão
semelhantes. O programador estima que o projeto levará quatro semana a concluir e seu
orçamento, incluindo uma reserva de contingência é de 4000 euros.
Após 3 semanas, decidiu fazer o cálculo de valor ganho, a fim de determinar o progresso
do projeto. Determinou que a partir do final da terceira semana, os custos totais até ao
momento são de 3.500. e 70% do projeto está concluído.

Determine a variância do custo, o índice de desempenho de custo e o índice de


desempenho do plano para este projeto. Comente as competências deste programador.
Fórmulas e Tabelas
A tabela ilustra um exemplo de factores de ponderação atribuídos aos pontos de função não
ajustados.

Simples Médio Complexo


Saídas 4 5 7
Consultas 3 4 6
Entradas 3 4 6
Arquivos 7 10 15
Interfaces 5 7 10

Tabela de Factores de Ajuste PF = contagem total x [0,65+0,01 x ∑ ( Fi )]

Cópia de segurança e recuperação DRE = E /(E + D)


Comunicações de dados
NOP = (pontos por objecto) x [(100- % de
Processo distribuído reuso)/100]
Desempenho crítico PROD = NOP/pessoa-mês
Configuração “pesada”
Esforço estimado = NOP/PROD
Entrada de dados on-line
esforço = coeficiente de afinação *
Transacções de entrada com múltiplos ecrãs
tamanhoexponente
Ficheiros mestres actualizados on-line
E = [LOC x B0.333/P]3 x (1/t4)
Complexidade dos valores do domínio da
informação
Complexidade do processamento interno
custo esperado = ∑ (probabilidade do
caminho)i x (custo estimado)i
Código desenhado para a reutilização
% planeada para conclusão = BCWS/BAC
Conversão/instalação de desenho
Múltiplas instalações % completa = BCWP/BAC

Aplicação desenhada para facilitar SPI = BCWP / BCWS


alterações
SV= BCWP- BCWS

CPI = BCWP/ACWP

CV= BCWP- ACWP

RE = P x C

Você também pode gostar