Prévia do material em texto
Projeto de software O que e o projeto de software? a) O processo de codificar o software. b) O processo de planejar e definir a arquitetura, componentes e funcionalidades do software. c) O processo de testar as funcionalidades do software. d) O processo de implantar o software no ambiente de producao. Resposta correta: b O projeto de software e a fase em que sao feitas as definicoes sobre a estrutura, os componentes, a arquitetura e os requisitos do sistema. Essa etapa e fundamental para garantir que o software atenda as necessidades do cliente e seja eficiente em termos de desempenho e manutencao. Qual e o principal objetivo do design de software? a) Gerar codigo executavel. b) Garantir que o sistema seja seguro. c) Definir uma solucao de software que atenda aos requisitos funcionais e nao funcionais. d) Testar o sistema em diferentes plataformas. Resposta correta: c O principal objetivo do design de software e criar uma solucao que satisfaca os requisitos identificados durante a analise, com foco tanto nas funcionalidades quanto nos aspectos nao funcionais, como desempenho e seguranca. Quais sao as fases principais do projeto de software? a) Analise de requisitos, design, implementacao, testes e manutencao. b) Codificacao, testes e entrega. c) Planejamento, execucao e finalizacao. d) Levantamento de requisitos, design e codificacao. Resposta correta: a As fases principais de um projeto de software incluem a analise de requisitos, onde sao levantadas as necessidades; o design, que envolve o planejamento detalhado da arquitetura e componentes; a implementacao, que e a codificacao propriamente dita; os testes, para garantir que o sistema funciona como esperado; e a manutencao, que envolve corrigir falhas e realizar melhorias apos o lancamento. O que e arquitetura de software? a) A codificacao do software em uma linguagem especifica. b) O planejamento e organizacao dos componentes do software, incluindo a interacao entre eles. c) A documentacao do sistema para os usuarios finais. d) O processo de teste do software. Resposta correta: b A arquitetura de software envolve o planejamento e a organizacao dos componentes de um sistema, alem de definir como eles interagem. Ela serve como a espinha dorsal do projeto, fornecendo a base para o desenvolvimento e garantindo a escalabilidade, seguranca e desempenho do software. Qual das alternativas abaixo melhor descreve um padrao de projeto (design pattern)? a) Uma solucao reutilizavel para um problema comum de design em software. b) Um codigo pre-escrito que resolve um problema especifico. c) Uma metodologia para gerenciar projetos de software. d) Uma ferramenta para automacao de testes. Resposta correta: a Um padrao de projeto (design pattern) e uma solucao reutilizavel para um problema recorrente no design de software. Ele descreve uma abordagem comprovada para resolver um tipo especifico de desafio de design e pode ser adaptado para diferentes contextos. O que e a modularizacao no design de software? a) Dividir o codigo em pequenos modulos que podem ser desenvolvidos de forma independente. b) Organizar a interface grafica do usuario. c) Garantir que o codigo esteja bem comentado. d) Testar a funcionalidade de cada parte do software. Resposta correta: a Modularizacao e o processo de dividir o sistema em modulos menores e independentes, o que facilita o desenvolvimento, a manutencao e a reutilizacao do software. Cada modulo deve ser responsavel por uma funcionalidade especifica, o que tambem contribui para a clareza e organizacao do codigo. Qual e a funcao da documentacao no projeto de software? a) Apenas descrever a interface grafica do sistema. b) Apenas listar as funcionalidades do sistema. c) Descrever o design, arquitetura, requisitos e codigo do sistema, para facilitar a manutencao e compreensao do software. d) Apenas registrar os testes realizados no sistema. Resposta correta: c A documentacao desempenha um papel fundamental no projeto de software, descrevendo nao so as funcionalidades, mas tambem o design, a arquitetura e as decisoes tecnicas tomadas ao longo do desenvolvimento. Ela ajuda na manutencao e garante que outros desenvolvedores possam entender e trabalhar no software no futuro. Qual e a principal vantagem de utilizar um modelo de desenvolvimento iterativo e incremental? a) Aumenta a complexidade do software. b) Permite entregas frequentes de funcionalidades, melhorando o feedback do cliente. c) Reduz o tempo necessario para testar o sistema. d) Garante que o software seja totalmente funcional desde o inicio. Resposta correta: b O modelo de desenvolvimento iterativo e incremental divide o projeto em ciclos curtos, com entregas frequentes de partes do sistema. Isso facilita o feedback continuo do cliente, permitindo ajustes rapidos e garantindo que o software esteja alinhado com as expectativas do usuario ao longo do desenvolvimento. O que significa "coesao" em design de software? a) A quantidade de interacoes entre diferentes modulos do sistema. b) O grau de relacao entre as funcionalidades de um modulo, ou seja, quao bem as partes de um modulo trabalham juntas para atingir um objetivo comum. c) A compatibilidade entre diferentes sistemas de software. d) A velocidade de execucao do software. Resposta correta: b Coesao em design de software se refere a medida em que as funcionalidades dentro de um modulo estao relacionadas entre si e trabalham juntas para alcancar um objetivo unico. Modulos com alta coesao sao mais faceis de entender, manter e modificar, pois suas responsabilidades sao claramente definidas. O que significa "acoplamento" em design de software? a) O grau de dependencia entre os diferentes modulos do sistema. b) O numero de linhas de codigo em cada modulo. c) A quantidade de dados processados por cada modulo. d) A capacidade do sistema de ser escalavel. Resposta correta: a Acoplamento e a medida de dependencia entre modulos. Um baixo acoplamento e desejavel, pois significa que os modulos sao independentes e podem ser alterados ou reutilizados sem impactar outros modulos. Isso aumenta a flexibilidade e facilita a manutencao do software. O que e refatoracao no contexto de projeto de software? a) O processo de adicionar novas funcionalidades ao software. b) O processo de melhorar o codigo existente, sem alterar seu comportamento, para torna-lo mais eficiente e legivel. c) O processo de corrigir bugs no software. d) O processo de testar o codigo para garantir que ele funcione corretamente. Resposta correta: b Refatoracao e o processo de melhorar a estrutura e a legibilidade do codigo, sem alterar seu comportamento externo. O objetivo e tornar o codigo mais simples, eficiente e facil de entender, o que facilita futuras modificacoes e manutencao. O que e a "arquitetura de camadas" em design de software? a) Um padrao de design que divide o software em camadas que se comunicam apenas com as camadas adjacentes. b) Uma tecnica de otimizacao do desempenho do sistema. c) Um metodo para criar interfaces de usuario eficientes. d) Um metodo para garantir a seguranca do sistema. Resposta correta: a A arquitetura de camadas organiza o software em diferentes niveis de abstracao, onde cada camada e responsavel por uma parte especifica do sistema. As camadas geralmente se comunicam com as adjacentes, o que facilita a manutencao, o entendimento e a escalabilidade do software. Qual e o papel dos testes no projeto de software? a) Garantir que o software atenda aos requisitos e funcione corretamente antes da implantacao. b) Melhorar a performance do software. c) Documentar as funcionalidades do software. d) Criar novos requisitos para o software. Resposta correta: a Os testes sao fundamentais para garantir que o software atenda aos requisitos estabelecidos e funcione corretamente em diferentes cenarios. Eles ajudam a identificar e corrigir problemas antes que o software seja implantado no ambiente de producao. O quee a abordagem "Desenvolvimento Orientado a Testes" (TDD)? a) Uma tecnica de design que visa otimizar a arquitetura do sistema. b) Um processo onde os testes sao escritos antes do codigo, com o objetivo de validar a implementacao a medida que ela e desenvolvida. c) Uma tecnica de documentacao que descreve como os testes devem ser realizados. d) Um processo de refatoracao do codigo. Resposta correta: b O Desenvolvimento Orientado a Testes (TDD) e uma pratica onde os testes sao escritos antes do codigo. O ciclo e simples: escrever um teste, escrever o codigo para passar o teste e depois refatorar. Essa abordagem ajuda a garantir que o software seja desenvolvido de maneira testada e confiavel desde o inicio. Qual e o principal beneficio de usar uma metodologia agil no projeto de software? a) Reduzir a quantidade de documentacao necessaria. b) Garantir que o software seja completamente desenvolvido antes de ser entregue. c) Permitir entregas frequentes e um ciclo