Prévia do material em texto
Engenharia de Software O que e a Engenharia de Software? a) A pratica de escrever codigo de forma rapida e eficiente b) A aplicacao de principios de engenharia para o desenvolvimento de software de alta qualidade c) A criacao de software apenas para grandes empresas d) O processo de testar software em busca de bugs Resposta correta: b) A aplicacao de principios de engenharia para o desenvolvimento de software de alta qualidade Explicacao: Engenharia de Software envolve a aplicacao de principios, metodos e ferramentas para projetar, desenvolver, manter e melhorar sistemas de software, garantindo que atendam a requisitos e padroes de qualidade. Qual das seguintes atividades e parte do ciclo de vida de desenvolvimento de software? a) Somente codificacao e testes b) Levantamento de requisitos, design, implementacao, testes, manutencao c) Apenas design e testes d) Implementacao de sistemas de hardware Resposta correta: b) Levantamento de requisitos, design, implementacao, testes, manutencao Explicacao: O ciclo de vida de desenvolvimento de software inclui varias fases, desde o levantamento de requisitos ate a manutencao continua do sistema apos sua implementacao. Qual e a principal diferenca entre Engenharia de Software e Programacao? a) Engenharia de Software e mais focada em escrever codigo b) Programacao e um processo simples e rapido, enquanto Engenharia de Software envolve planejamento, testes e manutencao c) Engenharia de Software nao envolve codificacao d) Programacao trata apenas de linguagens de programacao Resposta correta: b) Programacao e um processo simples e rapido, enquanto Engenharia de Software envolve planejamento, testes e manutencao Explicacao: Engenharia de Software abrange todo o processo de desenvolvimento, incluindo planejamento, design, testes e manutencao, enquanto programacao e apenas uma parte do processo focada na codificacao. Qual dessas abordagens faz parte do desenvolvimento agil de software? a) Modelagem extensiva antes do desenvolvimento b) Planejamento a longo prazo c) Desenvolvimento incremental e interativo com entregas rapidas d) Enfoque exclusivo em testes automatizados Resposta correta: c) Desenvolvimento incremental e interativo com entregas rapidas Explicacao: O desenvolvimento agil foca em ciclos curtos de desenvolvimento, chamadas de iteracoes, e entrega continua de funcionalidades, permitindo a adaptacao as mudancas rapidamente. O que e um modelo de desenvolvimento de software em cascata? a) Um modelo onde as fases do ciclo de vida sao interativas e podem ser repetidas b) Um modelo em que as fases seguem uma sequencia linear e nao podem ser revisitadas apos serem completadas c) Um modelo que enfatiza a codificacao sem planejamento previo d) Um modelo exclusivamente usado em grandes projetos de software Resposta correta: b) Um modelo em que as fases seguem uma sequencia linear e nao podem ser revisitadas apos serem completadas Explicacao: No modelo em cascata, as fases sao realizadas de forma sequencial: uma fase deve ser completada antes de passar para a proxima, sem a possibilidade de voltar a fases anteriores. Qual e a principal vantagem de usar o metodo agil em vez do modelo em cascata? a) O desenvolvimento em cascata permite maior flexibilidade e adaptacoes rapidas b) O agil permite entregas continuas e adaptacao rapida a mudancas de requisitos c) O agil nao exige a definicao previa de requisitos d) O metodo agil e mais adequado para grandes projetos com muitas fases Resposta correta: b) O agil permite entregas continuas e adaptacao rapida a mudancas de requisitos Explicacao: O metodo agil permite ciclos rapidos de entrega e uma maior flexibilidade para responder a mudancas durante o desenvolvimento, enquanto o modelo em cascata e mais rigido. No contexto da Engenharia de Software, o que e um "requisito funcional"? a) Uma restricao tecnica sobre a arquitetura do sistema b) Uma descricao de como o software deve operar para atender aos objetivos do usuario c) Uma consideracao de desempenho do sistema d) Um tipo de ferramenta para monitoramento de software Resposta correta: b) Uma descricao de como o software deve operar para atender aos objetivos do usuario Explicacao: Requisitos funcionais descrevem as funcionalidades que o sistema deve fornecer, como o que ele deve fazer para atender as necessidades do usuario. O que e um "requisito nao funcional"? a) Especificacao sobre as operacoes internas do sistema b) Detalhes sobre o design de interface com o usuario c) Definicoes sobre atributos como desempenho, seguranca e usabilidade d) Descricao de funcionalidades do sistema Resposta correta: c) Definicoes sobre atributos como desempenho, seguranca e usabilidade Explicacao: Requisitos nao funcionais descrevem aspectos do sistema que nao estao diretamente ligados a funcionalidades, como seguranca, usabilidade, escalabilidade e desempenho. Qual e a principal diferenca entre testes de unidade e testes de integracao? a) Testes de unidade verificam a interacao entre varios modulos, enquanto testes de integracao verificam o comportamento de funcoes individuais b) Testes de unidade sao realizados pelo desenvolvedor, enquanto testes de integracao sao feitos apos a entrega c) Testes de unidade verificam partes isoladas do codigo, enquanto testes de integracao verificam a interacao entre diferentes modulos ou sistemas d) Testes de unidade sao mais caros e demorados que testes de integracao Resposta correta: c) Testes de unidade verificam partes isoladas do codigo, enquanto testes de integracao verificam a interacao entre diferentes modulos ou sistemas Explicacao: Testes de unidade focam em verificar o comportamento de partes isoladas do codigo, enquanto testes de integracao garantem que diferentes partes do sistema funcionem corretamente juntas. O que e uma "historia de usuario" no contexto de desenvolvimento agil? a) Uma descricao detalhada dos requisitos tecnicos de um sistema b) Uma narrativa que descreve uma funcionalidade desejada do ponto de vista do usuario c) Um tipo de documento de planejamento de projeto d) Um historico de versoes de software Resposta correta: b) Uma narrativa que descreve uma funcionalidade desejada do ponto de vista do usuario Explicacao: Uma historia de usuario descreve uma funcionalidade desejada para o sistema de uma maneira simples e focada no valor que ela traz para o usuario, geralmente na forma de uma pequena narrativa. O que significa a pratica de "refatoracao" no desenvolvimento de software? a) Substituir completamente o codigo por uma nova versao b) Melhorar o design do codigo sem alterar seu comportamento externo c) Adicionar novos recursos ao software d) Testar o sistema em condicoes extremas Resposta correta: b) Melhorar o design do codigo sem alterar seu comportamento externo Explicacao: Refatoracao e o processo de melhorar a estrutura interna do codigo (como melhorar a legibilidade ou a eficiencia) sem mudar seu comportamento ou funcionalidades. O que e um "metodo de estimativa de pontos de funcao" em Engenharia de Software? a) Uma tecnica para calcular o numero de linhas de codigo de um sistema b) Um metodo para avaliar o custo de um software com base em suas funcionalidades c) Um modelo de testes de desempenho para sistemas criticos d) Uma abordagem para definir as interfaces do usuario Resposta correta: b) Um metodo para avaliar o custo de um software com base em suas funcionalidades Explicacao: O metodo de estimativa de pontos de funcao e usado para avaliar a complexidade de um sistema de software com base no numero e tipo de suas funcionalidades, permitindo estimar o esforco e o custo do projeto. No desenvolvimento de software, o que significa "gerenciamento de configuracao"? a) Controlar o acesso ao codigo-fonte por diferentes desenvolvedores b) Gerenciar as versoes e mudancas no codigo-fonte, bem como outros artefatos de software c) Otimizar o desempenho do codigo para diferentes plataformas d)Projetar a interface grafica do usuario Resposta correta: b) Gerenciar as versoes e mudancas no codigo-fonte, bem como outros artefatos de software Explicacao: O gerenciamento de configuracao e o processo de monitorar e controlar as mudancas nos artefatos de software, como codigo-fonte, documentacao e outras partes importantes, garantindo a integridade e rastreabilidade durante o ciclo de vida do software. No contexto de Engenharia de Software, o que e a tecnica de "desenvolvimento orientado a testes" (TDD)? a) A criacao de testes depois que o codigo e escrito b) A escrita de codigo sem testes previos para agilizar o processo de desenvolvimento c) A escrita de testes antes de escrever o codigo, para garantir que o sistema atenda aos requisitos d) A execucao de testes apenas no final do projeto Resposta correta: c) A escrita de testes antes de escrever o codigo, para garantir que o sistema atenda aos requisitos Explicacao: No TDD, os testes sao escritos antes do codigo, o que ajuda a garantir que o codigo desenvolvido atenda exatamente aos requisitos e facilite a deteccao precoce de falhas.