Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software EXERCÍCIOS Tema 02 - Módulo 01 Atividades de Classe 1. FCC – 2010 (adaptado) - Sobre a engenharia de software, considere: ● I. Atualmente, todos os problemas na construção de software de alta qualidade no prazo e dentro do orçamento foram solucionados. ● II. Ao longo dos últimos 50 anos, o software evoluiu de um produto de indústria para um ferramental especializado em solução de problemas e análise de informações específicas. ● III. Todo projeto de software é iniciado por alguma necessidade do negócio. ● IV. O intuito da engenharia de software é fornecer uma estrutura para a construção de software com alta qualidade. Está correto o que consta em: A. III e IV, somente. B. II e III, somente. C. I, II e IV, somente. D. II, III e IV, somente. A alternativa "A" está correta. ● O software tem como um dos principais objetivos agregar valor ao negócio, permitindo a automação de rotinas comumente associadas ao controle administrativo ou em apoio ao processo de decisão. A Engenharia de Software permite o fornecimento dessa estrutura disponibilizando processos, métodos e ferramentas. 2. Prefeitura Municipal de Manaus – 2010 - A Engenharia de Software compreende um conjunto de etapas comumente citadas como paradigmas de Engenharia de Software. No tocante a essas etapas, assinale a opção correta. A. Os procedimentos da Engenharia de Software constituem o elo que mantém juntos os métodos e as ferramentas. B. Os métodos de Engenharia de Software proporcionam os detalhes de “o que fazer” para construir o software. C. As ferramentas de Engenharia de Software proporcionam apoio totalmente automatizado aos métodos. D. Os procedimentos da Engenharia de Software garantem o desenvolvimento dentro do prazo. A alternativa "A" está correta. ● A Engenharia de Software possui quatro camadas: qualidade, processo, métodos e ferramentas. Cabe à camada de processo, a determinação das etapas de desenvolvimento 1 do software. Definido o processo, o engenheiro de software especifica os métodos e as ferramentas que serão utilizadas. 2 Tema 02 - Módulo 02 Atividades de Classe 1. O processo da Engenharia de Requisitos inclui o levantamento de requisitos, que corresponde à etapa de compreensão do problema aplicada ao desenvolvimento de software, e tem como principal objetivo fazer com que usuários e desenvolvedores tenham a mesma visão do problema a ser resolvido. Neste contexto, (1) na etapa levantamento de requisitos, os desenvolvedores, juntamente com os clientes, tentam levantar e definir as necessidades dos futuros usuários do sistema a ser desenvolvido, prosseguimento no processo, temos (2) a etapa de validação dos requisitos onde os analistas apresentam os modelos criados para representar o sistema aos futuros usuários para que esses modelos sejam validados. Considerando as afirmativas (1) e (2), escolha a opção correta: A. Ambas as afirmativas são falsas. B. A afirmativa 1 é verdadeira e a afirmativa 2 é falsa. C. Ambas as afirmativas são verdadeiras, mas a (2) não é uma sequência correta de (1). D. A afirmativa 1 é falsa e a afirmativa 2 é verdadeira. A alternativa "C" está correta. ● Após a realização da etapa de levantamento dos requisitos, temos a etapa de análise, onde o engenheiro de software gera os modelos, tal como, o modelo de casos de uso. Após essa etapa, ocorre a validação dos requisitos pelos usuários do sistema. 2. Um engenheiro de software está identificando os requisitos não funcionais para um novo projeto de software com elevado grau de complexidade em função dos requisitos funcionais levantados até o momento. Neste ponto, o referido engenheiro identificou as tarefas do processo de software adotado e necessita definir o encadeamento das tarefas, ou seja, o fluxo de processo. Nesse caso, assinale qual a opção mais adequada: A. Fluxo de Processo Linear. B. Fluxo de Processo Paralelo. C. Fluxo de Processo Iterativo. D. Fluxo de Processo Evolucionário. A alternativa "D" está correta. ● O Fluxo de Processo Evolucionário permite o versionamento do software e o melhor trato da complexidade. A cada nova iteração, todas as tarefas são executadas, permitindo a solução de um subconjunto de requisitos, e uma nova versão do software é gerada 3 Tema 02 - Módulo 03 Atividades de Classe 1. O gerente de projeto de um determinado projeto de software definiu o processo de desenvolvimento com as atividades comumente utilizadas, tais como, levantamento de requisitos, análise, projeto etc. O fluxo de processos adotado foi o evolucionário por permitir o versionamento do software. A equipe do projeto, no momento, está definindo a duração de cada atividade do processo de desenvolvimento de software e as respectivas dependências. Qual o grupo de processos do PMBOK e a área de conhecimento do projeto encontra-se a equipe de projeto? A. Grupo de processos planejamento e área de conhecimento gerenciamento do cronograma. B. Grupo de processos execução e área de conhecimento gerenciamento da integração. C. Grupo de processos execução e área de conhecimento gerenciamento do cronograma. D. Grupo de processos planejamento e área de conhecimento gerenciamento do escopo. A alternativa "A" está correta. ● A área de gerenciamento do escopo permite criar a EAP. Na sequência, ainda no grupo de processos planejamento, podemos iniciar os processos da área de conhecimento gerenciamento do cronograma que inclui a identificação das atividades e suas dependências. 2. O engenheiro de software necessita definir o escopo do projeto de um determinado software e decidiu utilizar o processo que permite a criação da Estrutura Analítica do Projeto (EAP). Assinale a afirmativa correta relativa à EAP: A. As entregas que sofrem decomposição na EAP são chamadas de pacotes de trabalho. B. A EAP é elaborada no grupo de processo iniciação. C. A área de conhecimento do processo “Criar a EAP” é gerenciamento do cronograma. D. Após a criação da EAP, o engenheiro de software poderá iniciar os processos que permitem o estabelecimento do cronograma do projeto. A alternativa "D" está correta. ● A Estrutura Analítica de Projeto, ou simplesmente EAP, permite a representação gráfica do escopo do projeto, sendo confeccionada no grupo de processos planejamento e pertence à área de conhecimento gerenciamento de escopo. A criação da EAP permite, em continuidade à etapa de planejamento, a execução de processo que conduzam ao desenvolvimento do cronograma. 4 Tema 02 - Módulo 04 Atividades de Classe 1. Um engenheiro de software, responsável pelo gerenciamento de riscos, detectou um risco relacionado ao uso de uma nova tecnologia de persistência de dados nunca utilizada na empresa. Em uma reunião de Brainstorming, participantes do projeto apresentaram outros riscos do projeto em desenvolvimento. Ao final da reunião, cada risco foi priorizado em função das respectivas ameaças ao projeto, sendo gerada uma ata da reunião com o plano de respostas a todos os riscos. No contexto do gerenciamento de risco, analise o final da referida reunião e assinale a opção correta: A. O gerente de riscos agiu corretamente, gerando uma evidência de tratativa dos riscos, ou seja, o plano de respostas aos riscos. B. O gerente de riscos realizou a análise quantitativa corretamente. C. O gerente de riscos deveria ter realizado a análise quantitativa antes da geração do plano de respostas aos riscos. D. O gerente de riscos elaborou corretamente o plano de respostas a riscos. A alternativa "C" está correta. ● A elaboração do plano de respostas a riscos ocorre após a análise quantitativa, pois essa permite a análise numérica dos riscos que serão inseridos no referido plano. 2. COVEST- COPSET – 2019 (adaptada) Ao fazer seu plano de riscos, um analista elaborou uma matriz de probabilidade e impacto. Sobre o emprego deste tipo de metodologia, é correto afirmar que: A. Deve-se evitar o uso de probabilidades numéricas, aplicando-se a terminologia “baixo, médio ou alto” para indicar a chance de um determinado risco acontecer. B.Uma matriz de probabilidade e impacto deve considerar, também, fatores qualitativos como o agente responsável e o plano de ação a ser tomado. C. Os riscos devem ser previstos e documentados livres de contexto, isto é, da forma mais objetiva possível. D. Nessa matriz, foram especificadas as combinações de probabilidade e o impacto que levam à classificação dos riscos, podendo estes serem classificados separadamente por objetivo, como custo, tempo e escopo. A alternativa "D" está correta. ● A Análise qualitativa dos riscos permite definir, para cada risco identificado, uma probabilidade e um grau de impacto, o que permite priorizar os riscos em função de seu efeito sobre os resultados do projeto. 5 Tema 03 - Módulo 01 Atividades de Classe 1. (UFG - 2010 - UFG - Analista de TI - Desenvolvimento de Sistemas) Requisitos não funcionais são restrições aos serviços de um sistema de software e ao processo de desenvolvimento do sistema. A equipe de desenvolvimento de um sistema de controle de tráfego aéreo deve considerar os requisitos não funcionais de: A. Cadastro e monitoramento de aeronaves. B. Alta disponibilidade e baixo tempo de resposta de usuário por evento. C. Uso conjunto de método ágil de sistemas e linguagem de programação orientada a objetos. D. Alto desempenho e baixo tempo médio entre falhas. A alternativa "B" está correta. ● Quando ocorre uma falha no software, o requisito não funcional de disponibilidade contabiliza o tempo disponível para uso e o tempo necessário para a solução de um problema, de modo que alta disponibilidade significa que o sistema está em condições de uso a maior parte do tempo. O requisito não funcional tempo de resposta especifica o tempo que o sistema responderá à determinada solicitação de serviço. Ambos os requisitos são fundamentais para um sistema de controle de tráfego aéreo. 2. (FCC - 2019 - SEMEF Manaus - AM - Técnico de Tecnologia da Informação da Fazenda Municipal) Considerando a análise de requisitos, as informações de rastreabilidade desempenham um papel de grande importância. Assim, a equipe responsável da Fazenda Municipal deve estar ciente de que a rastreabilidade de projeto significa: A. Listar os compiladores utilizados no desenvolvimento de cada módulo de software. B. Determinar o mapeamento entre os requisitos de projeto e os locais onde o sistema será utilizado. C. Determinar o desempenho de cada um dos requisitos do sistema. D. Possuir o mapeamento entre os requisitos e os módulos de projeto que implementam os requisitos. A alternativa "D" está correta. ● A rastreabilidade, iniciada com o levantamento de requisitos, permite gerenciar volatilidade dos requisitos durante o processo de desenvolvimento de software. 6 Tema 03 - Módulo 02 Atividades de Classe 1. Sobre as camadas do modelo de arquitetura MVC (Model - View-Controller) usado no desenvolvimento web, é correto afirmar: A. Todos os dados e a lógica do negócio para processá-los devem ser representados na camada controller. B. A camada model pode interagir com a camada view para converter as ações do cliente em ações que são compreendidas e executadas na camada controller. C. A camada view é a camada responsável por exibir os dados ao usuário. Em todos os casos, essa camada somente pode acessar a camada model por meio da camada controller. D. A camada controller, geralmente, possui um componente controlador padrão, criado para atender a todas as requisições do cliente. A alternativa "D" está correta. ● O padrão de arquitetura de projeto MVC torna fácil a manutenção do software, permitindo a implantação modular de forma rápida, cabendo à camada view gerar um evento a partir de uma requisição do cliente. O referido evento é atendido por um controller. 2. O engenheiro de software está encerrando a etapa de análise e iniciando a etapa de projeto. Assinale a afirmativa que NÃO é uma atividade de projeto: A. Aumentar o grau de abstração do modelo de classes. B. Identificar os métodos das classes a partir de modelos dinâmicos. C. Definir o modelo lógico de banco de dados. D. Utilizar padrões de projeto no diagrama de classes. A alternativa "A" está correta. ● A etapa de projeto permite o refinamento de modelos de análise, tal como o modelo de classes, de forma a diminuir o nível de abstração. Exemplo: o modelo de classes é refinado aumentando o nível de detalhamento. 7 Tema 03 - Módulo 03 Atividades de Classe 1. (Secretaria da Fazenda do Estado da Bahia - Auditor Fiscal - Tecnologia da Informação - FCC - 2019) Suponha que uma auditora fiscal da área de TI atue na etapa de testes e avaliação da qualidade de um software em desenvolvimento. Como o software sofria alterações a cada nova funcionalidade a ele incorporada, a auditora propôs que a equipe de testes adotasse como padrão um tipo de teste que garantisse que as mudanças recentes no código deixassem o resto do código intacto, visando impedir a introdução de erros. A equipe decidiu realizar um tipo de teste para avaliar a parte modificada e as áreas adjacentes que podem ter sido afetadas, dentro de uma abordagem baseada em risco. Assim, os testadores destacariam as áreas de aplicação que poderiam ser afetadas pelas recentes alterações de código e selecionariam os casos de testes relevantes para o conjunto de testes. Procedendo desta forma, seriam realizados testes: A. De revisão de funcionalidade. B. Gama. C. De aceite operacional. D. De regressão. A alternativa "D" está correta. ● Teste de regressão permite a reexecução de um subconjunto de testes previamente executados, assegurando que as alterações ou inserções de novas funcionalidades não impactaram outras partes do software. 2. Uma equipe de desenvolvedores do software está na fase final dos testes em ambiente controlado e decidiu iniciar os testes de recuperação e segurança imediatamente. Assinale a opção correta relativa ao início dos referidos testes: A. A equipe está realizando incorretamente os testes de sistema antes de realizar, por completo, os testes de validação. B. A equipe está desenvolvendo corretamente os últimos testes antes de disponibilizar o software aos usuários finais. C. A equipe deveria estar iniciando os testes de integração. D. A equipe deveria estar iniciando os testes de validação do tipo Aceite Formal. A alternativa "A" está correta. ● Os testes de validação do tipo Aceite Alpha ocorrem em ambiente controlado; na sequência, são realizados os testes de Aceite Beta e Formal, encerrando os testes de validação. Após esses testes, são realizados os testes de sistema, que incluem, entre outros, os testes de recuperação e segurança. 8 Tema 03 - Módulo 04 Atividades de Classe 1. O gerente de determinado projeto de software possui uma longa lista de requisitos funcionais e não funcionais, em função da sua complexidade. As equipes de programadores e de qualidade estão encerrando as etapas de implementação e testes, possibilitando a implantação do software. Qual processo tem de estar bem definido e ajustado à complexidade do software quando da execução da etapa implantação, em função dos defeitos que deverão ser identificados em produção? A. Processo de reengenharia. B. Processo de controle de alterações. C. Processo de controle de releases. D. Processo de software. A alternativa "B" está correta. ● Com certeza, ocorrerão erros em produção, gerando pedidos de manutenção do software. A definição prévia de um processo de controle de alterações permitirá a realização de manutenções sistemáticas e de forma planejada. 2. (CESGRANRIO - 2013 - BNDES - Profissional Básico - Análise de Sistemas – Desenvolvimento) De modo geral, o processo de desenvolvimento de um software pode ser organizado partindo de três fases importantes, que são as de definição, de desenvolvimento e de manutenção. Na fase de manutenção, dentre outras atividades, são: A. Levantados os requisitos dos usuários para a programação das diversas fases do projeto, inclusive as operacionais e as preditivas. B. Efetuados os testes de funcionalidade do software,revistos os objetivos para os quais ele foi desenvolvido e redefinidas as funções em desacordo com esses objetivos. C. Incluídas novas funções requeridas pelo cliente e feitas adaptações por modificações de hardware. D. Reavaliadas as bases operacionais, nas quais o software está sendo executado, e prototipados os novos requisitos de hardware. A alternativa "C" está correta. ● As alterações solicitadas durante a etapa de manutenção do software comumente incluem erros gerados em etapas anteriores do processo de desenvolvimento de software. Devido ao uso do software pelos usuários, poderão também surgir solicitações de novas funcionalidades, bem como problemas decorrentes de atualização de hardware. 9 Tema 04 - Módulo 01 Atividades de Classe 1. (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas) O Modelo Espiral, segundo Pressman (1995), incorpora as melhores características do Ciclo de Vida Clássico e da Prototipação e acrescenta o seguinte elemento: A. Análise dos riscos. B. Análise de projetos. C. Avaliação de usuários. D. Refinamento de requisitos. E. Refinamento de protótipos. A alternativa "A" está correta. ● O modelo espiral é um modelo de processo de software evolucionário que une a natureza iterativa da prototipação aos aspectos sistemáticos e controlados do modelo cascata, enfatizando no segundo quadrante da espiral a análise de riscos. 2. Um gerente de projeto, junto à sua equipe de engenheiros de software, está definindo o modelo de processo de software a ser adotado em determinado projeto de software. Os requisitos do software são complexos e parcialmente identificados, o cliente impôs restrições de prazo para que o software agregue valor no seu negócio. Nesse contexto, qual o modelo de processo mais adequado? A. Modelo de processo incremental. B. Modelo de processo evolucionário. C. Modelo espiral. D. Modelo em cascata. E. Modelo de processo iterativo. A alternativa "B" está correta. ● O modelo de processo evolucionário é o mais adequado em função da complexidade dos requisitos, estando eles parcialmente identificados. Esse modelo permite que os requisitos parcialmente identificados sejam considerados em um primeiro incremento, permitindo um melhor entendimento do domínio do problema e a identificação de novos requisitos para incrementos posteriores. O modelo possibilita, também, a disponibilização de versões de software agregando valor ao negócio do cliente. 10 Tema 04 - Módulo 02 Atividades de Classe 1. (Referência: CESPE - 2010 - TRE-MT - Analista Judiciário - Tecnologia da Informação) O RUP (Rational Unified Process) é uma técnica usada na modelagem de sistemas. Com relação a esse assunto, assinale a opção correta: A. Uma das principais características do RUP é o uso da iteração que, por meio de refinamentos sucessivos, melhora o entendimento do problema. B. O RUP fornece uma metodologia que utiliza um conjunto de ferramentas, modelos e entregáveis que interage diretamente com o código do sistema desenvolvido, agilizando o processo de compilação. C. Pelo fato de o RUP ser muito complexo, seu foco evita a redução dos riscos do projeto. Essa fase é tratada diretamente na UML. D. O RUP reduz sensivelmente os requisitos de documentação de um projeto. E. O RUP tem dois modelos de comunicação: um para ambientes fora da equipe de desenvolvimento e outro exclusivo para a equipe de desenvolvimento. A alternativa "A" está correta. ● O RUP possui como princípio, entre outros, ser iterativo e incremental. Iterativo porque as atividades se repetem a cada nova iteração, permitindo um melhor entendimento do negócio, ou seja, compreensão gradativa dos requisitos de software à medida que o desenvolvimento avança. 2. (Prefeitura Municipal de Jataí - Analista de Tecnologia da Informação (Quadrix - 2019) A. Acerca da linguagem de modelagem unificada (UML), assinale a alternativa correta: B. A UML é uma linguagem de código que tem a finalidade de criar, especificamente, o modelo físico de determinado sistema. C. Sua sintaxe foi projetada apenas para atender às linguagens‐alvo mais recentes, como a JavaScript. D. Apesar de ser uma ferramenta de modelagem muito poderosa, ela não é capaz de capturar conhecimento e expressá‐lo. E. A UML tem a finalidade de documentar e visualizar os artefatos que são especificados e construídos na análise e no desenho de um sistema. F. A melhor definição para a UML, de acordo com diversos analistas, é que ela é uma linguagem de programação visual. A alternativa "D" está correta. ● A UML é uma linguagem de modelagem que permite a especificação de artefatos de software gerados nas etapas de análise e projeto de um processo de software. 11 Tema 04 - Módulo 03 Atividades de Classe 1. (Empresa Brasileira de Correios e Telégrafos (Correios) - FIP - 2009). Assinale a alternativa que não apresenta características dos métodos ágeis de desenvolvimento de software: A. Entregas parciais do sistema em períodos curtos, que duram de semanas a meses, com preferência para intervalos menores. B. Atribuição dos requisitos de maior complexidade funcional e não funcional nas primeiras interações com os clientes, de forma a priorizar os aspectos críticos do sistema. C. Quantidade de código executável considerada a medida mais importante do progresso do desenvolvimento de um software. D. Mudanças nos requisitos, mesmo quando ocorrem próximas ao final do desenvolvimento. E. Processos de desenvolvimento e recursos tecnológicos disponíveis considerados mais importantes do que as interações entre os membros das equipes. A alternativa "E" está correta. ● Um dos valores dos métodos ágeis inclui “indivíduos e interações, mais do que processos e ferramentas”. Esse valor tem origem de uma rejeição dos proponentes dos modelos ágeis aos processos prescritivos com rigoroso formalismo, incluindo os respectivos métodos e ferramentas CASE sugeridas. Para esses proponentes, a comunicação entre membros da equipe, incluindo clientes, é mais importante. 2. Um engenheiro de software, no contexto de um projeto alinhado à metodologia ágil XP, está planejando as atividades relacionadas ao primeiro incremento, estabelecendo a seguinte sequência: detalhamento das histórias de usuários em tarefas, elaboração dos cartões CRC, codificação, elaboração dos testes unitários e execução dos testes. Assinale a opção correta relativa à sequência descrita: A. A elaboração dos testes deve ocorrer antes da codificação. B. A codificação deve ocorrer antes da elaboração dos cartões CRC. C. A elaboração dos cartões CRC deve ocorrer antes do detalhamento das histórias de usuários em tarefas. D. A codificação deve ser realizada antes da elaboração dos cartões CRC. E. A sequência está correta. A alternativa "A" está correta. ● A prática de desenvolvimento orientada a testes determina que os testes unitários sejam escritos antes da codificação, técnica também conhecida como “test first”. 12 Tema 04 - Módulo 04 Atividades de Classe 1. (Tribunal de Justiça do Estado do Rio Grande do Norte (TJ-RN) - COMPERVE - 2020) O Scrum é um framework dentro do qual as pessoas podem tratar e resolver problemas de forma ágil. O coração do Scrum está em suas sprints. Segundo o Scrum Guide, em um projeto que adota Scrum, a autoridade de cancelar uma sprint cabe ao A. Time scrum. B. Scrum Master. C. Product Owner. D. Team manager. E. Gerente de projeto. A alternativa "C" está correta. ● Somente o product owner tem a autoridade para cancelar um Sprint antes do prazo estabelecido, embora o possa fazer sob influência das partes interessadas. 2. O Método AUP é considerado uma simplificação do RUP, em função de seu ajuste aos valores do manifesto ágil. Qual atividade iterativa do AUP melhor representa a adesão ao seguinte valor: “Software em funcionamento, mais do que documentação abrangente”? A. Modelagem. B. Implementação. C. Testes. D. Implantação. E. Análise. A alternativa "A" está correta. ● O RUP possui como atividades que exigem modelagem: modelagem de negócio, levantamentode requisitos, análise e projeto. Podemos destacar que essas atividades foram agregadas na atividade modelagem do processo ágil AUP. 13 Tema 05 - Módulo 01 Atividades de Classe 1. Considerando os conceitos relacionados com a qualidade de software, preencha as lacunas nas afirmações abaixo. ● 1) ______________ é um lapso humano que resulta em um software incorreto. ● 2) ______________ é uma anomalia no produto. ● 3) ______________ ocorre quando uma unidade funcional de um sistema relacionado a um software não mais consegue desempenhar as funções necessárias ou deixa de operar dentro dos limites especificados. As lacunas estão correta e respectivamente preenchidas em: A. Erro - Falha - Defeito B. Erro - Defeito - Falha C. Defeito - Erro - Falha D. Defeito - Falha - Erro E. Falha - Erro - Defeito A alternativa "B" está correta. ● Um erro é uma diferença detectada entre o resultado de uma computação e o resultado correto ou esperado, ou seja, um problema introduzido no software pelo programador. Defeito é uma manifestação de um erro no software e pode acarretar uma falha. Uma falha é o resultado errado provocado por um defeito ou condição inesperada, causando a suspensão da execução normal do software. 2. (Petrobras Transporte SA ‒Transpetro ‒ Analista de Sistemas ‒ Negócios ‒ CESGRANRIO ‒ 2018). O custo da qualidade inclui todos os custos feitos na busca da qualidade, dividindo-se em custos de prevenção, de avaliação e de falha, interna e externa. Entre os custos de prevenção está o das atividades de: A. Testes e depuração B. Coleta de dados e métricas de avaliação C. Retrabalho necessárias para corrigir o erro D. Condução de revisões técnicas para os produtos de engenharia de software E. Gerência para planejar e coordenar todas as atividades de controle e garantia de qualidade A alternativa "E" está correta. ● Os custos de prevenção são caracterizados pelos esforços que a equipe de qualidade aplica na tentativa de evitar que o processo de desenvolvimento de software ou o software não apresentem defeitos, incluindo os custos relacionados com o planejamento da qualidade. 14 Tema 05 - Módulo 02 Atividades de Classe 1. (Defensoria Pública do Estado do Rio de Janeiro ‒ DPE-RJ ‒ Analista ‒ Tecnologia da Informação ‒ FGV-2019) A empresa “Armazéns do João”, com o propósito de adquirir um software de controle de estoque, solicitou a um analista de sua equipe de informática que verificasse a qualidade do software. A avaliação constatou que o software não possuía documentação técnica, não havia comentários no código, e suas classes e métodos possuíam nomes pouco significativos. Além disso, o software não garantia o acesso restrito a informações confidenciais de forma consistente. Com base nessas informações, o software não foi considerado de qualidade, pois não atendia às características desejáveis para: A. Manutenibilidade e confiabilidade B. Confiabilidade e usabilidade C. Usabilidade e segurança D. Manutenibilidade e segurança E. Portabilidade e manutenibilidade A alternativa "D" está correta. ● A manutenibilidade é um aspecto da qualidade de software que se refere à facilidade de um software de ser modificado a fim de corrigir defeitos, adequar-se a novos requisitos, aumentar a suportabilidade ou se adequar a um ambiente novo. O desenvolvimento de software seguro exige o cumprimento das necessidades de segurança do cliente. 2. (Fundação Papa João XXIII ‒ FUNPAPA ‒ Analista de Sistemas ‒ AOCP ‒ 2018) O gerenciamento de qualidade de software para sistemas de software compreende melhorias significativas no nível organizacional e de projeto. Com relação aos conceitos de qualidade de software, é correto afirmar que: A. No nível de projeto, o gerenciamento de qualidade está preocupado com o estabelecimento de um framework de processos organizacionais e padrões que levem a softwares de alta qualidade. Isso significa que a equipe de gerenciamento de qualidade deve assumir a responsabilidade de definir os processos de desenvolvimento do software que serão usados e os padrões que devem ser usados no software, bem como a documentação relacionada, incluindo os requisitos de sistema, projeto e código. B. No nível de projeto, o gerenciamento de qualidade envolve a aplicação de processos específicos de codificação, verificando se os processos planejados foram seguidos, e a garantia de que as saídas de projeto estejam em conformidade com os padrões aplicáveis ao projeto. C. No nível organizacional, o gerenciamento de qualidade está preocupado com o estabelecimento de um plano de qualidade. O plano de qualidade deve definir as metas de qualidade para o projeto e quais processos e padrões devem ser usados. D. No nível organizacional, o gerenciamento de qualidade envolve a aplicação de processos específicos de qualidade, verificando se os processos planejados foram seguidos, e a 15 garantia de que as saídas de projeto estejam em conformidade com os padrões aplicáveis ao projeto. E. No nível organizacional, o gerenciamento de qualidade está preocupado com o estabelecimento de um framework de processos organizacionais e padrões que levem a softwares de alta qualidade. Isso significa que a equipe de gerenciamento de qualidade deve assumir a responsabilidade de definir os processos de desenvolvimento do software que serão usados e os padrões que devem ser usados no software, bem como a documentação relacionada, incluindo os requisitos de sistema, projeto e código. A alternativa "E" está correta. ● De acordo com Sommerville (2011), o gerenciamento de qualidade de software para sistemas de software tem três principais preocupações: 1. No nível organizacional, o gerenciamento de qualidade está preocupado com o estabelecimento de um framework de processos organizacionais e padrões que levem a softwares de alta qualidade. Isso significa que a equipe de gerenciamento de qualidade deve assumir a responsabilidade de definir os processos de desenvolvimento do software que serão usados e os padrões que devem ser usados no software, bem como a documentação relacionada, incluindo os requisitos de sistema, projeto e código. 2. No nível de projeto, o gerenciamento de qualidade envolve a aplicação de processos específicos de qualidade, verificando que os processos planejados foram seguidos, e a garantia de que as saídas de projeto estejam em conformidade com os padrões aplicáveis ao projeto. 3. No nível de projeto, o gerenciamento de qualidade também está preocupado com o estabelecimento de um plano de qualidade. O plano de qualidade deve definir as metas de qualidade para o projeto e quais processos e padrões devem ser usados. 16 Tema 05 - Módulo 03 Atividades de Classe 1. (Universidade Federal de Pernambuco ‒ UFPE ‒ Analista de Tecnologia da Informação ‒ Sistemas ‒ COVEST-COPSET ‒ 2019) O engenheiro de software avalia que na sua equipe, em datas próximas da data de entrega de uma versão do sistema, a produtividade e o nível de estresse da equipe são impactados. Ele deseja automatizar o processo, de forma a mitigar esses efeitos. Para tanto: A. Como parte da implantação contínua, ele automatiza o processo de forma que impeça que a nova versão do sistema entre em produção, caso o teste falhe. B. Como parte da entrega contínua, ele automatiza uma série de rotinas para que o sistema seja automaticamente posto em produção. C. Como parte da implantação contínua, ele elabora uma série de testes para garantir que, ao implementar uma nova rotina ou funcionalidade, as outras partes do sistema continuem operando normalmente. D. Como parte da integração contínua, ele automatiza o processo de agregar novas mudanças na forma de recursos e funcionalidades, em uma nova versão. E. Como parte da entrega contínua, ele elabora smoke tests para garantir o funcionamento do sistema, antes de enviá-lo para produção. A alternativa "A" está correta. ● Sempre que ocorre uma falha no teste de software, esse não deverá migrar do ambiente de desenvolvimento para o ambiente de produção. 2. (Ministério Público do Estadode Alagoas ‒ MPE-AL ‒ Analista ‒ Desenvolvimento de Sistemas ‒ FGV ‒ 2018) Eduardo é o líder técnico do sistema de vendas de uma rede de farmácias. O sistema deve ser utilizado em mais de 40 unidades espalhadas por vários estados. O sistema entrou em produção e, já na primeira semana de uso, ficou muito lento e diversas vezes indisponível para os operadores das lojas. Diante desse cenário, assinale a opção que indica a técnica de teste que foi negligenciada. A. De fumaça B. Funcional de limite C. De desempenho D. Caixa-branca E. De análise de valor-limite A alternativa "C" está correta. ● Teste de desempenho é similar ao teste de carga, mas com o intuito de testar o software a fim de encontrar o seu limite de processamento de dados no seu melhor desempenho. No teste, normalmente é avaliada a capacidade de resposta em determinados cenários e configurações. 17 Tema 05 - Módulo 04 Atividades de Classe 1. Ministério Público de Contas do Estado do Pará ‒ MPC-PA ‒Analista ‒ Tecnologia da Informação ‒ CESPE ‒ 2019) A métrica de qualidade de código que mede a complexidade estrutural de um programa computando o número de caminhos linearmente independentes ao longo do código-fonte é denominada: A. Complexidade ciclomática B. Complexidade de Halstead C. Contagem de pontos de microfunção ponderados D. Índice de manutenibilidade E. Extensibilidade A alternativa "A" está correta. ● Complexidade ciclomática é uma métrica de software usada para indicar a complexidade de um programa de computador, por meio da medição da quantidade de caminhos de execução independentes a partir de um código-fonte. 2. (Assembleia Legislativa do Estado do Rio de Janeiro ‒ ALERJ ‒ Analista ‒ Tecnologia da Informação‒ FGV ‒ 2017) Um sistema está sendo desenvolvido por uma empresa terceirizada para apoiar as vendas de um mercado varejista da Grande São Paulo denominado “Mendes Sá Colão”. Após o desenvolvimento do sistema, a empresa terceirizada deverá passar o código-fonte para a área de TI da “Mendes Sá Colão”, que passará a ser responsável pela continuidade do sistema. Foi ressaltada, também, a necessidade de que o sistema, caso ocorra uma falha, recupere-se de forma automática e rapidamente. Nesse caso, os atributos de qualidade do sistema com maior peso são: A. Portabilidade e confiabilidade B. Manutenibilidade e confiabilidade C. Portabilidade e eficiência D. Confiabilidade e usabilidade E. Manutenibilidade e eficiência A alternativa "B" está correta. ● A medição atributo da manutenibilidade irá possibilitar reduzir o esforço na alteração do software após o recebimento do código-fonte do mesmo e a medição da confiabilidade permitirá uma rápida resposta a uma falha, caso ocorra. 18 Tema 06 - Módulo 01 Atividades de Classe 1. (Defensoria Pública do Estado do Rio de Janeiro ‒ DPE-RJ ‒ Analista ‒ Tecnologia da Informação ‒ FGV ‒ 2019). O software de controle de catracas “Sisentrada” foi desenvolvido e entregue a seus diversos clientes. Um deles relatou um problema. O software foi consertado e enviado novamente ao cliente, que percebeu que alguns erros já sanados em versões anteriores voltaram a ocorrer. No contexto da Engenharia de Software, a disciplina que é aplicada ao longo de todo o ciclo de vida, na qual houve falha, é: A. Gestão de Configuração de Software B. Especificação de Requisitos C. Gestão de Riscos D. Medição E. Comunicação com o Cliente A alternativa "A" está correta. ● A Gestão de Configuração de Software é uma área da Engenharia de Software responsável por fornecer o apoio para o desenvolvimento de software, sendo suas principais atribuições o controle de versão, o controle de mudança e a auditoria das configurações. 2. (FCC ‒ 2014 ‒ TRF ‒ 3ª REGIÃO ‒ Analista Judiciário ‒ Informática). A representação abaixo mostra como uma ferramenta de software realiza o controle de versões. Considere a figura acima e analise as seguintes afirmativas sobre gerência de configuração e mudanças: ● I . A figura sugere que cada vez que se modifica o projeto, a ferramenta registra o estado dos arquivos e armazena uma referência para essa captura. Se um dos arquivos não sofre alteração, seu estado não é alterado, apenas é criado um link para a versão anterior que já foi armazenada. ● II . Um Sistema de Controle de Versões (SCV) combina procedimentos e ferramentas para gerir diferentes versões de objetos de configuração que são criados durante o processo de 19 software. Um SCV implementa ou está ligado a um banco de dados de projeto (repositório) que guarda os objetos de configuração relevantes. ● III . Um repositório de gestão de configuração de software é um conjunto de estruturas de dados que permite a uma equipe de software gerir as modificações de modo efetivo. Propicia funções que impedem que as informações sejam compartilhadas entre vários desenvolvedores para garantir a integridade dos dados, porém não consegue detectar diferenças entre arquivos binários. Está correto o que consta apenas em: A. I e II B. III C. II e III D. I e III E. I A alternativa "A" está correta. ● Um objeto de configuração, isto é, armazenado no banco de dados, torna-se uma referência. O banco de dados registra somente os ICSs relevantes, ou seja, os que se tornam referências, possibilitando que as informações sejam compartilhadas entre vários desenvolvedores. 20 Tema 06 - Módulo 02 Atividades de Classe 1. (Secretaria Municipal de Finanças, Tecnologia da Informação e Controle Interno de Manaus ‒ Amazonas ‒ Técnico de Informática ‒ FCC ‒ 2019). No repositório SVN, o comando usado para criar uma cópia de trabalho do repositório para poder editar é o: A. CHECK-OUT B. DIFF C. PERFORM D. COMMIT E. UPDATE A alternativa "A" está correta. ● O Subversion (SVN) é um sistema de controle de versão open source que gerencia arquivos e diretórios controlando as alterações realizadas ao longo do tempo, sendo possível recuperar versões anteriores ou visualizar o histórico de alterações. Tem como ponto forte a utilização em rede, possibilitando que vários usuários possam trabalhar colaborativamente. A operação que permite gerar uma cópia do repositório para edição é o check-out. 2. Questão número dois do módulo 2.(Secretaria de Estado da Fazenda de Santa Catarina ‒ SEFAZ-SC ‒ Auditor Fiscal ‒ FCC ‒ 2018). Um dos primeiros passos para controlar a mudança é identificar os itens de software a serem controlados. Isto envolve, entre outros elementos, entender que a configuração de software se trata de uma: A. Agregação ou item de hardware ou software ou ambos projetados para serem gerenciados como uma única entidade. B. Instância identificada de um item de software. C. Versão específica de um item que foi acordada como tal. D. Versão formalmente aprovada de um item que é formalmente designado e corrigido em um momento específico durante o ciclo de vida do item. E. Característica funcional e física do hardware ou software, conforme estabelecido na documentação técnica ou obtido em um produto. A alternativa "E" está correta. ● A gestão de configuração de software requer a identificação de todos os itens que coletivamente definem a configuração do software, incluindo hardware e software. 21 Tema 06 - Módulo 03 Atividades de Classe 1. (Secretaria Municipal de Finanças, Tecnologia da Informação e Controle Interno de Manaus ‒ Amazonas ‒ Web designer ‒ FCC ‒ 2019). Um técnico em web design tem a incumbência de verificar a possibilidade de uso de um Gerenciamento de Repositório (SVN), sendo que em sua pesquisa este técnico verificou que, neste repositório, a operação de: A. Salvar no repositório mudanças feitas em uma cópia de trabalho corresponde à operação denominada commit. B. Criar um repositório corresponde à operação de check-out. C. Descartar modificações feitas no repositório corresponde à operação denominada status. D. Sincronizar uma cópia de trabalho com o repositório corresponde a uma operação de revisão. E. Criar uma cópia de trabalho, a partir do repositório, corresponde à operação denominada commit. A alternativa"A" está correta. ● Em um sistema de controle de versão distribuído, os desenvolvedores trabalham nos arquivos necessários e mantêm as novas versões em seu repositório particular, quando terminam de fazer alterações é efetivado o commit dessas alterações e eles atualizam esse repositório privado. O envio dessas alterações para o repositório do projeto denomina-se push. 2. Um engenheiro de software necessita realizar uma alteração em um determinado componente de software armazenado no repositório do projeto. Inicialmente, realiza um __________, transfere o componente para __________. Após a realização da alteração, realiza o __________ do componente, liberando a nova versão do componente atualizada no repositório do projeto. O sistema de gerenciamento de versão, por meio de um gerente de configuração, realiza o __________ , a fim de que seja gerado o código executável pelo ________. Assinale a opção que permite o correto preenchimento das lacunas: A. check-out, área de trabalho particular, check-out, check-in, plataforma de destino. B. check-in, área de trabalho particular, check-out, check-out, servidor de construção. C. check-out, área de trabalho particular, check-in, check-out, servidor de construção. D. check-out, área de trabalho particular, check-in, check-out, plataforma de destino. E. check-out, área de trabalho particular, check-in, check-in, servidor de construção. A alternativa "C" está correta. ● Podemos deduzir a partir do processo ilustrado na Figura 8, no qual o desenvolvedor realiza o check-in do código, a fim de evitar que duas pessoas alterem o mesmo componente, transferindo o referido componente para sua área de trabalho; após a realização da alteração, disponibiliza o componente no repositório do projeto por meio de um check-out. O gerente de configuração libera o componente para a geração do respectivo executável por meio de um segundo check-out, cabendo ao servidor de construção a geração do sistema executável 22 Tema 06 - Módulo 04 Atividades de Classe 1. (Prefeitura Municipal de São Luís ‒ Auditor Fiscal ‒ FCC ‒ 2018). Um auditor fiscal fez uma pesquisa na internet e obteve as seguintes informações: Há vários critérios para escolher uma ferramenta para esta finalidade, como popularidade, eficácia, desempenho, adequação e simplicidade. Este tipo de ferramenta serve para resolver três problemas: ● I. Registrar a evolução do projeto. ● II. Possibilitar o trabalho em equipe. ● III. Criar e manter variações do projeto. Tanto o Subversion, quanto o Git e o Mercurial atendem a estas necessidades. O auditor estava pesquisando sobre ferramentas de: A. Projeto e governança de portais corporativos B. Controle de workflows e Business Process Management (BPM) C. Gerenciamento Eletrônico de Documentos (GED) de projetos D. Controle e gerenciamento de versão E. Projetos de auditoria com base no PMBOK 5ª edição A alternativa "D" está correta. ● Subversion, Git e Mercurial são ferramentas utilizadas no controle de versões de itens de configuração de software. 2.(Companhia de Processamento de Dados do Estado da Bahia ‒ 2008). Assinale a alternativa que não corresponde a uma ferramenta de Gerenciamento de Configuração de Software. A. CVS B. Subversion C. ClearCase D. Ms-Project E. JEDI A alternativa "D" está correta. ● CVS, Subversion e Jedi são ferramentas de gerenciamento de versão open source, sendo a ClearCase uma ferramenta comercial. 23 Exercícios - Avalie sua Aprendizagem 01) Em um projeto de software, a equipe de desenvolvimento se depara com a tarefa de medir a qualidade do produto final. Eles consideram diferentes métricas para avaliar aspectos como eficiência, confiabilidade e usabilidade. A. Facilidade de manutenção. B. Tempo de resposta do sistema. C. Satisfação do usuário final. D. Portabilidade entre diferentes plataformas. E. Frequência de erros encontrados. A alternativa "B" está correta. ● A métrica mais relevante para avaliar a eficiência de um software é o tempo de resposta do sistema. Esta métrica reflete diretamente a rapidez com que o software executa tarefas e responde às solicitações dos usuários, um aspecto crucial da eficiência. 02) Uma indústria de alimentos compra sementes de vários fornecedores. No recebimento das cargas, as sementes passam por uma operação de classificação por cor, em uma esteira adquirida do fabricante MAQ, equipada com sensores e software de processamento de imagens. Na etapa seguinte do processo, as sementes são separadas em lotes, pelo critério de tamanho, e são, então, empacotadas. A separação dos lotes é realizada por um mecanismo robótico, controlado por computador e que, pelo fato de sofrer contínuo desgaste, necessita ser substituído a cada 1.000 horas de uso. Durante a última troca, em razão da indisponibilidade do equipamento produzido pela empresa MAQ, a indústria instalou, com sucesso, um equipamento robótico similar. Considerando o processo descrito, julgue os itens a seguir, relacionados aos fatores de qualidade. ● I- As operações de classificação e separação de sementes se interrelacionam e não podem falhar, pois essa falha acarretaria prejuízos. O atributo de qualidade correspondente a essas operações, e que deve ser observado pelo software, é a interoperabilidade. ● II- Caso o responsável pela instalação do sistema robotizado não tenha encontrado dificuldade em fazê-lo comunicar-se com o equipamento de outra marca, é correto concluir que o sistema que controla o robô é portável. ● III- A maneira como ocorre a interação com o sistema computacional sugere que alguns requisitos, como ergonomia, sejam observados na interface. Por isso, é correto concluir que o software utilizado pela indústria contempla o fator denominado usabilidade. Assinale a opção correta. A. Apenas os itens I e III estão certos. B. Apenas os itens II e III estão certos. C. Todos os itens estão certos. D. Apenas um item está certo. E. Apenas os itens I e II estão certos. A alternativa "D" está correta. 03) Em um projeto de software, a equipe enfrenta desafios ao integrar novas tecnologias. Isso requer uma abordagem estratégica para gerenciar as complexidades e garantir uma transição suave, alinhando-se com as melhores práticas da Engenharia de Software. 24 Qual é o aspecto mais crítico a ser considerado ao integrar novas tecnologias em um projeto de software? A. Enfatizar testes de usuário. B. Gerenciamento de riscos. C. Priorização de custos. D. Foco no desenvolvimento ágil. E. Adoção de ferramentas de colaboração. A alternativa "B" está correta. ● Ao integrar novas tecnologias em um projeto de software, o gerenciamento de riscos é crucial. Isso envolve a identificação, análise e mitigação de potenciais problemas que podem surgir devido à introdução de novas tecnologias, garantindo assim uma transição mais eficaz e alinhada com as práticas recomendadas da Engenharia de Software 04) Os engenheiros de software são os profissionais responsáveis pela elaboração de softwares. Sobre o conceito de software, analise as afirmativas abaixo. ● I - Seguem instruções que devem ser executadas para o desenvolvimento de hardwares muito específicos. ● II - Consiste em estruturas de dados que permitem aos programas manipular informações de forma adequada. ● III - Contém informação descritiva. Marque a alternativa que apresenta a(s) afirmativa(s) correta(s). A. Apenas as afirmativas II e III estão corretas. B. Apenas a afirmativa III está correta. C. Apenas as afirmativas I e III estão corretas D. Apenas as afirmativas I e II estão corretas. E. As afirmativas I, II e III estão corretas. A alternativa "A" está correta. ● A afirmativa I está incorreta. O software não segue instruções para o desenvolvimento de hardwares específicos. O software é uma entidade lógica separada do hardware e consiste em programas e dados que fornecem instruções para um computador executar tarefas específicas. ● A afirmativa II está correta. O software consiste em estruturas de dados que permitem aos programas manipular informações de forma adequada.As estruturas de dados são usadas para organizar, armazenar e manipular informações dentro de um programa. ● A afirmativa III está correta. O software contém informações descritivas, como códigos, instruções, configurações, dados, entre outros, que são necessários para que um programa ou sistema possa funcionar corretamente. 05) O projeto (ou "design", como é frequentemente chamado em inglês) é uma das etapas cruciais no ciclo de vida do desenvolvimento de software. O que são as entregas da etapa "projeto" do processo de desenvolvimento de software? A. Código-fonte e executáveis. B. Programadores e analistas. C. Plantas baixas e projetos elétricos. D. Frameworks e bibliotecas. E. Diagramas e especificações textuais. A alternativa "E" está correta. ● As entregas da etapa "projeto" são modelos, que incluem diagramas e especificações textuais. 25 06) Em um projeto de software, a equipe enfrenta desafios ao implementar uma função de login. A complexidade surge devido à necessidade de equilibrar segurança e usabilidade, envolvendo autenticação multifatorial. Considerando as melhores práticas, qual abordagem seria mais adequada? Qual é a abordagem mais adequada para implementar a função de login considerando segurança e usabilidade? A. Evitar autenticação multifatorial para simplificar o processo. B. Ignorar a usabilidade em favor da segurança máxima. C. Utilizar apenas senhas simples para facilitar o uso. D. Implementar a autenticação multifatorial com biometria e senhas. E. Usar somente verificações por e-mail para segurança. A alternativa "D" está correta. ● A implementação da autenticação multifatorial, combinando biometria e senhas, oferece um equilíbrio entre segurança e usabilidade. As outras alternativas falham ao priorizar excessivamente a segurança ou a usabilidade, comprometendo o equilíbrio necessário em um sistema de login 07) No que diz respeito aos processos e práticas no desenvolvimento ágil de software: A. enfoca a integração contínua como uma prática de desenvolvimento de software, incompatível com a XP (E xtreme Programming) e o Scrum, que permite aos desenvolvedores agregarem alterações de código e realizarem testes. B. enfoca, assim como o acceptance test-driven development, a qualidade do código desenvolvido quanto a recursividade, declaração das variáveis e clean code, de modo a torná-lo de fácil entendimento, modificação e testagem. C. é, na XP (Extreme Programming), sustentado por meio de pequenos e frequentes releases do sistema, e os clientes estão intimamente envolvidos na especificação e na priorização dos requisitos do sistema. D. a XP (Extreme Programming), é considerada um processo de desenvolvimento de software ágil que exige entre outras coisas: padronização do código, interação contínua e teste. E. pressupõe o uso do behavior driven development, que considera a linguagem de programação a ser usada, da 4° geração em diante, com foco, principalmente, no comportamento visual, interativo e cognitivo do sistema. A alternativa "D" está correta. ● A resposta correta é: a XP (Extreme Programming) , é considerada um processo de desenvolvimento de software ágil que exige entre outras coisas: padronização do código, interação contínua e teste. 08) Uma equipe de desenvolvimento está implementando o Extreme Programming (XP). Eles estão se concentrando em melhorar a qualidade do código e a resposta às mudanças de requisitos.Qual prática é fundamental no Extreme Programming (XP) para atingir esses objetivos? A. Documentação extensiva do código B. Desenvolvimento dirigido por testes C. Planejamento detalhado a longo prazo D. Revisões formais de design E. Alocação de tarefas individuais A alternativa "B" está correta. 26 ● No Extreme Programming, o Desenvolvimento Dirigido por Testes é uma prática chave que ajuda a garantir a qualidade do código e a capacidade de lidar com mudanças rápidas nos requisitos. 09) Considere as seguintes afirmativas: ● I- Seu escopo não deve abordar a definição do que será gerenciado, entretanto, deve definir o esquema a ser usado para identificar os itens de configuração. ● II- Deve especificar as ferramentas usadas para o gerenciamento de configurações e os respectivos processos de uso, porém não deve entrar no mérito de definição de políticas a serem adotadas no controle de mudanças. ● III- Deve estabelecer as responsabilidades pelos procedimentos de gerenciamento de configuração e ainda descrever a estrutura do banco de dados para o registro das informações de configuração. Um plano de gerenciamento de configurações de sistemas de software em desenvolvimento deve estar de acordo com o que consta em: A. II, apenas. B. II e III, apenas. C. I, apenas. D. I, II, e III E. III, apenas. A alternativa "E" está correta. ● A resposta correta é: III, apenas. 10) Sobre os sistemas de controle de versão, é correto afirmar que: A. O SVN utiliza um modelo centralizado para o versionamento de sistemas, enquanto o GIT apresenta um modelo distribuído, contendo cópias do repositório original em cada cliente. B. Dado seu comportamento centralizado, o GIT possui a desvantagem de ter um único ponto de falha, onde uma falha no servidor central ocasionará a perda completa do repositório, não sendo possível recuperar a partir do conteúdo existente nos clientes. C. Uma das vantagens em se utilizar um sistema de controle de versão centralizado está no fato de ser possível recuperar o conteúdo original a partir os repositórios presentes nos clientes. D. Uma das características dos sistemas de controle de versão é controlar de forma anônima as alterações que são realizadas no sistema versionado, obtendo somente um controle das alterações feitas no decorrer do tempo. E. Em um sistema de controle de versão distribuído, há um único servidor contendo todos os arquivos versionados. Os clientes obtêm somente parte do repositório armazenado no servidor, não possuindo a sua visão completa. A alternativa "A" está correta. ● A resposta correta é: O SVN utiliza um modelo centralizado para o versionamento de sistemas, enquanto o GIT apresenta um modelo distribuído, contendo cópias do repositório original em cada cliente. 11) Durante o desenvolvimento de software, a adaptação a mudanças é crucial. Uma equipe deve estar preparada para alterar o curso do projeto conforme as exigências do mercado e as necessidades do cliente evoluem. Qual habilidade é mais valiosa para uma equipe de desenvolvimento de software face às mudanças constantes? A. Capacidade analítica. 27 B. Gerenciamento de tempo. C. Flexibilidade. D. Comunicação eficaz. E. Habilidade técnica. A alternativa "C" está correta. ● A flexibilidade é a habilidade mais valiosa para uma equipe de desenvolvimento de software em um ambiente de mudanças constantes. Essa capacidade permite que a equipe se adapte rapidamente a novas exigências e necessidades, mantendo o projeto alinhado com as expectativas do mercado e do cliente. 12) Ao selecionar um portfólio de projetos de software, uma empresa deve equilibrar inovação e viabilidade. A escolha impacta diretamente o sucesso a longo prazo e a sustentabilidade da organização no mercado competitivo. Qual fator é crucial na seleção de um portfólio de projetos de software? A. Tamanho da equipe. B. Análise de mercado. C. Velocidade de entrega. D. Estimativa de lucro. E. Viabilidade técnica. A alternativa "E" está correta. ● Na seleção de um portfólio de projetos de software, a viabilidade técnica é um fator crucial. Ela determina se as capacidades técnicas da empresa estão alinhadas com os objetivos do projeto, garantindo que a inovação proposta seja realizável e sustentável a longo prazo. 13) Na fase inicial de um projeto de software, a definição clara de objetivos é fundamental. Isso ajuda a equipe a manter o foco e a direção, além de facilitar a medição do progresso e do sucesso do projeto. Qual é a chave para o sucesso na fase inicial de um projeto de software? A. Planejamento financeiro. B. Seleção de tecnologia. C. Definição de objetivos.D. Análise competitiva. E. Estruturação da equipe. A alternativa "C" está correta. ● A definição clara de objetivos é a chave para o sucesso na fase inicial de um projeto de software. Ela orienta a equipe, proporciona um sentido de direção e facilita a avaliação do progresso, sendo essencial para a realização eficaz do projeto. 14) Em um projeto de software, a eficiência no uso dos recursos é essencial. A gestão eficaz dos recursos determina a qualidade do produto final e a satisfação do cliente, sendo um fator chave para o sucesso do projeto. Qual é o elemento mais importante na gestão eficaz dos recursos em um projeto de software? A. Alocação de orçamento. B. Qualidade do código. C. Cronograma de entrega. D. Capacitação da equipe. E. Comunicação interna. A alternativa "A" está correta. ● A alocação de orçamento é o elemento mais importante na gestão eficaz dos recursos em um projeto de software. Uma alocação adequada assegura que todos os aspectos do 28 projeto, desde a equipe até a tecnologia utilizada, recebam os recursos necessários para uma execução bem-sucedida, impactando diretamente na qualidade e na entrega do produto. 15) CS-UFG/2017 - adaptada) No gerenciamento de projeto existem possibilidades de fluxos de processos. É necessário que uma metodologia seja aplicada de forma sistemática para gerar o produto software desejado. Para que esse gerenciamento seja regulamentado existe a Project Management Institute (PMI). Sobre o Project Management Institute (PMI), marque a alternativa correta. A. O Project Management Institute (PMI) é uma forma de PMBOK. B. O Project Management Institute (PMI) é uma estrutura de apoio gerencial. C. O Project Management Institute (PMI) é uma ferramenta de gestão de projetos. D. O Project Management Institute (PMI) é uma certificadora de PMP. E. O Project Management Institute (PMI) é um instrumento de elaboração de hardware. A alternativa "D" está correta. ● A certificação mais conhecida do PMI é a Project Management Professional (PMP), que é uma das certificações mais reconhecidas e respeitadas globalmente na área de gerenciamento de projetos. O PMI estabelece os critérios e requisitos para a obtenção da certificação PMP, bem como promove a disseminação de melhores práticas e conhecimentos nesse campo. 16) A Engenharia de Software é uma tecnologia em camada. Avalie a relação entre os conceitos e definições a seguir: 1] Camada qualidade [A] Determina as etapas de desenvolvimento do software. [2] Camada de processo [B] Garante que os requisitos que atendem as expectativas do usuário serão cumpridos [3] Camada de métodos [C] Define os artefatos gerados em função da técnica de modelagem adotada, tal como modelo de casos de uso ou de classes. Assinale a opção que corretamente relaciona os referidos conceitos e definições: A. [1][A] - [2][B] - [3][C] B. [1][B] - [2][C] - [3][A]. C. [1][B] - [2][A] - [3][C] D. [1][C] - [2][A] - [3][B]. E. [1][C] - [2][B] - [3][A]. A alternativa "C" está correta. 17) O Fluxo de Processo ou Ciclo de Vida é uma especificação do processo de desenvolvimento de software. No fluxo serão apresentadas as formas como essas atividades serão encadeadas. Sobre o fluxo de processos, analise as asserções I e II. I - No fluxo de Processo Linear as atividades são executadas em sequência de forma unidirecional. PORQUE II - No fluxo de processo paralelo as atividades podem ocorrer em paralelo. Marque a alternativa que apresenta a relação correta entre as asserções I e II. A. A primeira afirmativa é falsa e a segunda afirmativa é verdadeira. B. As duas afirmativas estão corretas e a segunda justifica a primeira. 29 C. A primeira afirmativa é verdadeira e a segunda afirmativa é falsa. D. As duas afirmativas são falsas. E. As duas afirmativas estão corretas e a segunda não justifica a primeira. A alternativa "E" está correta. 18) Os engenheiros de software são os profissionais responsáveis pela elaboração de softwares. Sobre o conceito de software, analise as afirmativas abaixo. ● I - Seguem instruções que devem ser executadas para o desenvolvimento de hardwares muito específicos. ● II - Consiste em estruturas de dados que permitem aos programas manipular informações de forma adequada. ● III - Contém informação descritiva Marque a alternativa que apresenta a(s) afirmativa(s) correta(s). A. Apenas a afirmativa III está correta. B. Apenas as afirmativas I e II estão corretas. C. As afirmativas I, II e III estão corretas. D. Apenas as afirmativas I e III estão corretas. E. Apenas as afirmativas II e III estão corretas. A alternativa "E" está correta. 19) Em um projeto de software, a equipe enfrenta desafios ao integrar novas tecnologias. Isso requer uma abordagem estratégica para gerenciar as complexidades e garantir uma transição suave, alinhando-se com as melhores práticas da Engenharia de Software. Qual é o aspecto mais crítico a ser considerado ao integrar novas tecnologias em um projeto de software? A. Gerenciamento de riscos. B. Foco no desenvolvimento ágil. C. Adoção de ferramentas de colaboração. D. Enfatizar testes de usuário. E. Priorização de custos A alternativa "A" está correta. ● Ao integrar novas tecnologias em um projeto de software, o gerenciamento de riscos é crucial. Isso envolve a identificação, análise e mitigação de potenciais problemas que podem surgir devido à introdução de novas tecnologias, garantindo assim uma transição mais eficaz e alinhada com as práticas recomendadas da Engenharia de Software 20) Em engenharia de software, o termo "requisito-chave" ou "requisito crítico" refere-se a um requisito que é considerado essencial ou de alta prioridade para o sucesso do projeto. Qual é o requisito-chave não funcional ao definir a interface gráfica com o usuário? A. Segurança. B. Integridade. C. Funcionalidade. D. Desempenho. E. Usabilidade. A alternativa "E" está correta. ● Ao definir uma interface entre o usuário e o sistema, o requisito-chave não funcional é a usabilidade. 30 21) Durante a fase de testes de um novo sistema de reservas online, a equipe de qualidade está empenhada em verificar a aderência do software aos requisitos definidos, além de sua integração e funcionamento adequados. Qual é a principal atividade realizada na fase de testes deste sistema de reservas online? A. Validação da aderência do software aos requisitos. B. Análise de mercado para futuras expansões. C. Refinamento da interface do usuário. D. Otimização da base de dados. E. Desenvolvimento de documentação técnica. A alternativa "A" está correta. ● A principal atividade durante a fase de testes de um software é a validação da aderência do software aos requisitos estabelecidos. Isso inclui garantir que todas as funcionalidades, desempenho e segurança do sistema de reservas online estejam de acordo com o que foi especificado na fase de engenharia de requisitos. 22) A negociação de requisitos é uma fase crucial na Engenharia de Requisitos, uma subárea da Engenharia de Software. O que é feito durante a etapa de Negociação no processo de Engenharia de Requisitos? A. Estabelecimento de um contrato entre clientes e equipe de projeto. B. Priorização e resolução de conflitos entre os requisitos. C. Geração de modelos para representar o sistema. D. Construção de diagramas de classes da UML. E. Levantamento detalhado dos requisitos funcionais. A alternativa "B" está correta. ● Durante a etapa de Negociação, ocorre a priorização e a resolução de conflitos entre os requisitos definidos nas etapas anteriores, envolvendo a avaliação de custos, riscos e conflitos. 23) A ISO 9126 identifica seis atributos fundamentais de qualidade para o software. Avalie se as afirmativas a seguir são Falsas ou Verdadeiras: A. Confiabilidade, atributo associado ao tempo de disponibilidade do software. B. Eficiência, atributo relacionado com a otimização dos recursos do sistema C. Portabilidade, atributo associado à satisfação dos requisitos funcionais. Assinale a opção correta: A. [V] - [V] - [F]. B. [V] - [F] - [V]. C. [V] - [V] - [V].D. [F] - [V] - [V]. E. [V] - [F] - [F]. A alternativa "A" está correta. 31 24) Ao implementar um novo software de gestão empresarial, a equipe de desenvolvimento se concentra em converter os modelos de projeto detalhados em código executável, mantendo em mente os padrões de qualidade e requisitos de desempenho. Qual é o principal foco da equipe durante a fase de implementação deste software de gestão empresarial? A. Análise de requisitos do sistema. B. Planejamento da infraestrutura de rede. C. Tradução dos modelos de projeto em código. D. Design de interface do usuário. E. Teste de integração de sistemas A alternativa "C" está correta. ● Na fase de implementação, o principal foco da equipe é traduzir os modelos de projeto em código executável. Este processo envolve a codificação com base nos projetos e especificações detalhados, garantindo que o software de gestão empresarial atenda aos padrões de qualidade e desempenho requeridos. 25) Durante a fase de projeto de software de um aplicativo educacional, a equipe foca em definir a arquitetura do sistema, incluindo padrões de design para facilitar a manutenção e a escalabilidade futuras. Qual atividade é essencial na fase de projeto deste aplicativo educacional? A. Escolha do sistema de gerenciamento de banco de dados. B. Implantação de módulos educacionais. C. Definição do modelo de classes do sistema. D. Testes de usabilidade com usuários finais. E. Codificação das funcionalidades principais. A alternativa "C" está correta. ● Na fase de projeto, a definição do modelo de classes do sistema é crucial. Esta atividade envolve determinar a estrutura dos dados e a interação entre diferentes componentes do sistema, o que é fundamental para um aplicativo educacional que necessita de uma arquitetura bem planejada para suportar funcionalidades escaláveis e manuteníveis. 26) Em um projeto de software para uma instituição financeira, a equipe de engenharia de requisitos enfrenta o desafio de identificar e documentar especificações detalhadas para garantir a segurança e eficiência nas transações. Este processo é crucial para o desenvolvimento subsequente. Qual das seguintes atividades é primordial na fase de engenharia de requisitos deste projeto? A. Teste de desempenho do software. B. Documentação de requisitos funcionais e não funcionais. C. Desenvolvimento de interfaces gráficas. D. Codificação de algoritmos de segurança. E. Implementação de protocolos de rede. A alternativa "B" está correta. 32 ● A documentação de requisitos funcionais e não funcionais é essencial na fase de engenharia de requisitos, pois define claramente o que o sistema deve fazer (requisitos funcionais) e as restrições operacionais (requisitos não funcionais), incluindo aspectos de segurança e desempenho para sistemas financeiros. 27) Na etapa de projeto orientado a objetos, no contexto de um processo de desenvolvimento de software, são desenvolvidas as atividades de: A. teste de integração do sistema e análise de requisitos do sistema. B. conversão das bases de dados do sistema e teste de integração do sistema. C. análise de requisitos do sistema e definição da arquitetura do sistema. D. identificação dos objetos do sistema e definição da arquitetura do sistema. E. definição da arquitetura do sistema e conversão das bases de dados do sistema. A alternativa "D" está correta. ● A resposta correta é: identificação dos objetos do sistema e definição da arquitetura do sistema. 28) Durante a produção de um software, defeitos podem ser descobertos.Qual cenário apresenta uma solução mais rápida para um defeito identificado na versão de software em produção? A. Continuar desenvolvendo a versão 2 com o defeito corrigido e liberá-la posteriormente. B. Corrigir o defeito na versão 1 e liberá-la imediatamente, enquanto ajusta a versão 2 em desenvolvimento. C. Ignorar o defeito. D. Redesenvolver todo o software. E. Aguardar o feedback dos usuários para a próxima iteração. A alternativa "D" está correta. ● Tecnicamente, esta é a melhor solução, pois o usuário teria de aguardar a liberação da versão 2, convivendo por um período com o impacto negativo do defeito do software no ambiente de produção. 29) Em um projeto que adota o Processo Unificado, o gerente de projeto está avaliando a fase de Elaboração. Ele busca garantir que as arquiteturas de software e hardware estejam alinhadas com os requisitos do projeto. Qual é o principal objetivo da fase de Elaboração no Processo Unificado? A. Definir requisitos de usuário detalhados. B. Realizar a codificação inicial do software. C. Implementar todas as funcionalidades do produto. D. Estabelecer a base arquitetural do sistema. E. Testar o produto final. A alternativa "D" está correta. 33 ● Na fase de Elaboração do Processo Unificado, o foco é estabelecer a arquitetura básica do sistema, assegurando que o projeto esteja no caminho certo antes de prosseguir para as etapas de Construção e Transição 30) Ao adotar o Scrum, uma empresa busca melhorar a gestão do seu processo de desenvolvimento. O foco está em incrementar a transparência e adaptabilidade.No Scrum, qual é o papel responsável por remover impedimentos e facilitar o trabalho da equipe de desenvolvimento? A. Lead Developer. B. Product Owner. C. Chief Technology Officer. D. Quality Assurance Manager. E. Scrum Master. A alternativa "E" está correta. ● No framework Scrum, o Scrum Master tem o papel vital de remover obstáculos que possam impactar o desempenho da equipe e facilitar os processos para assegurar eficiência e eficácia. 34 AVS 01) O processo de desenvolvimento de software permite uma melhor tratativa em relação à complexidade de obtenção de um determinado produto "software", pois na maioria das vezes é um trabalho multidisciplinar realizado por analistas, programadores, gerentes de projeto, gerentes de teste e outros. Considerando que uma metodologia de processo genérica encadeia atividades de acordo com a figura a seguir, assinale a sequência correta: A. Comunicação, planejamento, modelagem, construção e entrega. B. Planejamento, comunicação, modelagem, construção e entrega. C. Comunicação, modelagem, planejamento, construção e entrega D. Comunicação, planejamento, construção, modelagem e entrega. E. Planejamento, modelagem, comunicação, construção e entrega. 02) Em um projeto de software, a equipe enfrenta desafios ao implementar uma função de login. A complexidade surge devido à necessidade de equilibrar segurança e usabilidade, envolvendo autenticação multifatorial. Considerando as melhores práticas, qual abordagem seria mais adequada? Qual é a abordagem mais adequada para implementar a função de login considerando segurança e usabilidade? A. Ignorar a usabilidade em favor da segurança máxima. B. Implementar a autenticação multifatorial com biometria e senhas. C. Evitar autenticação multifatorial para simplificar o processo. D. Usar somente verificações por e-mail para segurança. E. Utilizar apenas senhas simples para facilitar o uso. A alternativa "B" está correta. ● A implementação da autenticação multifatorial, combinando biometria e senhas, oferece um equilíbrio entre segurança e usabilidade. As outras alternativas falham ao priorizar excessivamente a segurança ou a usabilidade, comprometendo o equilíbrio necessário em um sistema de login. 03) Em um projeto de software, a equipe enfrenta desafios ao integrar novas tecnologias. Isso requer uma abordagem estratégica para gerenciar as complexidades e garantir uma transição suave, alinhando-se com as melhores práticas da Engenharia de Software. Qual é o aspecto mais crítico a ser considerado ao integrar novas tecnologias em um projeto de software? A. Enfatizar testes de usuário. B. Gerenciamento de riscos. C. Priorização de custos. D. Adoção de ferramentas de colaboração. E. Foco no desenvolvimento ágil. 35 A alternativa "B" está correta. ● Ao integrar novas tecnologias em um projeto de software, o gerenciamento de riscos é crucial. Isso envolve a identificação, análise e mitigação depotenciais problemas que podem surgir devido à introdução de novas tecnologias, garantindo assim uma transição mais eficaz e alinhada com as práticas recomendadas da Engenharia de Software 04) Durante a fase de projeto de software de um aplicativo educacional, a equipe foca em definir a arquitetura do sistema, incluindo padrões de design para facilitar a manutenção e a escalabilidade futuras. Qual atividade é essencial na fase de projeto deste aplicativo educacional? A. Codificação das funcionalidades principais. B. Testes de usabilidade com usuários finais. C. Implantação de módulos educacionais. D. Escolha do sistema de gerenciamento de banco de dados. E. Definição do modelo de classes do sistema A alternativa "E" está correta. ● Na fase de projeto, a definição do modelo de classes do sistema é crucial. Esta atividade envolve determinar a estrutura dos dados e a interação entre diferentes componentes do sistema, o que é fundamental para um aplicativo educacional que necessita de uma arquitetura bem planejada para suportar funcionalidades escaláveis e manuteníveis. 05) Os engenheiros de software são os profissionais responsáveis pela elaboração de softwares. Sobre o conceito de software, analise as afirmativas abaixo. ● I - Seguem instruções que devem ser executadas para o desenvolvimento de hardwares muito específicos. ● II - Consiste em estruturas de dados que permitem aos programas manipular informações de forma adequada. ● III - Contém informação descritiva. Marque a alternativa que apresenta a(s) afirmativa(s) correta(s). A. Apenas as afirmativas II e III estão corretas. B. Apenas as afirmativas I e III estão corretas. C. Apenas as afirmativas I e II estão corretas. D. As afirmativas I, II e III estão corretas. E. Apenas a afirmativa III está correta A alternativa "D" está correta. ● A afirmativa I está incorreta. O software não segue instruções para o desenvolvimento de hardwaresespecíficos. O software é uma entidade lógica separada do hardware e consiste em programas e dadosque fornecem instruções para um computador executar tarefas específicas. 36 ● A afirmativa II está correta. O software consiste em estruturas de dados que permitem aos programasmanipular informações de forma adequada. As estruturas de dados são usadas para organizar, armazenare manipular informações dentro de um programa. ● A afirmativa III está correta. O software contém informações descritivas, como códigos, instruções,configurações, dados, entre outros, que são necessários para que um programa ou sistema possafuncionar corretamente. 06) Em um projeto de software para uma instituição financeira, a equipe de engenharia de requisitos enfrenta o desafio de identificar e documentar especificações detalhadas para garantir a segurança e eficiência nas transações. Este processo é crucial para o desenvolvimento subsequente. Qual das seguintes atividades é primordial na fase de engenharia de requisitos deste projeto? A. Codificação de algoritmos de segurança. B. Desenvolvimento de interfaces gráficas. C. Teste de desempenho do software. D. Documentação de requisitos funcionais e não funcionais. E. Implementação de protocolos de rede. A alternativa "D" está correta. ● A documentação de requisitos funcionais e não funcionais é essencial na fase de engenharia de requisitos, pois define claramente o que o sistema deve fazer (requisitos funcionais) e as restrições operacionais (requisitos não funcionais), incluindo aspectos de segurança e desempenho para sistemas financeiros. 06) Em um projeto de software para uma instituição financeira, a equipe de engenharia de requisitos enfrenta o desafio de identificar e documentar especificações detalhadas para garantir a segurança e eficiência nas transações. Este processo é crucial para o desenvolvimento subsequente.Qual das seguintes atividades é primordial na fase de engenharia de requisitos deste projeto? A. Teste de desempenho do software. B. Implementação de protocolos de rede. C. Codificação de algoritmos de segurança. D. Desenvolvimento de interfaces gráficas. E. Documentação de requisitos funcionais e não funcionais. A alternativa "E" está correta. ● A documentação de requisitos funcionais e não funcionais é essencial na fase de engenharia de requisitos, pois define claramente o que o sistema deve fazer (requisitos funcionais) e as restrições operacionais (requisitos não funcionais), incluindo aspectos de segurança e desempenho para sistemas financeiros. 37 08) Na etapa de projeto orientado a objetos, no contexto de um processo de desenvolvimento de software, são desenvolvidas as atividades de: A. identificação dos objetos do sistema e definição da arquitetura do sistema. B. teste de integração do sistema e análise de requisitos do sistema. C. conversão das bases de dados do sistema e teste de integração do sistema. D. definição da arquitetura do sistema e conversão das bases de dados do sistema. E. análise de requisitos do sistema e definição da arquitetura do sistema. A alternativa "A" está correta. ● A resposta correta é: identificação dos objetos do sistema e definição da arquitetura do sistema. 09) Ao selecionar um portfólio de projetos de software, uma empresa deve equilibrar inovação e viabilidade. A escolha impacta diretamente o sucesso a longo prazo e a sustentabilidade da organização no mercado competitivo. Qual fator é crucial na seleção de um portfólio de projetos de software? A. Viabilidade técnica. B. Velocidade de entrega. C. Análise de mercado. D. Tamanho da equipe. E. Estimativa de lucro. A alternativa "A" está correta. ● Na seleção de um portfólio de projetos de software, a viabilidade técnica é um fator crucial. Ela determina se as capacidades técnicas da empresa estão alinhadas com os objetivos do projeto, garantindo que a inovação proposta seja realizável e sustentável a longo prazo 10) Durante a produção de um software, defeitos podem ser descobertos. A. Continuar desenvolvendo a versão 2 com o defeito corrigido e liberá-la posteriormente. B. Redesenvolver todo o software. C. Ignorar o defeito. D. Aguardar o feedback dos usuários para a próxima iteração. E. Corrigir o defeito na versão 1 e liberá-la imediatamente, enquanto ajusta a versão 2 em desenvolvimento. A alternativa "E" está correta. ● Tecnicamente, esta é a melhor solução, pois o usuário teria de aguardar a liberação da versão 2, convivendo por um período com o impacto negativo do defeito do software no ambiente de produção. 38
Compartilhar