Durante a fase de teste de um software desenvolvido para um ...

Próximas questões
Com base no mesmo assunto
Q853983 Engenharia de Software

Durante a fase de teste de um software desenvolvido para um sistema em tempo real que usa memória compartilhada, um Analista de Sistemas verificou que, apesar de seus componentes já terem sido testados de modo individual e terem tido todos os erros corrigidos, ele não funcionava como deveria, de acordo com sua especificação. O Analista realizou, então, um teste de interface que conseguiu detectar o erro. O motivo era que o produtor e o consumidor de dados estavam operando em velocidades diferentes e o consumidor estava acessando informação desatualizada, pois o produtor da informação não atualizava as informações da interface compartilhada.


Na Engenharia de Software, o tipo de teste de interface e o erro detectado são denominados, correta e respectivamente, interface de

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A - passagem de mensagem e erro de timing.

Para solucionar essa questão, é necessário entender os conceitos de testes de interface e problemas comuns associados a eles em sistemas de software. Em sistemas que utilizam memória compartilhada, é comum a ocorrência de erros de timing devido à sincronização imprecisa entre os produtores e consumidores de dados.

A resposta correta é a letra A porque o teste de interface realizado para detectar o erro envolveu a passagem de mensagem entre componentes do sistema. Neste contexto, a passagem de mensagem se refere à forma como os dados são transferidos e sincronizados entre diferentes partes do sistema que compartilham uma interface comum. O erro de timing mencionado é uma situação onde o consumo de informações ocorre em um ritmo incompatível com a produção, levando ao acesso de dados desatualizados, justamente o problema encontrado pelo Analista de Sistemas.

Compreender esses conceitos é essencial para diagnóstico e resolução de problemas em sistemas de software, principalmente em ambientes de tempo real, onde a precisão e a sincronia são críticas para o funcionamento adequado do sistema.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Interface de:

Parâmetro: são interfaces nas quais as referências de dados/função são passadas de um componente para outro. Ex: métodos de um objeto.
Memória compartilhada: são interfaces nas quais um bloco de memória é compartilhado entre os componentes. Ex: sistemas embutidos.
Procedimento: são interfaces nas quais um componente encapsula um conjunto de procedimentos que podem ser chamados por outros componentes. Ex: componentes reusáveis.
Passagem de Mensagem: são interfaces nas quais um componente solicita um serviço de outro, passando-lhe uma mensagem.

Classes de Erros:

Mau uso de interface:
Um componente chama outro e comete erro no uso de sua interface. Comum nas interfaces de parâmetro.
Mau entendimento da interface: Um componente chamador desconhece a especificação da interface chamada.
Timing: Eles ocorrem em sistemas em tempo real que usam memória compartilhada ou uma interface de passagem de mensagem. Em que o produtor e consumidor operam em velocidades diferentes.

GAB: Letra A
Fonte: Sommerville 9ª edição.
 

Existem diferentes tipos de interface entre os componentes de programa e, consequentemente, diferentes tipos de erros de interface que podem ocorrer:

1. Interfaces de parâmetro. São as interfaces nas quais as referências de dados ou, às vezes, de função, são passadas de um componente para outro. Métodos de um objeto têm uma interface de parâmetro.

2. Interfaces de memória compartilhada. São as interfaces nas quais um bloco de memória é compartilhado entre os componentes. Os dados são colocados na memória por um subsistema e recuperados a partir daí por outros subsistemas. Esse tipo de interface é frequentemente usado em sistemas embutidos, em que os sensores criam  dados que são recuperados e processados por outros componentes do sistema.

3. Interfaces de procedimento. São as interfaces nas quais um componente encapsula um conjunto de procedimentos que podem ser chamados por outros componentes. Objetos e componentes reusáveis têm esse tipo de interface.
 

4. Interface de passagem de mensagem. São as interfaces nas quais um componente solicita um serviço de outro componente, passando-lhe uma mensagem. Uma mensagem de retorno inclui os resultados da execução do serviço. Alguns sistemas orientados a objetos têm esse tipo de interface, como nos sistemas cliente-servidor. Erros de interface são uma das formas mais comuns de erros em sistemas complexos 

(erros) Classificados em:  [ MUITO IMPORTANTE CAIU 2X FCC]
• Mau uso de interface. Um componente chamador chama outro componente e comete um erro no uso de sua interface. Esse tipo de erro é comum com interfaces de parâmetro, em que os parâmetros podem ser de tipo errado ou ser passados na ordem errada, ou o número errado de parâmetros pode ser passado.

• Mau-entendimento de interface. Um componente chamador desconhece a especificação da interface do componente chamado e faz suposições sobre seu comportamento. O componente chamado não se comporta conforme o esperado, causando um comportamento inesperado no componente de chamada. 
Por exemplo, um método de busca binária pode ser chamado com um parâmetro que é um vetor não ordenado. A busca então falharia. 

*• Erros de timing.* Eles ocorrem em sistemas em tempo real que usam uma memória compartilhada ou uma interface de passagem de mensagens. O produtor e o consumidor de dados podem operar em velocidades diferentes. A menos que se tome um cuidado especial no projeto da interface, o consumidor pode acessar uma informação desatualizada, porque o produtor da informação não atualizou as informações da interface compartilhada.
 

Fonte: Sommerville 9ª edição.

A) Certa, a questão pede o nome dos testes

E) Errei marcando aqui por que tinha entendido que era a ordem dos erros e não o nome. Falta de atenção na leitura.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo