ENADE 2019: Rigidez é a tendência de um software ser difícil de modificar

ENADE 2019: Rigidez é a tendência de um software ser difícil de modificar. Cada mudança causa uma cascata de mudanças subsequentes em módulo...
ENADE 2019: Rigidez é a tendência de um software ser difícil de modificar. Cada mudança causa uma cascata de mudanças subsequentes em módulos dependentes. O trecho de código a seguir faz parte de um sistema com suporte à comunicação entre diferentes dispositivos de comunicação via rádio (modems):

1 struct Modem { enum Type {hayes, courrier, ernie) type; };
2 struct Hayes {
3        Modem::Type type;
4        // Detalhes do modem tipo Hayes
5 };
6 struct Courrier {
7         Modem::Type type;
8         // Detalhes do modem tipo Courrier
9 };
10 struct Ernie {
11         Modem::Type type;
12         // Detalhes do modem tipo Ernie
13 };
14 void LogOn(Modem& m, string& frq, string& user, string& pw) {
15         if (m.type == Modem::hayes)
16             OpenHayesChannel((Hayes&)m, frq);
17         else OpenCourrierChannel((Courrier&)m, frq);
18         // depois de conectado, enviar user, pw, etc.
19         // (continua)
Disponível em: <http://www.staff.cs.utu.fi/staff/jouni.smed/
doos_06/material/DesignPrinciplesAndPatterns.pdf>.
Acesso em: 15 jun. 2019 (adaptado).

Nesse trecho, cada tipo de modem tem suas particularidades e foram criadas estruturas específicas para cada tipo (linhas 2 a 13). Um "enumeration" (linha 1) é utilizado para identificar o tipo de modem.

O procedimento LogOn (linhas 14 a 19) é responsável por realizar a conexão a um modem. Dados o tipo do modem (m), a frequência (frq), o nome de usuário (user) e a senha (pw), inicialmente, é feita a abertura do canal de comunicação, que corresponde a uma chamada específica para cada tipo de modem (linhas 15 a 17). Como os modems do tipo Courrier e Ernie são similares em termos de abertura de canal, o programador decidiu otimizar o código, utilizando a função do modem Courrier para ambos (OpenCourrierChannel - linha 17). Uma vez conectado, o código continua o processo de LogOn na linha 18 em diante.

Nesse projeto do código um sintoma de rigidez é que

A) se o suporte ao modem do tipo Ernie for removido do sistema, será necessário remover a estrutura Ernie do código.

B) se um novo tipo de modem for adicionado, será necessário alterar o número de parâmetros definidos no procedimento LogOn.

C) se um novo tipo de modem for adicionado, é necessário copiar e colar todo o código de uma das outras estruturas de modems para incluir novos detalhes.

D) se a política de comunicação do modem do tipo Hayes sofrer alteração, pode ser necessário alterar o procedimento OpenHayesChannel e a estrutura Hayes.

E) se a política de comunicação do modem do tipo Courrier sofrer alteração, pode ser necessário alterar OpenCourrierChannel e LogOn e criar um novo procedimento OpenErnieChannel.

QUESTÃO ANTERIOR:
ENADE 2019: Pesquisadores vêm trabalhando na possibilidade de microprocessadores comerciais off-the-shelf terem sido adquiridos com um backdoor utilizado para desativá-los no momento oportuno, ou seja, ataques a sistemas cibernéticos poderiam ser intencionalmente ativados por meio de um gatilho (trigger), em momento definido pelo atacante.

GABARITO:
E) se a política de comunicação do modem do tipo Courrier sofrer alteração, pode ser necessário alterar OpenCourrierChannel e LogOn e criar um novo procedimento OpenErnieChannel.

PRÓXIMA QUESTÃO:
- ENADE 2019: Uma empresa de análise de mercado de entregas de encomendas foi contratada para selecionar aquela que prestaria serviço para seu cliente e fez um levantamento de dados do setor nos últimos 10 anos, produzindo um relatório com a tabela a seguir, que apresenta 5 principais fornecedores em potencial para o serviço de entrega de encomendas.

QUESTÃO DISPONÍVEL EM:
Prova do ENADE 2019 Engenharia da Computação com Gabarito

COMENTÁRIOS

Todas as Postagens Não foram encontradas postagens VEJA TODOS Leia Mais Resposta Cancelar resposta Deletar Por Home PAGINAS POSTS Veja todos RECOMENDADOS PARA VOCÊ Tudo Sobre ARQUIVOS BUSCAR TODOS OS POSTS Nenhuma postagem foi encontrada Voltar para Home Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Sep Out Nov Dez Agora mesmo 1 minuto atrás $$1$$ minutos agora 1 hora atrás $$1$$ horas atrás Ontem $$1$$ dias atrás $$1$$ semanas atrás mais de 5 semanas atrás Seguidores Seguir CONTEÚDO PREMIUM BLOQUEADO PASSO 1: Compartilhar em uma rede social PASSO 2: Clique no link na sua rede social Copiar todo o código Selecionar todo o código Todos os códigos foram copiados Não é possível copiar os códigos / textos, pressione [CTRL] + [C] para copiar Tabela de conteúdo