Vista previa del material en texto
Reusabilidade O que significa "reusabilidade" no contexto do desenvolvimento de software? a) A capacidade de modificar o codigo sem causar impactos b) A pratica de reutilizar codigo ja existente em diferentes partes de um sistema ou em diferentes projetos c) A criacao de bibliotecas externas para uso em projetos futuros d) A utilizacao de componentes de codigo fechados e proprietarios Resposta correta: b) A pratica de reutilizar codigo ja existente em diferentes partes de um sistema ou em diferentes projetos Explicacao: Reusabilidade se refere a capacidade de usar componentes ou modulos de codigo que ja foram criados em diferentes contextos, seja no mesmo sistema ou em sistemas distintos, sem necessidade de reescrever o codigo do zero. Quais sao as vantagens de se adotar a reusabilidade no desenvolvimento de software? a) Aumento da complexidade do codigo e dificuldade de manutencao b) Reducao do tempo de desenvolvimento, aumento da consistencia e manutencao mais facil c) Maior controle sobre cada linha de codigo d) Menor dependencia de bibliotecas e frameworks externos Resposta correta: b) Reducao do tempo de desenvolvimento, aumento da consistencia e manutencao mais facil Explicacao: Ao reutilizar codigo, os desenvolvedores economizam tempo, pois nao precisam reescrever funcoes ou modulos semelhantes. Alem disso, a reusabilidade contribui para a consistencia e facilita a manutencao. Qual e o impacto da reusabilidade no tempo de desenvolvimento de um projeto? a) Aumento significativo do tempo de desenvolvimento devido a necessidade de criacao de modulos reutilizaveis b) Nao ha impacto no tempo de desenvolvimento c) Reducao do tempo de desenvolvimento, pois os modulos reutilizaveis economizam esforco de codificacao d) O impacto varia dependendo do tamanho do projeto, mas geralmente aumenta o tempo devido a complexidade Resposta correta: c) Reducao do tempo de desenvolvimento, pois os modulos reutilizaveis economizam esforco de codificacao Explicacao: A reusabilidade reduz o tempo de desenvolvimento porque, ao reutilizar modulos de codigo existentes, os desenvolvedores nao precisam comecar do zero. Isso permite a entrega mais rapida de novas funcionalidades. Qual das seguintes praticas contribui para melhorar a reusabilidade de codigo? a) Escrever funcoes com o maximo de funcionalidades possiveis b) Criar funcoes genericas e bem documentadas c) Adicionar comentarios apenas nas linhas mais complexas d) Fazer uso de codificacao especifica para cada projeto Resposta correta: b) Criar funcoes genericas e bem documentadas Explicacao: Funcoes genericas e bem documentadas sao mais faceis de serem reutilizadas, pois podem ser aplicadas em diferentes cenarios e compreendidas por outros desenvolvedores de forma rapida. Qual e a principal diferenca entre codigo reutilizavel e codigo generico? a) Codigo reutilizavel pode ser utilizado somente no mesmo sistema, enquanto codigo generico e aplicavel a varios sistemas b) Codigo generico e mais especifico e adequado para cada projeto, enquanto o reutilizavel e mais abstrato c) Codigo reutilizavel e adaptado para diferentes contextos, enquanto codigo generico nao e modificado d) Nao ha diferenca entre os dois, pois ambos sao a mesma coisa Resposta correta: a) Codigo reutilizavel pode ser utilizado somente no mesmo sistema, enquanto codigo generico e aplicavel a varios sistemas Explicacao: O codigo reutilizavel pode ser reaproveitado no mesmo sistema ou em diferentes partes do sistema. Ja o codigo generico e desenvolvido para ser o mais flexivel possivel e pode ser utilizado em diferentes sistemas, com pouca ou nenhuma modificacao. O que e o conceito de "modularizacao" no contexto de reusabilidade? a) A pratica de criar grandes blocos de codigo para facilitar a compreensao b) A divisao do codigo em partes menores e independentes que podem ser reutilizadas em diferentes contextos c) A escrita de codigo sem depender de bibliotecas externas d) A execucao de testes automatizados em cada funcao do sistema Resposta correta: b) A divisao do codigo em partes menores e independentes que podem ser reutilizadas em diferentes contextos Explicacao: A modularizacao envolve dividir o codigo em modulos ou componentes independentes, que podem ser reutilizados em diferentes partes do sistema ou ate em outros projetos. Quais sao os desafios de se garantir a reusabilidade no desenvolvimento de software? a) Aumento de performance devido a reutilizacao constante do codigo b) A necessidade de escrever codigo redundante em varias partes do sistema c) A dificuldade de criar codigo generico que funcione em diferentes contextos sem modificacoes d) A facilidade de encontrar solucoes prontas em frameworks e bibliotecas externas Resposta correta: c) A dificuldade de criar codigo generico que funcione em diferentes contextos sem modificacoes Explicacao: Criar codigo generico e reutilizavel que funcione bem em diferentes cenarios pode ser um desafio, pois e preciso garantir que ele seja flexivel o suficiente para ser adaptado sem quebras ou dificuldades. O que e o "principio DRY" (Don't Repeat Yourself), e como ele se relaciona com a reusabilidade? a) E um principio que incentiva a duplicacao de codigo para facilitar a manutencao b) E um principio que sugere evitar a repeticao de codigo, criando funcoes e modulos reutilizaveis c) O principio DRY diz que o codigo deve ser escrito sem considerar reusabilidade d) DRY e um conceito relacionado apenas a documentacao e comentarios no codigo Resposta correta: b) E um principio que sugere evitar a repeticao de codigo, criando funcoes e modulos reutilizaveis Explicacao: O principio DRY (Don't Repeat Yourself) incentiva a eliminacao da repeticao no codigo, promovendo a criacao de funcoes e modulos reutilizaveis, o que melhora a reusabilidade e facilita a manutencao do software. Como a reusabilidade pode afetar a manutencao de um sistema? a) Torna a manutencao mais dificil devido a complexidade de integrar novos modulos reutilizaveis b) Facilita a manutencao, pois as mudancas podem ser feitas em uma unica vez e refletir em varias partes do sistema c) Nao tem impacto na manutencao do sistema d) Aumenta a necessidade de atualizacoes constantes em todas as partes do sistema Resposta correta: b) Facilita a manutencao, pois as mudancas podem ser feitas em uma unica vez e refletir em varias partes do sistema Explicacao: A reusabilidade facilita a manutencao, pois, ao alterar um modulo reutilizavel, as mudancas sao automaticamente refletidas em todos os lugares onde ele e utilizado, reduzindo a necessidade de modificacoes em multiplos pontos do codigo. O que e a "engenharia de software orientada a componentes" e como ela se relaciona com a reusabilidade? a) A criacao de um sistema totalmente monolitico sem depender de modulos externos b) A construcao de sistemas com base em componentes reutilizaveis, promovendo maior flexibilidade e manutencao c) A pratica de escrever codigo especifico para cada projeto sem modularizacao d) A utilizacao de componentes fechados que nao podem ser reutilizados em outros projetos Resposta correta: b) A construcao de sistemas com base em componentes reutilizaveis, promovendo maior flexibilidade e manutencao Explicacao: A engenharia orientada a componentes foca na criacao de sistemas compostos por modulos independentes que podem ser reutilizados em diferentes projetos, promovendo flexibilidade e facilitando a manutencao. Qual a diferenca entre "reusabilidade" e "extensibilidade" no desenvolvimento de software? a) Reusabilidade e sobre modificar o codigo existente, enquanto extensibilidade e sobre criar novos componentes a partir de zero b) Reusabilidade refere-se a capacidade de usar o codigo existente em diferentes contextos, enquanto extensibilidade e a capacidade de adicionar novas funcionalidades sem alterar o sistema existente c) Nao ha diferenca, pois ambos significam a mesma coisa d) Extensibilidade esta relacionadaa refatorar o codigo, enquanto reusabilidade trata de refazer o codigo para cada novo sistema Resposta correta: b) Reusabilidade refere-se a capacidade de usar o codigo existente em diferentes contextos, enquanto extensibilidade e a capacidade de adicionar novas funcionalidades sem alterar o sistema existente Explicacao: A reusabilidade permite que o codigo seja reaproveitado em diferentes situacoes, enquanto a extensibilidade diz respeito a facilidade de adicionar novas funcionalidades ao sistema sem comprometer seu funcionamento atual. O que sao frameworks e como eles estao relacionados com a reusabilidade? a) Sao ferramentas de teste que nao tem relacao com a reusabilidade b) Sao estruturas de codigo que podem ser reutilizadas para facilitar o desenvolvimento de sistemas, proporcionando componentes prontos para uso c) Sao bibliotecas especificas para resolver problemas complexos que nao podem ser reutilizadas d) Sao codigos fechados e nao reutilizaveis Resposta correta: b) Sao estruturas de codigo que podem ser reutilizadas para facilitar o desenvolvimento de sistemas, proporcionando componentes prontos para uso Explicacao: Frameworks sao conjuntos de componentes e bibliotecas prontos para serem reutilizados em diferentes projetos. Eles ajudam a acelerar o desenvolvimento, fornecendo funcionalidades comuns que podem ser adaptadas para as necessidades do projeto. O que e "refatoracao de codigo" e como ela pode contribuir para a reusabilidade? a) Refatoracao e a pratica de escrever codigo do zero para melhorar a performance b) Refatoracao melhora a estrutura e a legibilidade do codigo, facilitando a criacao de modulos reutilizaveis c) Refatoracao e a tecnica de substituir todo o codigo por