Múltiplas Teste 2 Flashcards

1
Q

A qualidade da mensurabilidade dos requisitos…
A) É essencial nos requisitos funcionais.
B) Permite definir a rastreabilidade entre requisitos funcionais e não-funcionais.
C) Serve para se definirem casos de teste para requisitos não-funcionais.
D) Deve-se aplicar a todos os requisitos

A

C) Serve para se definirem casos de teste para requisitos não-funcionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Considere a especificação dos requisitos não funcionais de Safety e o caso da bomba de insulina:
A) Uma árvore de faltas tem como objetivo identificar quais as possíveis formas
de reduzir o risco associado a cada uma das faltas.
B) O requisito de limitar a dose máxima de insulina que a bomba pode entregar num dia a um paciente é uma técnica de evitar o perigo (hazard avoidance).
C) O requisito de desligar a bomba de insulina quando há um alerta é uma técnica de evitar o perigo (hazard avoidance).
D) O requisito de limitar a dose máxima de insulina que a bomba pode entregar num dia a um paciente é uma técnica de limitar o dano (damage limitation).

A

D) O requisito de limitar a dose máxima de insulina que a bomba pode entregar num dia a um paciente é uma técnica de limitar o dano (damage limitation).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Considere o padrão de desenho Visitor.
A) As classes ConcreteVisitor estão fracamente ligadas às classes
ConcreteElement.
B) As classes ConcreteElement estão fracamente ligadas às classes ConcreteVisitor.
C) Existe coesão fraca da funcionalidade que visita os nós.
D) A criação de uma nova classe ConcreteVisitor obriga a alterações nas classes
ConcreteElement.

A

B) As classes ConcreteElement estão fracamente ligadas às classes ConcreteVisitor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Uma barricada permite isolar uma zona de código
A) Na interface da barricada os erros não podem ser tratados usando exceções.
B) As asserções (asserts) devem ser usadas para detetar erros na interface da
barricada.
C) Na interface da barricada os erros não podem ser tratados usando notifica-
ções.
D) Na interface da barricada deve haver programação defensiva.

A

D) Na interface da barricada deve haver programação defensiva.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Engenharia inversa é o processo pelo qual
A) A partir do código fonte de um program se extrai informação.
B) Se altera a estrutura do código fonte de um programa.
C) A partir do código fonte se modulariza o programa.
D) A partir do código fonte se gera um programa semelhante numa outra linguagem
de programação.

A

A) A partir do código fonte de um program se extrai informação.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Refactoring pode ser definido como
A) Uma técnica em que se introduz funcionalidade com suporte em testes.
B) Uma abordagem bottom-up de desenho de software.
C) Uma abordagem top-down de desenho de software.
D) Uma técnica de alteração da estrutura do código com suporte num conjunto de testes.

A

D) Uma técnica de alteração da estrutura do código com suporte num conjunto
de testes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Considere o seguinte diagrama representando a framework JUnit.
A) Os programadores devem estender a interface abstrata de TestRunner de
modo correrem os testes no contexto que pretenderem.
B) As classes TestRunner usam a framework como uma biblioteca.
C) As classes TestCase e TestSuite estendem de TestResult pois ambas necessitam
de escrever os seus resultados em objetos TestResult.
D) Test é uma classe abstrata das classes TesteCase, TestSuite e TestResult.

A

B) As classes TestRunner usam a framework como uma biblioteca.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Considerando as forças de estabilidade e progresso de uma linha de código, depois de se proceder a uma entrega
A) Deve ser apagada a linha de código onde a entrega foi preparada.
B) Deve-se manter a linha de código onde a entrega foi preparada para manter o histórico.
C) Deve-se manter a linha de código onde a entrega foi preparada para serem corrigidos os bugs que possam vir a surgir, mantendo a estabilidade.
D) Deve-se manter a linha de código onde a entrega foi preparada para serem corrigidos os bugs que possam vir a surgir, aumentando assim o progresso.

A

C) Deve-se manter a linha de código onde a entrega foi preparada para serem corrigidos os bugs que possam vir a surgir, mantendo a estabilidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A tática de desenho para segurança de evitar um único ponto de falha (avoid a single point of failure) corresponde
A) A definir diversos níveis de defesa (defense in depth) para uma falha não comprometer todo o sistema.
B) A cifrar os dados para que não possam ser lidos no caso de falhas.
C) Ter uma política explícita de segurança que considere todas as situações.
D) Validar todos os dados de entrada para que nenhum deles possa comprometer o sistema.

A

A) A definir diversos níveis de defesa (defense in depth) para uma falha não comprometer todo o sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O modelo RUP de processo de desenvolvimento de software
A) Define a arquitetura durante a etapa de elaboração.
B) Associa a cada etapa uma única atividade.
C) Dá ênfase ao aspeto de feedback rápido por parte dos utilizadores.
D) Associa a cada etapa uma entrega de funcionalidade.

A

A) Define a arquitetura durante a etapa de elaboração.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Relativamente ao processo de desenvolvimento Espiral, pode dizer-se que:
A) É um processo incremental e iterativo.
B) É um processo incremental (e não iterativo).
C) É um processo iterativo (e não incremental).
D) Não é um processo iterativo nem incremental.

A

A) É um processo incremental e iterativo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
Qual o output do programa sequinte?
public class Atribuicao {
public static void(String[] args) {
String a, b, c;
c = new String("Rato");
a = new String("Gato");
b = a;
a = new String("Cão");
c = b;
System.out.println(c);
}
}
Seleccione a opção correcta.
A) O programa não compila.
B) Executa e imprime Rato.
C) Executa e imprime Gato.
D) Executa e imprime Cão.
A

C) Executa e imprime Gato.

NÃO COMPILA TBM É ACEITE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
Qual das seguintes declarações denota correctamente uma classe que não pode ser extendida?
A) abstract class Exemplo { void teste() {}; }
B) private class Exemplo { void teste() {}; }
C) static class Exemplo { void teste() {}; }
D) final class Exemplo {void teste() {}; }
A

D) final class Exemplo {void teste() {}; }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
Qual o ouput do programa seguinte?
public class TestParameter {
public static void(String[] args) {
Integer i = 10;
Integer j = 10;
System.out.print(i == j);
System.out.print(i.equals(j));
}
}
A) truetrue
B) falsetrue
C) truefalse
D) Não compila.
A

B) falsetrue

NÃO COMPILA TBM É ACEITE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O processo de desenvolvimento em espiral é inadequado para projetos em que:
A) Os requisitos não sejam conhecidos à priori.
B) A qualidade não seja negociável.
C) O preço não seja negociável.
D) A data de término não seja negociável.

A

D) A data de término não seja negociável.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A técnica de refatorização carateriza-se por:
A) O desenvolvimento de software ser efetuado por duas fases: adicionar funcionalidade e alterar estrutura.
B) Ser fundamental para se poder efetuar testes ao código.
C) Se pensar primeiro nas abstrações e depois proceder à sua concretização.
D) Considerar que o desenho não é importante e que se deve codificar o maior número de casos possíveis.

A

A) O desenvolvimento de software ser efetuado por duas fases: adicionar funcionalidade e alterar estrutura.

17
Q

As técnicas usadas pelo método unificado para desenhar a arquitectura de software do sistema durante a etapa de elaboração são:
A) Técnicas de levantamento de requisitos.
B) Técnicas de refatorização.
C) Técnicas de cima-para-baixo (top-down)
D) Técnicas de baixo-para-cima (bottom-up) e de reforização.

A

C) Técnicas de cima-para-baixo (top-down)

18
Q

No princípio de desenho conhecido como princípio da Inversão de Dependência, preferencialmente:
A) As interfaces dependem de classes abstractas.
B) Utilizar-se a delegação em vez da herança.
C) As abstracções são representadas por classes abstract e as concretizações por classes final.
D) As concretizações não apresentam dependências entre si mas sim de abstracções comuns.

A

D) As concretizações não apresentam dependências entre si mas sim de abstracções comuns.

19
Q

O padrão de desenho conhecido como Decorator melhora a métrica de Coesão (Cohesion) pois:
A) Cada decorador tem menos métodos protected do que a solução baseada na herança.
B) Cada decorador tem menos responsabilidades por comparação com uma solução baseada na herança.
C) Cada decorador passa a implementar comportamentos mais complexo por comparação com uma solução baseada na herança.
D) Torna possível a realização de operações de refactoring do código em tempo útil.

A

B) Cada decorador tem menos responsabilidades por comparação com uma solução baseada na herança.

20
Q

O padrão de refactoring conhecido como NullObject:
A) Aumenta a Coesão porque utiliza o polimorfismo para efecutar a validação dos objectos null.
B) Diminui a Ligação porque utiliza o polimorfismo para efecutar a validação dos objectos null.
C) Aumenta a Coesão porque junta o comportamento por omissão (caso em que o objecto é null) numa única classe
D) Diminui a Ligação porque separa o comportamento por omissão (caso em que o objecto é null) no maior número possível de classes.

A

C) Aumenta a Coesão porque junta o comportamento por omissão (caso em que o objecto é null) numa única classe

21
Q

A ligação fraca entre módulos:
A) Permite reduzir o número de propagações de alterações ao código de cada um dos módulos.
B) Aumenta a coesão forte dos mesmos.
C) Verifica-se sempre que estes não partilhem variáveis globais.
D) Verifica-se sempre que estes não tenham encapsulação da sua estrutura interna.

A

A) Permite reduzir o número de propagações de alterações ao código de cada um dos módulos.

22
Q

Uma framework e uma biblioteca de software distinguem-se porque:
A) Uma framework é um desenho sem código e uma biblioteca contém uma implementação.
B) É mais complicado aprender a utilizar uma biblioteca.
C) A framework de software define um desenho para os programas que a usam.
D) A biblioteca de software é utilizada por herança.

A

C) A framework de software define um desenho para os programas que a usam.

23
Q

A utilização de asserções e a utilização de exceções distinguem-se pois:
A) Nas asserções pode ser incluído código de funcionalidade.
B) O objetivo das asserções é serem usadas para identificar casos de teste para o programa.
C) As exceções podem ser usadas quando se pretende que o programa trate de uma situação de erro.
D) As exceções devem ser usadas para implementar funcionalidade no bloco de tratamento de exceção (catch).

A

C) As exceções podem ser usadas quando se pretende que o programa trate de uma situação de erro.

24
Q

A lei de Demeter, diz que um objecto apenas deve pedir serviços aos objectos para os quais possui uma referência directa para:
A) reduzir o impacto das alterações nas associações entre classes.
B) evitar que uma classe saiba como as classes vizinhas agregam outras classes.
C) diminuir a ligação existente entre as várias classes, aumentando dessa forma
a facilidade de modificação do sistema.
D) todas as anteriores.

A

D) todas as anteriores.

25
Q

A fase de Elaboração do método unificado segue uma estratégia de definição das abstracções de cima para baixo pois:
A) identifica um número suficiente de casos de uso para deles se poder inferir abstracções estáveis.
B) identifica os casos de uso que são mais importantes para o negócio, pelo que será fácil identificar as abstracções do negócio.
C) tem como função definir a arquitectura do sistema.
D) acontece antes da fase de construção.

A

A) identifica um número suficiente de casos de uso para deles se poder inferir abstracções estáveis.

26
Q

Diz-se que os programas devem ser escritos para as pessoas pois:
A) os custos de manutenção são altos.
B) os programadores não devem ter preocupações de desempenho.
C) o código legível tem melhor desempenho.
D) as pessoas gostam de ler código.

A

A) os custos de manutenção são altos.