Prévia do material em texto
Engenharia de Software 1. Importância dos Softwares em nossas vidas 2. Missão da engenharia de software 3. Principais conceitos de engenharia de software 4. Principais responsabilidades do engenheiro de software, área de atuação e mercado de trabalho O engenheiro de software é responsável por · Desenvolver softwares e apps · Gerenciar projetos · Arquitetar o design estrutural · Realizar testes nos sistemas Requisitos de software abrangem as funcionalidades que a aplicação de softwares de ter para atender as necessidades do usuário do sistema Processo de software Ciclo de vida do software Exercício de fixação O Extreme Programming (XP) é, talvez, o mais conhecido e mais utilizado dos métodos ágeis. O XP recomenda o uso de refatoração, que consiste: A - Em garantir uma participação nos lucros aos membros da equipe de desenvolvimento, técnica que incentiva e aumenta o desempenho de toda a equipe. B - Na reorganização interna do código-fonte sem alteração no seu comportamento externo. Isso permite melhorias no projeto depois que a implementação já iniciou, uma vez que projeto e implementação ocorrem em paralelo. C - Na utilização de técnicas de ofuscação do código fonte, trazendo segurança e garantindo que apenas a equipe de desenvolvimento poderá ter acesso a este código. D - No envolvimento do cliente apenas na fase final do sistema, fator que difere de outras metodologias como SCRUM e TDD e confere agilidade ao processo de desenvolvimento. E - No processo de desenvolvimento contínuo, em que a equipe se mantém focada no sistema até que uma funcionalidade específica seja entregue, comumente agregando horas extras ao turno de trabalho. Os requisitos de software expressam necessidades e restrições de um produto de software que contribui para a solução de um problema real. Na área de conhecimento dos requisitos de software, os requisitos funcionais podem ser também definidos como requisitos de: A - qualidade. B - capacidade. C - segurança. D - desempenho. E - manutenção. Os tipos mais comuns de teste de construção de software são: A - Teste de aceitação e teste de integração. B - Teste de caixa preta e teste de integração. C - Teste unitário e teste de aceitação. D - Teste unitário e teste de caixa preta. E - Teste unitário e teste de integração. A engenharia de software, composta por um conjunto de elementos fundamentais disponibiliza ao desenvolvedor uma base para construção de um software de alta qualidade em termos de produtividade. O conjunto de elementos é composto por: A - métodos, ferramentas e procedimentos B - métodos e procedimentos C - ferramentas e procedimentos D - métodos e ferramentas E - planejamento de desenvolvimento O Ciclo de Vida de um Sistema especifica todas as fases de desenvolvimento, desde sua concepção até o processo de manutenção e declínio. No que diz respeito ao desenvolvimento de software, existem alguns processos conhecidos. Um destes processos, possui característica iterativa e incremental, inicia cada fase do projeto realizando um planejamento prévio, realiza a execução da fase, verifica o progresso e os resultados da fase (riscos, lições aprendidas) e incrementa novos objetivos para a fase seguinte, seguindo para a próxima iteração. O processo de software em questão é o: A - Ciclo de vida em cascata. B - Método de desenvolvimento RUP. C - Modelo de desenvolvimento ágil. D - Modelo espiral. E - Prototipação. (2015 - NUCEPE) A modularização de algoritmos é importante para organizar melhor o código, facilitar a manutenção, entre outras coisas. Sobre funções e procedimentos, assinale a alternativa CORRETA sobre a modularização: A - O procedimento sempre retorna um valor ao programa. B - A função retorna um valor ao programa. C - As variáveis definidas no escopo de cada função são acessíveis em todo o programa. D - As variáveis locais são declaradas no escopo do programa inteiro. E - A passagem de parâmetros para um subprograma pode ser somente por valor. O Scrum adota ideias da teoria de controle de processos industriais no desenvolvimento de softwares, reinserindo conceitos de flexibilidade, adaptabilidade e produtividade. O foco do método é: A - Criar um ambiente que não exija documentação. B - Encontrar técnicas para a manutenção efetiva do produto e transmitir essas técnicas para a equipe de desenvolvimento. C - Encontrar uma maneira para que os profissionais de TI atuem de forma flexível para produzir o software em um ambiente de constantes mudanças. D - Entender o planejamento do produto a longo termo e de forma empírica. E - Treinar o time para que crie, de forma clara e precisa, os itens do projeto de software. Requisitos de software expressam as necessidades e restrições colocadas sobre um produto de software que contribui para a solução de um problema do mundo real. Analise as informações sobre os requisitos não funcionais, também chamados de requisitos de qualidade: São levantados e elicitados após os requisitos funcionais, uma vez que os requisitos funcionais determinarão as funcionalidades da interface. I. Sempre serão definidos de forma mais concreta, através de requisitos funcionais, uma vez que o usuário manipula na interface somente as funcionalidades levantadas. II. Podem complementar os requisitos funcionais Assinale a alternativa correta: A - Afirmativa II, apenas B - Afirmativa III, apenas. C - Afirmativas I e II, apenas. D - Afirmativas II e III, apenas. E - Afirmativas I, II e III. Projetar um software é uma atividade bastante complexa, na qual grande parte desta complexidade está associada à natureza mutável do software. Assinale a sentença que melhor define o significado de projetar software: A - Entender o que é necessário na visão do cliente B - Levantar os custo e equipe necessária para construção do sistema C - Determinar como os requisitos funcionais devem ser implementados na forma de estruturas de software D - Construir o software atendendo aos requisitos levantados E - Desenhar as opções das interfaces para a apresentar ao usuário A manutenção dos softwares pode ser classificada conforme sua necessidade e engloba as atividades de: A - Manutenção corretiva, manutenção adaptativa e manutenção de aperfeiçoamento. B - Manutenção corretiva, manutenção adaptativa e manutenção de entrega. C - Manutenção corretiva, manutenção comparativa e manutenção de aperfeiçoamento. D - Manutenção inicial manutenção comparativa e manutenção de entrega. E - Manutenção inicial, manutenção adaptativa e manutenção de aperfeiçoamento. A verificação e a validação de uma interface de usuário ocorre em três pontos distintos: análise, projeto e teste. Considerando um cenário de uma aplicação web, tal verificação pode ser realizada através de testes de interface, testes de usabilidade e testes de compatibilidade. PRESSMAN, R. Engenharia de Software: Uma Abordagem Profissional, 7 ed., Mc Graw Hill, 2011 (adaptado) Nesse contexto, avalie as afirmações a seguir. I. O teste de interface experimenta mecanismos de interação e valida aspectos estéticos da interface do usuário, apontando erros específicos de interface e erros na maneira como interface implementa as semânticas de navegação, funcionalidade ou exibição de conteúdo. II. O teste de usabilidade avalia o grau com o qual os usuários podem interagir efetivamente com a aplicação e o grau em que a aplicação dirige as ações do usuário. III. O primeiro passo no teste de compatibilidade é definir uma série de configurações típicas encontradas do lado cliente e suas respectivas variantes, identificando características como plataforma, sistema operacional e navegador. Assinale a alternativa correta: A - I, apenas B - III, apenas C - I e II, apenas D - II e III, apenas E - I, II e III Qual a ordem correta dos estágios de maturidade das organizações, enquanto evoluem seu ciclo de desenvolvimento de software do modelo CMM (Capability Maturity Model), do menor para o maior: A - Inicial, definido, definido, otimizado e gerenciado. B - Inicial, definido,repetível, gerenciado e otimizado. C - Inicial, definido, repetível, otimizado e gerenciado. D - Inicial, repetível, definido, gerenciado e otimizado. E - Inicial, repetível, gerenciado, definido e otimizado. O Ciclo de Vida de um Sistema especifica todas as fases de desenvolvimento, desde sua concepção até o processo de manutenção e declínio. No que diz respeito ao desenvolvimento de software, existem alguns processos conhecidos. Um destes processos, possui característica iterativa e incremental, inicia cada fase do projeto realizando um planejamento prévio, realiza a execução da fase, verifica o progresso e os resultados da fase (riscos, lições aprendidas) e incrementa novos objetivos para a fase seguinte, seguindo para a próxima iteração. O processo de software em questão é o: A - Modelo espiral B - Ciclo de vida em cascata C - Prototipação D - Modelo de desenvolvimento ágil E - Método de desenvolvimento RUP Os métodos ágeis são fundamentados no desenvolvimento da entrega incremental tendo em vista atender aos requisitos dos clientes. Eles agregam um conjunto de princípios provenientes do manifesto ágil, tais como: · envolvimento do cliente; · entrega incremental; · pessoas, não processos; · aceitação das mudanças; · manutenção da simplicidade. O Scrum é um exemplo de método ágil de gerenciamento de projetos. Avalie as afirmações a seguir sobre a relação do Scrum com os princípios do manifesto ágil. I. O Scrum adota a entrega incremental por meio de Sprints. II. O Scrum adota a simplicidade por meio do uso da programação em pares. III. O Scrum adota o envolvimento do cliente com a priorização e negociação na concepção de Sprints. Assinale a alternativa correta: A - Somente a afirmativa I B - Somente a afirmativa II C - Apenas as afirmativas II e III D - Apenas as afirmativas I e III E - Apenas as afirmativas I e II (Enade - 2019) Usabilidade é o fator que assegura ao usuário a facilidade de uso e é definida em aspectos como a inteligibilidade, que pode ser definida como atributos do software que evidenciam: A - a satisfação subjetiva do usuário durante o uso de funções específicas. B - o esforço do usuário para sua operação e controle de sua operação. C - o esforço do usuário para reconhecer o conceito lógico e sua aplicabilidade. D - que o software esteja de acordo com as normas previstas em leis relacionadas à aplicação. E - o esforço do usuário para aprender funcionalidades e controles de fatores de entrada e saída. Projetar um software é uma atividade bastante complexa, na qual grande parte desta complexidade está associada à natureza mutável do software. Assinale a sentença que melhor define o significado de projetar software: A - Entender o que é necessário na visão do cliente B - Levantar os custo e equipe necessária para construção do sistema C - Determinar como os requisitos funcionais devem ser implementados na forma de estruturas de software D - Construir o software atendendo aos requisitos levantados E - Desenhar as opções das interfaces para a apresentar ao usuário Dentre as práticas do método ágil Extreme Programming (XP), está a prática de propriedade coletiva. É correto afirmar que, nessa prática: A - Cada projeto é realizado para atender às necessidades globais dos usuários, focando na coletividade da distribuição da informação. B - Grandes quantidades de horas extras não são consideradas aceitáveis, pois o resultado final, muitas vezes, é a redução da qualidade do código e da produtividade a médio prazo, sendo que o indivíduo pode afetar o desempenho de todo o time. C - Os trabalhos são desenvolvidos em conjunto, para que um programador possa analisar o trabalho do outro. D - Todos compartilham do mesmo orgulho, e das mesmas críticas. E - Um representante do usuário final do sistema deve estar disponível todo o tempo à equipe de desenvolvimento. Nesse modelo de desenvolvimento, o cliente é membro da equipe e participa da responsabilidade do código desenvolvido. Engenharia de software é uma abordagem sistemática e disciplinada para o desenvolvimento de software (PRESSMAN, 2006). Uma das grandes dificuldades da engenharia do software é resolver o problema e deixar o cliente satisfeito com o software (JALOTE, 2005). Avalie as afirmativas abaixo: I. A Engenharia de Software não se preocupa apenas com os processos técnicos do desenvolvimento de software. Ela também inclui atividades como gerenciamento de projeto de software e desenvolvimento de ferramentas, métodos e teorias para apoiar a produção de software. II. Por ser uma abordagem sistemática para a produção de software, a Engenharia de Software propõe técnicas e métodos universais que são adequados a todos os sistemas e a todas as empresas. III. Um processo de software é uma sequência de atividades que leva à produção de um produto de software. Assinale a alternativa correta: A - Apenas I. B - Apenas I e II. C - Apenas I e III. D - Apenas II e III. E - I, II e III. Requisitos de software expressam as necessidades e restrições colocadas sobre um produto de software que contribui para a solução de um problema do mundo real. Analise as informações sobre os requisitos não funcionais, também chamados de requisitos de qualidade: I. São levantados e elicitados após os requisitos funcionais, uma vez que os requisitos funcionais determinarão as funcionalidades da interface. II. Sempre serão definidos de forma mais concreta, através de requisitos funcionais, uma vez que o usuário manipula na interface somente as funcionalidades levantadas. III. Podem complementar os requisitos funcionais Assinale a alternativa correta: A - Afirmativa II, apenas B - Afirmativa III, apenas. C - Afirmativas I e II, apenas. D - Afirmativas II e III, apenas. E - Afirmativas I, II e III. A manutenção dos softwares pode ser classificada conforme sua necessidade e engloba as atividades de: A - Manutenção corretiva, manutenção adaptativa e manutenção de aperfeiçoamento. B - Manutenção corretiva, manutenção adaptativa e manutenção de entrega. C - Manutenção corretiva, manutenção comparativa e manutenção de aperfeiçoamento. D - Manutenção inicial manutenção comparativa e manutenção de entrega. E - Manutenção inicial, manutenção adaptativa e manutenção de aperfeiçoamento. _______ diz respeito ao relacionamento entre o nível de desempenho do software e a quantidade de recursos utilizados sob condições estabelecidas: A - Confiabilidade. B - Eficiência. C - Funcionalidade. D - Manutenibilidade. E - Usabilidade. O engenheiro de software deve minimizar a complexidade, utilizando a tecnologia para construção de softwares. Avalie os benefícios do uso das tecnologias e realize a associação entre elas: Relacione o segundo grupo com os enumerados no primeiro grupo. I. Middleware II. O projeto e uso da API III. Concorrência simultânea IV. Teste unitário e teste de integração ( )Variável protegida ( )Redução de falhas e de custo de correção ( )Fornece serviços acima da camada do sistema operacional ( )Conecta sistemas e aplicações Marque a alternativa que tem a ordem correta de numeração do segundo grupo: A - I, III, IV e II B - II, IV, III e I C - IV, III, II e I D - III, IV, I e II E - III, II, I e IV As escolhas de subconjuntos de linguagem de programação e padrões de uso são um auxílio importante para alcançar maior segurança. Os padrões que afetam diretamente as questões de construção incluem: Sendo assim, analise as sentenças a seguir e assinale V se a sentença for verdadeira e F se a sentença for falsa: · ( )Métodos de comunicação · ( )Linguagens de programação · ( )Padrões de modificabilidade · ( )Plataformas · ( )Ferramentas A sequência correta é: A - V, F, V, V e V B - F, V, V, F e V C - V, V, F, F e V D - V, V, F, V e V E - F, V, F, V e V O conceito de modularidade tem sido utilizado já há bastante tempo, como forma de obtenção de um software que apresente algumas características interessantes. Quanto a modularização NÃO é correto afirmarque: A - A independência funcional é a chave para um bom projeto, e o projeto é a chave da qualidade de software. B - Módulos independentes não são mais fáceis de manter e testar. C - Um modulo coeso realiza uma única tarefa dentro de um procedimento de software, requerendo pouca interação com procedimentos que estão sendo realizados em outras partes de um programa. D - Um projeto modular reduz a complexidade e facilita a modificação. E - Um projeto modular resulta em implementação mais fácil pelo incentivo ao desenvolvimento paralelo de diferentes partes de um sistema. ___________ incluem semáforos e monitores: A - Asserções e programação defensiva. B - Concorrência simultânea. C - O projeto e uso da API. D - Parametrização. E - Problemas de tempo de execução. _______ refere-se ao esforço necessário para se utilizar um produto de software, bem como o julgamento individual de tal uso por um conjunto de usuários: A - Confiabilidade. B - Eficiência. C - Funcionalidade. D - Manutenibilidade. E - Usabilidade. A hierarquia de controle nada mais é do que a representação, usualmente sob a forma hierarquizada, da estrutura do software no que diz respeito aos seus componentes. Seu objetivo consiste em: A - Apresentar detalhes procedimentais ou de sequenciamento entre processos. B - Demonstrar detalhes do sequenciamento entre os componentes. C - Estabelecer as relações entre os diferentes componentes do software, explicitando os níveis de abstração aos quais eles pertencem. D - Identificar os componentes mais utilizados no sistema. E - Representar as relações entre os componentes externos do sistema. A documentação do código-fonte é necessária, pois: A - É um item crucial para a entrega do projeto. B - É um item essencial tanto para atividades de validação do software quanto para as tarefas de manutenção. C - É um item importantíssimo para a consulta do usuário. D - É um item que auxilia somente nas tarefas de manutenção. E - É um muito importante e utilizado somente como validador do software. ___________ é o conjunto de assinaturas que são exportadas e disponíveis para os usuários de uma biblioteca ou uma estrutura para gravar seus aplicativos: A - Asserções e programação defensiva. B - Concorrência simultânea. C - O projeto e uso da API. D - Parametrização. E - Problemas de tempo de execução. Pode-se afirmar que a construção de software está envolvida com todas as áreas de conhecimento da engenharia de software. O SWEBOK (IEEE, 2004), apresenta cinco pilares para auxiliar a fase da construção do software, que são: A - Complexidade, antecipar a mudança, verificação, reuso e padrões em construção. B - Complexidade, atender a mudança, construir com verificação, reuso e usar padrões. C - Complexidade, mudança, verificação, reuso e construção. D - Minimizar a complexidade, antecipar a mudança, construir para a verificação, reuso e padrões em construção. E - Minimizar a complexidade, atender a mudança, construir, verificação e padrões em construção. O uso de _________ ajuda a alcançar os objetivos do projeto em termos de eficiência, qualidade e custo. A - Atas de reuniões. B - Documentação. C - Ferramenta CASE. D - Padrões em construção. E - Profissionais qualificadas. Projeto ________ visa a definir os grandes componentes estruturais do software e seus relacionamentos: A - Arquitetural. B - Da interface. C - De análise. D - De comunicação. E - De requisitos. Os tipos mais comuns de teste de construção são: A - Teste de aceitação e teste de integração. B - Teste de caixa preta e teste de integração. C - Teste unitário e teste de aceitação. D - Teste unitário e teste de caixa preta. E - Teste unitário e teste de integração. Especificamente, as escolhas de subconjuntos de linguagem de programação e padrões de uso são um auxílios importante para alcançar maior segurança. Os padrões que afetam diretamente as questões de construção NÃO incluem: A - Ferramentas. B - Linguagens de programação. C - Métodos de comunicação. D - Padrões de modificabilidade. E - Plataformas. Existem inúmeras técnicas para garantir a qualidade do código à medida que ele é construído. As principais técnicas utilizadas para a qualidade da construção incluem: A - Teste de unidade e teste de depuração, uso de programação defensiva, inspeções, revisões técnicas e análise estática. B - Teste de unidade e teste de depuração, uso de programação ofensiva, inspeções, revisões técnicas e análise estática. C - Teste de unidade e teste de integração, uso de programação defensiva, depuração, inspeções, revisões técnicas e análise estática. D - Teste de unidade e teste de integração, uso de programação defensiva, depuração, inspeções, revisões técnicas e análise simultânea. E - Teste de unidade e teste de integração, uso de programação ofensiva, depuração, inspeções, revisões táticas e análise estática. ________ indica a capacidade do software ser transferido facilmente de um ambiente (plataforma) para outro: A - Confiabilidade. B - Funcionalidade. C - Manutenibilidade. D - Portabilidade. E - Usabilidade. Segundo a IEEE (2004), um ponto importante na fase de manutenção é fazer uma análise de impacto do software existente, antes de realizar uma mudança e estabelecer algumas tarefas de análise de impacto. Onde deve-se primeiramente: A - Analisar as solicitações de mudanças. B - Ignorar o problema. C - Listar as modificações. D - Pesquisar opções para implementar a modificação. E - Realizar as modificações mais fáceis primeiro. De maneira geral, o planejamento de um processo de gerenciamento de configuração de software deve ser aderente ao contexto organizacional, sempre observando: A - As políticas de restrições. B - As regras de configuração do software. C - O calendário de distribuição do software. D - O retorno do projeto para a empresa. E - O valor do projeto no mercado. \ A __________________ é necessária quando os requisitos de sistema mudam em resposta ás mudanças organizacionais ou de negócio: A - Manutenção adaptativa. B - Manutenção comparativa. C - Manutenção corretiva. D - Manutenção de aperfeiçoamento. E - Manutenção inicial. A __________________ consiste na correção de erros observados durante a fase de operação: A - Manutenção adaptativa. B - Manutenção comparativa. C - Manutenção corretiva. D - Manutenção de aperfeiçoamento. E - Manutenção inicial. Entre as atividades de configuração de software NÃO está: A - A auditoria de configuração de software. B - A identificação de configuração de software. C - O controle de configuração de software. D - O levantamento de requisitos operacionais. E - O registro de status de configuração de software. Algumas vezes as mudanças são decorrentes de problemas que devem ser tratados com urgência. Entre os motivos principais para estas urgências estão: I- Corrigir um defeito grave no sistema, que compromete o andamento normal da aplicação II-Defeitos oriundos de alterações realizadas no ambiente operacional que comprometem a continuidade do funcionamento do sistema III- A implementação de mudanças inesperadas no funcionamento do negócio que executa o sistema, oriunda da concorrência ou uma nova legislação que afete o sistema Está correto o que consta em: A - I apenas. B - I e II apenas. C - I e III apenas. D - I, II e III. E - II e III apenas. O teste que concentra-se nos requisitos funcionais documentados pela especificação do programa, e não em detalhes internos do código, é denominado teste: A - Beta. B - Caixa branca. C - Caixa preta. D - De caminho básico. E - De fluxo de dados. Considere: O objetivo é executar o sistema sob o ponto de vista de seu usuário final, varrendo as funcionalidades em busca de falhas em relação aos objetivos originais. Os testes são executados em condições similares àquelas que um usuário utilizará no seu dia-adia de manipulação do sistema. A afirmativa refere-se ao teste de: A - Aceitação. B - Integração. C - Operação. D - Sistema. E - Unidade. A __________________ realiza alterações no software para que possa ser executado sobre o novo ambiente:A - Manutenção adaptativa. B - Manutenção comparativa. C - Manutenção corretiva. D - Manutenção de aperfeiçoamento. E - Manutenção inicial. . ________ indica que software deve funcionar por determinado período de tempo livre de erros e falhas: A - Confiabilidade. B - Funcionalidade. C - Manutenibilidade. D - Portabilidade. E - Usabilidade. Segundo a IEEE (2004), um ponto importante na fase de manutenção é fazer uma análise de impacto do software existente, antes de realizar uma mudança e estabelecer algumas tarefas de análise de impacto. Onde deve-se primeiramente: A - Analisar as solicitações de mudanças. B - Ignorar o problema. C - Listar as modificações. D - Pesquisar opções para implementar a modificação. E - Realizar as modificações mais fáceis primeiro. A __________________ é necessária quando os requisitos de sistema mudam em resposta ás mudanças organizacionais ou de negócio: A - Manutenção adaptativa. B - Manutenção comparativa. C - Manutenção corretiva. D - Manutenção de aperfeiçoamento. E - Manutenção inicial. A __________________ consiste na correção de erros observados durante a fase de operação: A - Manutenção adaptativa. B - Manutenção comparativa. C - Manutenção corretiva. D - Manutenção de aperfeiçoamento. E - Manutenção inicial. De maneira geral, o planejamento de um processo de gerenciamento de configuração de software deve ser aderente ao contexto organizacional, sempre observando: A - As políticas de restrições. B - As regras de configuração do software. C - O calendário de distribuição do software. D - O retorno do projeto para a empresa. E - O valor do projeto no mercado. O teste que concentra-se nos requisitos funcionais documentados pela especificação do programa, e não em detalhes internos do código, é denominado teste: A - Beta. B - Caixa branca. C - Caixa preta. D - De caminho básico. E - De fluxo de dados. Em quais situações justificam descartar um sistema de informação? A - Quando a equipe técnica perde seu principal componente B - Quando muda-se a tecnologia escolhida C - Quando o negócio da organização se modificar e quando os custos da manutenção superam os custos para desenvolver um sistema novo D - Quando o sistema está defasado e cheio de bugs E - Quando ocorre mudança de requisitos No que se refere a testes de software, é correto afirmar que: A - O teste da caixa branca (teste estrutural), baseia-se em testar as estruturas do código fonte, como comandos condicionais e de repetição. B - O teste da caixa preta (teste funcional), baseia-se em analisar os arquivos de log do sistema procurando por mensagens de funcionamento inconsistente. C - O teste de operação é a fase onde é testada a ergonomia da interface de uso do software. D - Um caso de teste é uma categoria de possíveis resultados na execução de testes. E - Um teste bem sucedido é um teste que não encontra nenhum erro no software. O processo de manutenção contém as atividades e tarefas necessárias para modificar um produto de software existente, preservando a sua integridade. A primeira atividades necessárias para manter a integridade na realização da manutenção de software é: A - Análise do problema e da modificação. B - Execução do Processo. C - Implementação da Modificação. D - Migração. E - Revisão e Aceitação da Modificação. Em relação a Qualidade e Teste de Software, quando um produto é previamente testado e enviado para uma nova avaliação, considere: I- Todas as partes alteradas nos documentos, funcionalidades e informações devem ser testadas como se fosse um produto novo. II- Todas as partes inalteradas que sejam influenciadas pelas partes alteradas ou por mudanças em um requerido sistema (de acordo com os conhecimentos específicos do testador) devem ser testadas por amostragem. III- Todas as outras partes que não foram alteradas ou influenciadas pelas alterações, devem ser testadas como sendo um novo produto. Está correto o que afirma-se em: A - I apenas. B - I e III apenas. C - I, II e III. D - II apenas. E - III apenas. Engenharia de software é uma abordagem sistemática e disciplinada para o desenvolvimento de software (PRESSMAN, 2006). Uma das grandes dificuldades da engenharia do software é resolver o problema e deixar o cliente satisfeito com o software (JALOTE, 2005). Avalie as afirmativas abaixo: I. A Engenharia de Software não se preocupa apenas com os processos técnicos do desenvolvimento de software. Ela também inclui atividades como gerenciamento de projeto de software e desenvolvimento de ferramentas, métodos e teorias para apoiar a produção de software. II. Por ser uma abordagem sistemática para a produção de software, a Engenharia de Software propõe técnicas e métodos universais que são adequados a todos os sistemas e a todas as empresas. III. Um processo de software é uma sequência de atividades que leva à produção de um produto de software. Assinale a alternativa correta: A - Apenas I. B - Apenas I e II. C - Apenas I e III. D - Apenas II e III. E - I, II e III. (Enade - 2019) Usabilidade é o fator que assegura ao usuário a facilidade de uso e é definida em aspectos como a inteligibilidade, que pode ser definida como atributos do software que evidenciam: A - a satisfação subjetiva do usuário durante o uso de funções específicas. B - o esforço do usuário para sua operação e controle de sua operação. C - o esforço do usuário para reconhecer o conceito lógico e sua aplicabilidade. D - que o software esteja de acordo com as normas previstas em leis relacionadas à aplicação. E - o esforço do usuário para aprender funcionalidades e controles de fatores de entrada e saída. Gerenciamento de requisitos é o processo de compreensão e controle das mudanças nos requisitos do sistema em desenvolvimento. Analise as afirmações sobre o gerenciamento de requisitos em processos de software tradicionais: I. mudanças nos requisitos do sistema devem ser avaliadas sem levar em conta implicações em custo e prazos, de forma a minimizar os riscos do projeto. II. é necessário definir políticas de rastreabilidade que permitam a fácil determinação dos antecedentes e consequências de todos os requisitos. III. uma das atividades necessárias ao gerenciamento de alterações de requisitos é a avaliação de seus impactos em relação aos objetivos do projeto. IV. como o gerenciamento de requisitos envolve o processamento de grandes quantidades de informações sobre os requisitos, é recomendável definir as ferramentas que serão usadas para o armazenamento dos requisitos, o gerenciamento de mudanças e para o gerenciamento da rastreabilidade. Assinale a alternativa correta: A - As afirmações I e IV estão corretas B - As afirmações I e II estão corretas C - As afirmações II, III e IV estão corretas D - As afirmações II e IV estão corretas E - As afirmações I, II e IV estão corretas Um modelo de processo de software é utilizado para explicar uma abordagem para o desenvolvimento de software. Identifique a alternativa abaixo que melhor identifica o modelo de processo de software no qual uma implementação inicial é exposta ao usuário para que possam ser realizados refinamentos posteriores que representam novas versões do sistema. As atividades de especificação, desenvolvimento e validação são intercaladas. A - Relational Unified Process (RUP) B - Desenvolvimento Evolucionário C - Método Ágil de Desenvolvimento D - Modelo de Desenvolvimento em Cascata E - Modelo de Engenharia de Software Baseado em Componentes O Rational Unified Process (RUP), tem como objetivo a produção de softwares de alta qualidade que atendam às necessidades dos usuários com orçamento e cronograma controlados. As fases abordadas pelo RUP, são: A - Análise, codificação, testes e entrega. B - Análise, construção, testes e transição. C - Entendimento, análise, codificação e testes. D - Iniciação, elaboração testes e entrega. E - Iniciação, elaboração, construção e transição. Qual a ordem correta dos estágios de maturidade das organizações, enquanto evoluem seu ciclo de desenvolvimento de software do modelo CMM (CapabilityMaturity Model), do menor para o maior: A - Inicial, definido, definido, otimizado e gerenciado. B - Inicial, definido, repetível, gerenciado e otimizado. C - Inicial, definido, repetível, otimizado e gerenciado. D - Inicial, repetível, definido, gerenciado e otimizado. E - Inicial, repetível, gerenciado, definido e otimizado. Projetar um software é uma atividade bastante complexa, na qual grande parte desta complexidade está associada à natureza mutável do software. Assinale a sentença que melhor define o significado de projetar software: A - Entender o que é necessário na visão do cliente B - Levantar os custo e equipe necessária para construção do sistema C - Determinar como os requisitos funcionais devem ser implementados na forma de estruturas de software D - Construir o software atendendo aos requisitos levantados E - Desenhar as opções das interfaces para a apresentar ao usuário Os requisitos de software, podemos encontrar diferentes tipos de requisitos, como: funcionais, de domínio e não funcionais. Os requisitos de software expressam necessidades e restrições de um produto de software que contribui para a solução de um problema real. Avalie as afirmações sobre a descrição dos requisitos: I. funcionais são somente requisitos de usuário. II. funcionais e não-funcionais podem ser requisitos de usuário. III. funcionais e não-funcionais podem ser requisitos de sistema. Assinale a alternativa correta: A - Apenas a afirmação I está correta B - Apenas a afirmação II está correta C - Apenas a afirmação III está correta D - Apenas as afirmações I e III estão corretos E - Apenas as afirmações II e III estão corretos O Scrum adota ideias da teoria de controle de processos industriais no desenvolvimento de softwares, reinserindo conceitos de flexibilidade, adaptabilidade e produtividade. O foco do método é encontrar uma maneira para que os profissionais de TI atuem de forma flexível para produzir o software em um ambiente de constantes mudanças. O fluxo do Scrum contempla: Relacione o segundo grupo com os enumerados no primeiro grupo. I. Sprint II. Backlog III. Time Boxed IV. Artefato não oficial V. Kanban ( )principal artefato do Scrum ( )eventos com duração fixa no Scrum ( )interação e um evento com duração fixa ( )quadro que compõe o painel de controle do time ( )burndown Marque a alternativa que tem a ordem correta de numeração do segundo grupo: A - II, I, V, IV e III. B - IV, II, III, V e I. C - I, II, IV, V e III. D - IV, V, III, II e I. E - II, III, I, V e IV. “Engenharia de software é uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até sua manutenção, depois que este entra em operação” (SOMMERVILLE, 2011). De acordo com os conceitos de projeto de software, relacione os conceitos aos seus objetivos: Relacione o segundo grupo com os enumerados no primeiro grupo. I. Hierarquia de controle II. Estrutura de dados III. Refinamento ( )Organização dos métodos de acesso ( )Deixar claro o nível de abstração ( )Definição da arquitetura do software a ser desenvolvido Marque a alternativa que tem a ordem correta de numeração do segundo grupo: A - I, III e II B - III, II e I C - II, I e III D - II, III e I E - III, I e II