35
Aula 14 - 07/05/2006 1 Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/

Engenharia de Software II - Início - Instituto de …bianca/engsoft2/index_arquivos/Aula14...Aula 14 - 07/05/2006 3 Processo de Software • Quais são os estágios do modelo de processos

  • Upload
    lyhanh

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Aula 14 - 07/05/2006 1

Engenharia de Software II

Aula 14Revisão

http://www.ic.uff.br/~bianca/engsoft2/

Aula 14 - 07/05/2006 2

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 3

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 4

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 5

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 6

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 7

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 8

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 9

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 10

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 11

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 12

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 13

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 14

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 15

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

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 24

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 25

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 26

Testes

• Transforme o fluxograma em um grafo de fluxo.

A

B

D

C

E

Aula 14 - 07/05/2006 27

Testes

• Qual é a complexidade ciclomática?

• V(G) = E – N + 2 = 6 – 5 + 2 = 3

• 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

A

B

D

C

E

Aula 14 - 07/05/2006 28

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 29

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 30

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 31

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 32

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 33

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 34

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 35

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.