Baixe o app para aproveitar ainda mais
Prévia do material em texto
Name Date Copy #3 of Quiz engenharia reversa e reengenharia de de software-2015-11- 10-05-16-09 1. A substituição de sistemas legados por sistemas mais atualizados muitas vezes extrapola o escopo de utilização de técnicas de adaptação convencionais, sendo necessária a utilização de técnicas de reengenharia que abordem a reconcepção do sistema como um todo. Com referência às técnicas de reengenharia, assinale a opção correta. points: 1 Técnicas de reestruturação de código-fonte podem ser aplicadas com o auxílio de ferramentas especializadas, constituindo uma das principais formas de engenharia reversa. No ciclo de vida de um sistema, a reengenharia é um processo estritamente relacionado às fases de análise e modelagem do sistema. O processo de reengenharia de um software normalmente tem por objetivo obter um novo software, com maior qualidade que o seu precedente. A opção pela reengenharia de um software deve ser adotada somente quando os custos desse processo forem menores que os custos de manutenção corretiva e adaptativa do software. A engenharia reversa consiste em extrair diferentes níveis de abstração a partir de um código-fonte preexistente, com o objetivo de fundamentar novas implementações mais eficientes para o mesmo código-fonte. 1 2. Existem várias maneiras de se depurar (debug) programas. Algumas delas envolvem conhecimento, prática e bom senso do programador. Acerca de pontos que são importantes para depurar programas, julgue os itens a seguir. I É possível encontrar falhas nos programas por meio da reprodução do erro em testes. II Quanto maior a entrada de dados nos testes, mais simples é encontrar o problema e mais fácil é encontrar a solução da falha. III Em um programa modular, o processo de encontrar falhas requer uma menor variação de informações de entrada, de modo que o programador possa encontrar o módulo com erros. IV A passagem de parâmetros para variáveis auxiliares evita o uso de break points. V A análise estruturada é a melhor maneira de encontrar erros em programação orientada a objetos. Estão certos apenas os itens points: 1 I e II. I e III. II e V. III e IV. IV e V. 3. A respeito de mudança de software, assinale a opção correta. points: 1 A manutenção de software é um processo geral de mudanças que ocorre antes ou depois que um sistema é entregue. A manutenção corretiva para reparar defeitos de software diz respeito à mudança em um sistema para corrigir erros, que podem ser somente de codificação. Erros de projeto e de lógica não estão incluídos nessa categoria. A manutenção adaptativa para adaptar o software a mudanças ambientais se refere a mudanças de diversos tipos, como uma nova plataforma de hardware. Mudanças de sistemas operacionais ou software em geral não estão incluídas nessa categoria. A manutenção perfectiva tem como objetivo tornar o software perfeito, melhorar seu desempenho e sua manutenibilidade ou adicionar-lhe funcionalidade para satisfazer a novos requisitos. A manutenção preventiva tem como objetivo detectar e corrigir falhas latentes no produto antes que elas virem falhas efetivas. 2 4. Quanto à caracterização, a reengenharia de software é classificada como manutenção points: 1 preventiva. criptográfica. de melhoria. adaptativa. corretiva. 5. São estratégias possíveis de serem adotadas por uma organização para evolução de seus sistemas legados as apresentadas a seguir, EXCETO: points: 1 descartar o sistema completamente. substituir todo ou parte do sistema por um novo sistema. deixar o sistema sem alterações e continuar com a manutenção regular. fazer reengenharia do sistema para aprimorar sua facilidade de manutenção. realizar engenharia reversa do código do sistema com o objetivo de aumentar sua complexidade cíclica e torná-lo crítico à empresa. 3 6. É recomendado que um projeto possua um mecanismo formal e documentado de controle de mudanças. Sobre este mecanismo, são feitas as afirmativas a seguir. I - O mecanismo deve rastrear e tratar mudanças em quaisquer fatores críticos de sucesso do projeto, incluindo escopo, prazos e custos. II - Para tornar o processo gerenciável, é recomendado que sejam rastreadas apenas mudanças que possuam impacto significativo no custo ou nos prazos do projeto e que não sejam rejeitadas em primeira análise. III - A avaliação e a aprovação de quaisquer solicitações de mudanças são atribuições exclusivas do gerente de projeto, pois o mesmo detém a autoridade e a responsabilidade sobre os resultados finais do projeto perante os stakeholders. IV - Tipicamente, o mecanismo de controle de mudanças prevê algumas categorias de mudanças que são automaticamente aprovadas - tais como as resultantes de emergências - as quais devem ser registradas e rastreadas, da mesma forma que as demais. Estão corretas APENAS as afirmativas: points: 1 I e II I e III I e IV II e III III e IV 7. Uma atividade ligada às manutenções corretiva e evolutiva de software envolve ter uma boa e adequada compreensão do sistema a sofrer o processo de evolução, incluindo, por exemplo, uma reimplementação de sistemas legados, de forma a tornar mais simples sua manutenção. Essa atividade recebe a denominação de points: 1 cronogramação. distribuição. hierarquização. reengenharia. volatilização. 4 8. O conjunto de alterações executadas num software, a fim de melhorar ou modificar a estrutura interna, mas sem provocar alterações em seu comportamento, é denominado: points: 1 remake validação refactoring engenharia reversa reengenharia 9. Quais são as principais etapas de um procedimento de engenharia reversa? points: 1 Reestruturação do código, extração de abstração, refinamento e simplificação. Reengenharia de dados, de procedimentos e de interfaces. Descompilação, desmontagem, interpretação do código. Descompilação, edição em memória, interpretação. Conversão de código objeto, tradução de executável, geração de fonte. 10. Com relação à engenharia reversa, afirma-se que: points: 1 consiste em projetar o canal de retorno do produto ao seu ponto de fabricação. consiste em recolher o produto para corrigir eventuais falhas de fabricação. é baseada no retorno do produto para reciclagem. busca analisar, cuidadosamente, um produto, se necessário desmontando-o, para entender como foi produzido. estuda formas de operar um produto em sentido contrário ao projetado inicialmente. 5 11. Analise as afirmativas a seguir, relativas à reengenharia de sistemas. 1.A Engenharia Reversa pode ser utilizada para construir a modelagem de programas a partir do seu código-fonte. 2.Os pacotes de dados capturados nas redes de computadores através do uso de sniffers podem ser utilizados para realizar a engenharia reversa do protocolo empregado na troca das mensagens. 3.A Engenharia Reversa pode ser utilizada por crackers no desenvolvimento de malwares, por isso não pode ser utilizada no desenvolvimento dos antídotos destes malwares, dificultando a detecção de vestígios que permitam identificar o seu criador. Está(ão ) correta(s ): points: 1 as afirmativas 1 e 2, apenas. a afirmativa 1, apenas. as afirmativas 2 e 3, apenas. as afirmativas 1 e 3, apenas. as afirmativas 1, 2, 3. 6 12. Quanto à manutenção de sistemas de informática, julgue os itens abaixo. I - Normalmente, é necessário um tempo substancial para se entender suficientemente um sistema antes de se poder modificá-lo. Geralmente, uma alta rotatividade dos membros de uma equipe de manutenção ou uma grande quantidade de sistemas a manter prejudica o desempenho dessa equipe. II - Sistemas em tempo real e altamente sincronizados são mais fáceis de serem modificados em um processo de manutenção, pois o sincronismo pode ser utilizado para assegurar a consistência do software. III - Sistemas de grande porte desenvolvidos a partir da concepção orientada a objetos, geralmente, apresentam uma maior quantidade de linhas programadas e maior uso de memória, apresentando uma maior dificuldade de manutenção que sistemas desenvolvidos a partir de uma concepção funcional. IV - A documentação de um sistema,apesar de auxiliar na determinação de problemas, não é um fator importante na definição dos custos de manutenção, pois as equipes de manutenção dispõem, atualmente, de ferramentas de engenharia reversa capazes de determinar completamente as fases de desenvolvimento do sistema. V - Se testes são efetuados com dados incompletos ou se eles não anteciparem as repercussões de uma modificação no sistema, modificações e evoluções podem gerar problemas colaterais no sistema. Estão certos apenas os itens : points: 1 I e II. I e V. II e III. III e IV. IV e V. 13. A engenharia reversa se propõe a gerar uma nova especificação ou um novo projeto de um sistema existente, aplicando-se os conceitos de reengenharia, para, depois, se aplicar a engenharia direta e gerar um novo sistema. points: 1 True False 14. No processo de engenharia reversa de arquivos, a normalização tem por função reagrupar informações de forma a eliminar redundâncias de dados e permitir a obtenção de um modelo ER. points: 1 True False 7 15. Entre os problemas comuns na fase de manutenção, podem-se citar a baixa produtividade e o alto custo, além de problemas técnicos, como documentação desatualizada e dificuldade de se alterarem sistemas que foram projetados sem a preocupação com a sua manutenibilidade. points: 1 True False 16. Um sistema pode sofrer quatro tipos de manutenção: corretiva, adaptativa ou evolutiva, perfectiva e preventiva. Entre esses tipos, apenas a manutenção corretiva está associada a um defeito do sistema. points: 1 True False 17. Os sistemas de software estão sujeitos a manutenção, pois, dificilmente, as características que o definem não sofrem modificações durante a sua vida útil. Quanto mais dependentes do mundo real forem os requisitos de um sistema, maior será a probabilidade de esse sistema vir a ser modificado. points: 1 True False 18. Entre outras medidas de segurança a engenharia reversa é utilizada contra ataques de softwares maliciosos que, por sua natureza, são difíceis de serem detectadas e controladas via sistema operacional . points: 1 True False 19. A engenharia reversa consiste no processo de levantamento de requisitos de um sistema sem documentação. Na engenharia reversa, a técnica caixa branca é empregada para observar os inputs e outputs do sistema. points: 1 True False 20. Acerca dos conceitos da engenharia reversa, a depuração de programas utiliza métodos de teste e análise para tentar entender o software. Esses métodos são classificados como caixa-branca (white box) e caixa-preta (black box). Para se conhecer o código e seu comportamento, o teste caixa-branca é menos eficiente que o teste caixa-preta, embora seja mais fácil de ser implementado. points: 1 True False 8
Compartilhar