Você está na página 1de 35

Engenharia de Software II

Aula 14
Revisão

http://www.ic.uff.br/~bianca/engsoft2/
Aula 14 - 07/05/2006 1
Processo de Software
• Qual é a diferença entre uma atividade de
arcabouço e uma atividade guarda chuva?
• As atividades guarda-chuva são aplicáveis
durante todo o processo de software.
– Exemplos: medição, gestão de risco
• As atividades de arcabouço são aplicáveis
somente durante certas fases do processo.
– Exemplos: planejamento, modelagem, construção

Aula 14 - 07/05/2006 2
Processo de Software
• Quais são os estágios do modelo de
processos em cascata?
• Comunicação, planejamento, modelagem,
construção e implantação.
• Por que o modelo em cascata algumas vezes
falha?
• Três motivos principais:
– É difícil de acomodar modificações à medida que o
projeto prossegue.
– É difícil estabelecer todos os requisitos inicialmente.
– Uma versão executável do programa só fica
disponível no final do processo.
Aula 14 - 07/05/2006 3
Processo de Software
• O que é o “núcleo de produto” no
modelo incremental?
• É o primeiro incremento, em que todos os
requisitos básicos estão satisfeitos, mas
muitas outras características
suplementares (conhecidas ou
desconhecidas) não estão.

Aula 14 - 07/05/2006 4
Processo de Software
• Em que situações o modelo RAD é
apropriado?
• O modelo RAD é apropriado em situações
onde:
– Os requisitos são bem compreendidos.
– A aplicação pode ser modularizada.
– Há recursos humanos suficientes para criar
um número adequado de equipes RAD.

Aula 14 - 07/05/2006 5
Processo de Software
• Quais são as desvantagens do modelo
RAD?
• As desvantagens principais são as
seguintes:
– Exige recursos humanos suficientes para
criar um número adequado de equipes RAD.
– Exige comprometimento de desenvolvedores
e clientes com os prazos curtos.
– Exige que o projeto seja modularizável.

Aula 14 - 07/05/2006 6
Processo de Software
• Para que serve um protótipo?
• Serve como um mecanismo de
identificação dos requisitos do software.
Concentra-se na representação dos
aspectos do software que são visíveis
para o cliente.

Aula 14 - 07/05/2006 7
Processo de Software
• Por que o modelo de métodos formais que
garante a correção do software não é
amplamente utilizado? Cite dois motivos.
• Os três motivos principais são:
– O desenvolvimento de modelos formais é muito lento
e custoso.
– É necessário um treinamento extensivo para os
desenvolvedores.
– É difícil usar os modelos na comunicação com o
cliente.

Aula 14 - 07/05/2006 8
Processo de Software
• Processo unificado e UML são a
mesma coisa? Responda sim ou não e
justifique sua resposta.
• Não. UML é uma linguagem de
modelagem que é amplamente utilizada
na modelagem de análise e projeto. O
processo unificado é um arcabouço de
processo que utiliza a UML como
linguagem de modelagem.

Aula 14 - 07/05/2006 9
Processo de Software
• Qual é a diferença entre o Documento
de Visão e o Caso de Negócio Inicial no
Processo Unificado?
• O documento de visão dá uma visão geral
dos requerimentos e das características
mais importantes do software.
• O caso de negócio inicial fornece as
informações necessárias para decidir se
vale a pena investir no projeto.
Aula 14 - 07/05/2006 10
Processo de Software
• Qual é o principal foco do desenvolvimento
ágil?
• O foco principal é a entrega contínua de
software funcionando.
• No processo XP, os testes de unidade devem
ser criados antes ou depois do código? Por
quê?
• Antes. Porque uma vez criados os testes
unitários, o desenvolvedor estará melhor
preparado para focalizar o que precisa ser
implementado. Além disso, assim que o código
fica pronto ele pode ser submetido ao teste.
Aula 14 - 07/05/2006 11
Processo de Software
• O que é a refabricação no processo XP?
• A refabricação é o processo de modificar um
software de tal modo que não se altere o
comportamento externo do código, mas
aperfeiçoe a estrutura interna.
• Dê duas vantagens e desvantagens de
programação em pares.
• Vantagens: solução de problemas em tempo
real e garantia de qualidade em tempo real.
• Desvantagens: necessidade de bom convívio
dos pares e maior custo de mão-de-obra.

Aula 14 - 07/05/2006 12
Testes
• Qual é a diferença entre verificação e
validação?
• A verificação garante que o software
implementa corretamente uma função
específica.
• A validação garante que o software
construído corresponde aos requisitos do
cliente.

Aula 14 - 07/05/2006 13
Testes
• Qual é a vantagem de se criar um ITG
(grupo independente de teste)?
• Um ITG não tem o “conflito de interesses”
que os desenvolvedores do software
podem ter e assim podem testar o
software de maneira mais imparcial.

Aula 14 - 07/05/2006 14
Testes
• Quais são os quatro passos da
estratégia global de teste de software?
• Os quatro passos são:
– Teste de unidade
– Teste de integração
– Teste de validação
– Teste de sistema

Aula 14 - 07/05/2006 15
Testes
• Dê dois exemplos de erros comumente
encontrados no teste de unidade.
• Inicialização incorreta, precedência aritmética
incorreta, comparação incorreta de variáveis,
terminação de ciclo inadequada, etc.
• O que é teste de regressão?
• É a reexecução de algum subconjunto de testes
que já foi conduzido para garantir que as
modificações não gerem efeitos colaterais.

Aula 14 - 07/05/2006 16
Testes
• O que é um pseudo-controlador (driver)?
• É um programa que recebe os dados do caso
de teste, passa os dados ao componte a ser
testado e imprime os resultados relevantes.
• O que é um pseudo-controlado (stub)?
• É um programa que substitui módulos que são
chamados pelo componente a ser testado. Ele
tem a mesma interface do módulo sendo
substituído, mas com o mínimo de
funcionalidade.

Aula 14 - 07/05/2006 17
Testes
• Por que um módulo altamente
acoplado é difícil de submeter ao teste
de unidade?
• Porque é difícil isolar a funcionalidade a
ser testada. Nesse caso,
pseudocontrolados simples não poderão
substituir os módulos chamados tornando
o teste de unidade quase impossível.

Aula 14 - 07/05/2006 18
Testes
• O que é a abordagem de integração
big-bang? Por que ela deve ser
evitada?
• Na integração big-bang todos os
componente são integrados de uma vez.
Ela deve ser evitada porque torna difícil
isolar e corrigir erros.

Aula 14 - 07/05/2006 19
Testes
• Dê uma vantagem e uma desvantagem do teste de
integração ascendente.
• Vantagem: elimina a necessidade de pseudo-
controlados complexos.
• Desvantagem: o programa principal só é testado no
final.
• Dê uma vantagem e uma desvantagem do teste de
integração descendente.
• Vantagem: demonstração de capacidade funcional logo
no início.
• Desvantagem: necessidade de criação de pseudo-
controlados.
Aula 14 - 07/05/2006 20
Testes
• O que é um “módulo crítico” e por que
devemos identificá-lo?
• É um módulo que aborda vários
requisitos, tem um alto nível de controle, é
complexo OU tem requisitos de
desempenho. Devemos identificá-lo para
priorizá-lo nos testes.

Aula 14 - 07/05/2006 21
Testes
• Em que tipo de situação os testes de
aceitação são apropriados?
• Nas situações em que o software é construído
sob encomenda para um determinado cliente.
• Em que tipo de situação os testes alfa e beta
são apropriados?
• Nas situações em que o software é
desenvolvido como um produto a ser utilizado
por vários clientes.

Aula 14 - 07/05/2006 22
Testes
• O que é o teste de estresse?
• É um teste que executa um sistema de tal forma
que demande recursos em quantidade,
freqüência ou volume anormais.
• O que é depuração?
• A depuração é o processo de encontrar a causa
de um erro e corrigí-lo.
• O que um programador deve fazer depois de
tentar depurar um defeito no programa por
mais de uma hora?
• Deve pedir ajuda a outro programador.
Aula 14 - 07/05/2006 23
Testes
• O que deve ser feito depois que uma causa
provável é encontrada para um defeito de
software?
• Testes adicionais para isolar a conexão da
causa com o sintoma.
• O que deve ser feito depois da correção de
um defeito de software?
• Deve-se testar o software novamente para se
assegurar de que o defeito foi realmente
corrigido e que outros defeitos não foram
introduzidos.

Aula 14 - 07/05/2006 24
Testes
• Por que não é possível realizar testes exaustivos?
• Porque o número de caminhos lógicos de programas
reais é muito grande, impossibilitando o teste de todas
as combinações possíveis de caminhos.
• Qual é a diferença entre o teste caixa preta e o teste
caixa branca?
• O teste caixa preta ignora a estrutura interna do
programa, testando apenas a entrada e a saída.
• O teste caixa branca é baseado em um exame rigoroso
da estrutura interna.

Aula 14 - 07/05/2006 25
Testes
• Transforme o fluxograma
em um grafo de fluxo.

Aula 14 - 07/05/2006 26
A
Testes B

• Qual é a complexidade C
ciclomática? D
• V(G) = E – N + 2 = 6 – 5 + 2 = 3 E
• V(G) = 3 regiões
• V(G) = P + 1 = 2 + 1 = 3
• Dê um conjunto base de caminhos
independentes.
• A-B-C-E
• A-C-D-E
Aula 14 - 07/05/2006 27
Testes
• Prepare casos de teste
para exercitar cada
caminho independente.
• A-B-C-E
– Entrada: x = 20
– Saída: x = 10
• A-C-D-E
– Entrada: x=3
– Saída: x=3
Aula 14 - 07/05/2006 28
Testes
• Como deve ser feito o teste de ciclos simples?
• Se n é o número máximo de iterações, deve-se testar:
– Nenhuma passagem pelo ciclo
– Apenas uma passagem pelo ciclo
– Duas passagens pelo ciclo
– m passagens pelo ciclo onde m < n.
– n-1, n e n+1 passagens pelo ciclo
• Como deve ser feito o teste de ciclos aninhados?
• Os testes devem ser conduzidos do ciclo mais interno
para o ciclo mais externo. Quando os ciclos internos são
testados, os ciclos externos devem ser mantidos no
número mínimo de repetições. Quando os ciclos
externos são testados, os ciclos internos devem ser
mantidos em valores típicos.
Aula 14 - 07/05/2006 29
Testes
• Se uma condição de entrada especifica
um intervalo válido, quantas classes de
equivalência são necessárias para
testar essa condição?
• Três. Uma correspondente ao intervalo
válido, outra correspondente a valores
inválidos menores que os do intervalo e
outras correspondente a valores inválidos
maiores que os do intervalo.

Aula 14 - 07/05/2006 30
Testes
• O que é análise de valor limite?
• A análise de valor limite é uma técnica de teste
de software que focaliza os testes nos limites
das classes de equivalência.
• Que falhas são detectadas pelo teste de
matriz ortogonal e não por testes de modo
singular?
• Falhas de modo duplo, isto é, falhas que
involvem uma combinação de dois parâmetros.

Aula 14 - 07/05/2006 31
Métricas
• Quais são os cinco passos de um
processo de medição efetivo?
• Formulação, coleta, análise, interpretação
e realimentação.
• Para que serve o paradigma GQM
(Objetivo/Questão/Métrica)?
• Serve para identificar métricas relevantes
para qualquer parte do processo de
software.
Aula 14 - 07/05/2006 32
Métricas
• Na métrica ponto por função, qual é a diferença
entre uma entrada externa e uma consulta externa?
• A entrada externa geralmente modifica algum arquivo
lógico interno e fornece informação de controle.
• A consulta externa resulta na geração de uma saída
imediata e não modifica nenhum arquivo.
• Dê dois exemplos de fatores de ajuste na métrica
ponto por função.
• O sistema requer salvamento e recuperação.
• O desempenho é crítico.
• Existem funções de processamento distribuído.

Aula 14 - 07/05/2006 33
Métricas
• Por que o fan-out é um indicador da
complexidade de um projeto
arquitetural?
• Porque ele indica o nível de acoplamento
de uma arquitetura.

Aula 14 - 07/05/2006 34
Métricas
• Explique cada uma das métricas CK abaixo,
justificando porque ela mede complexidade:
• Acoplamento entre as classes de objetos.
• É o número de classes que colaboram com uma
determinada classe. Quanto maior o número de
colaborações, mais complicadas são as modificações e
os testes.
• Falta de coesão de métodos
• É o número de métodos que têm acesso a um ou mais
dos mesmos atributos. Quanto maior a falta de coesão,
mais difícil é de se isolar os métodos para testes e
modificações.

Aula 14 - 07/05/2006 35

Você também pode gostar