Baixe o app para aproveitar ainda mais
Prévia do material em texto
ENGENHARIA DE SOFTWARE - RESUMÃO I - EXPLANAÇÃO GERAL SOBRE ENGENHARIA DE SOFTWARE a) O que é Engenharia de software? - O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente software que seja confiável e que funcione eficientemente em máquinas reais. - É uma área da engenharia e da computação voltada à especificação, desenvolvimento, manutenção e criação de software, com a aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando organização, produtividade e qualidade. Obs: A criação da Engenharia de Software surgiu numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos. b) O que é software? - Instruções (programas de computador) que, quando executadas, fornecem características, funções e desempenho desejados. - Estruturas de dados que possibilitam aos programas manipular informações adequadamente. - Informação descritiva, tanto na forma impressa quanto na virtual, descrevendo a operação e o uso dos programas. Resumindo: É um conjunto de instruções (programas de computador) que devem ser seguidas e executas por um mecanismo, seja ele um computador ou um aparato eletromecânico, inclusive as informação descritiva, tanto na forma impressa quanto na virtual. c) Curva de defeito de hardware e software? Curva de defeito de hardware Curva de defeito de software Está relacionada com o tempo de uso Está relacionada com as mudanças d) O que é Software Legado? São Software que foram desenvolvidos décadas atrás e têm sido continuamente modificados para se adequar às mudanças dos requisitos de negócio e a plataformas computacionais. e) O que é Processo de Software? É o conjunto de atividades, métodos, práticas, ferramentas e transformações que as pessoas utilizam para desenvolver softwares e artefatos associados. f) O que são Artefatos? É um dos vários tipos de subprodutos concretos produzido durante o desenvolvimento de software. Exemplos: - Diagramas de classes e outros modelos UML; - Requisitos e documentos de projeto - Planos de projetos - Processos de negócios e avaliações de risco; - Manuais; - Arquivos executáveis; - Módulos etc. g) O que é iteração? - Repetição de partes do processo à medida que os requisitos do sistema evoluem. - São atividades de desenvolvimento que levam ao release de um produto - uma versão estável e executável do produto, junto com qualquer outro elemento periférico necessário para utilizar esse release (documentação de apoio, scripts de instalação e artefatos similares, necessários para usar a liberação). - É uma passagem completa por pelo menos todas as disciplinas: Requisitos, Análise e Design, Implementação e Teste. h) O que é versão potencialmente entregável? É a versão mais completa do sistema (programa) i) O que são atividades de guarda-chuva? - São atividades transversais as demais etapas, que não participa no desenvolvimento do software. - É uma coleção de fases interconectadas. Onde uma série de etapas ou procedimentos são seguidos por uma equipe de desenvolvimento de software para manter o progresso, a qualidade, as mudanças e os riscos de tarefas completas de desenvolvimento. Exemplos: - Rastreamento e controle de projetos de software; - Avaliações técnicas formais; - Garantia de Qualidade de Software; - SCM ou gerenciamento de configuração de software; - Preparação e produção de documentos; - Gerenciamento de reutilização; - Medição e métricas; e - Gerenciamento de riscos. i) O que foi a Crise do Software e suas causas? Foram as dificuldades enfrentadas no desenvolvimento de software no fim da década de 60. Devido à complexidade dos problemas, a ausência de técnicas bem estabelecidas e a crescente demanda por novas aplicações começavam a se tornar um problema sério. Exemplos: - Falta de envolvimento do usuário/cliente; - Não atendimento dos requisitos do usuário; - Objetivos / requisitos incompletos; - Mudanças nos objetivos / requisitos; - Falta de apoio da alta gestão; - Falta de competência técnica; - Falta de recursos; - Expectativas irreais dos envolvidos; - Objetivos vagos; - Prazos irreais; - Novas tecnologias; - 1/3 dos projetos eram cancelados; e - 2/3 dos projetos extrapolavam o orçamento. j) O que compõe o processo de Software? O processo de software é composto por Atividades e Artefatos. Obs: - As atividades podem ser de apoio e metodológicas. - As atividades de apoio são chamadas também de atividades de guarda-chuva. j) As Fases genéricas do processo de software são? - Comunicação - Planejamento - Modelagem - Construção; e - Entrega k) O que é Requisitos do projeto? - É uma das partes mais importantes do processo de desenvolvimento é a engenharia de requisitos. II) MODELOS DE PROCESSOS SOFTWARES Os modelos de processos de softwares são: a) Processos Sequenciais - Cascata. b) Processos Iterativos ou Incrementais - RAD; e - Ágil (Scrum e XP, etc). c) Processos Evolutivos - Espiral ou Espiral Ganha-Ganha; - Incremental; e - Prototipação. d) Processo Unificado da Rational - RUP (Rational Unified Process) a) PROCESSOS SEQUENCIAIS ❖ MÉTODO CASCATA, LINEAR OU CLÁSSICO - Primeiro modelo publicado para o processo de desenvolvimento de software - Desenvolvimento é linear e sequencial. - Uma fase só executada quando a anterior termina. - Na primeira vez que uma fase de desenvolvimento é completada, o desenvolvimento prossegue para a próxima fase e não há retorno - Falta de flexibilidade ou revisão. - Os testes desses modelos são realizados na fase de análise. Obs: DESVANTAGENS a) Por não possuir muita flexibilidade as modificações podem causar confusão à medida que a equipe do projeto prossegue; b) Exige o estabelecimento todos os requisitos no início do projeto, coisa que o cliente sente um pouco de dificuldade; c) Versão executável fica disponível quase no final do desenvolvimento do projeto. Os erros podem ser desastrosos se não forem detectados até a entrega desse executável. b) PROCESSO ITERATIVOS OU INCREMENTAIS 1. MÉTODO RAD (Rapid Application Development) - Representa modelo de desenvolvimento rápido. - É usado em projetos que necessita de uma velocidade maior de desenvolvimento que o normal. - Esse modelo é usado em projeto com prazos muito curtos para entrega. 2. MÉTODOS ÁGILES - É um conjunto de técnicas e práticas para gestão de projetos que oferece mais rapidez, eficiência e flexibilidade. - Torna os processos mais simples, dinâmicos e iterativos, da concepção da ideia até o produto final. - 73% das organizações globais já utilizam os métodos ágeis para gerenciar seus projetos - Diferem das tradicionais em vários pontos, mas um dos principais é a velocidade do processo. - O foco é adaptar ao invés de planejar. - Os projetos são divididos em pequenas entregas denominada iterações. - Cada iteração é um “miniprojeto”, ou seja, inclui todas as etapas citadas em um ciclo rápido e eficiente, que gera uma entrega parcial. - Equipes entreguem mais valor em menos tempo. ❖ Principais características dos métodos ágeis: ▪ Desenvolvimento incremental, ou seja, de melhoria contínua. ▪ Cooperação entre equipe e cliente (ciclo de feedback constante). ▪ Entregas rápidas e de alta qualidade. ▪ Flexibilidade de escopo do projeto. ▪ Criação de valor progressiva e de acordo com as necessidades do cliente. ❖ Os 4 valores do manifesto ágil são: ▪ Indivíduos e interações mais que processos e ferramentas. ▪ Software em funcionamento mais que documentação abrangente. ▪ Colaboração com o cliente mais que negociação de contratos. ▪ Responder a mudanças mais que seguir um plano. a. TIPOS DE MÉTODOS ÁGEIS 1. Scrum Método Scrum - É um dos métodos Ágil.- O Scrum, além de ser muito eficaz, permite a alteração de funcionalidades durante o desenvolvimento de acordo com a necessidade e permite um processo muito fluido e, por isso, é o método usado para grande parte dos projetos. - O método ágil mais utilizado no mundo corporativo. - Não possui gerente de projeto. - Há várias reuniões diárias, semanais e mensais. - Tem foco na gestão de projetos - Tem um planejamento iterativo e incremental, por meio de Sprints. - Reuniões e entregas frequentes (diárias-final do dia), a fim de promover um desenvolvimento mais focalizado e feedback frequente. - Em cada Sprint, os membros da equipe - geralmente pequena - têm tarefas a cumprir e, no fim de cada uma delas, é feita uma reunião de alinhamento sobre o que foi entregue. - Product Owner (Dono do Produto): é o responsável por coordenar o time de desen- volvimento (ou time Scrum) e gerenciar o Backlog do produto. - Time de desenvolvimento: é a equipe multidisciplinar e auto-organizada envolvida no projeto. - Backlog: é o conjunto de funcionalidades do produto a ser desenvolvido, que vão mudando conforme o projeto avança - Sprint: é a iteração do Scrum, ou seja, cada ciclo rápido de trabalho que gera uma entrega parcial em intervalos de semanas ou meses. Cada projeto contém vários Sprints sequenciais, que possuem seus próprios Sprint Backlogs (conjuntos de funcionalidades por etapa). - Scrum Master: - é o facilitador do método - responsável por garantir que todos entendam e apliquem o Scrum corretamente. - Garante que as regras do método Scrum esteja sendo seguidas - Scrum team: Responsável pelas decisões técnicas. 2. EXTREME PROGRAMMING (XP) - Se parece bastante com Scrum. - Programação em pares - Enquanto o Scrum se foca nas práticas de gestão, o XP está mais ligado às funções técnicas. - Característica essencial do método é o feedback constante do cliente. - Propõe ciclos curtos que reduzem as incertezas e riscos do produto, adotando a melhoria constante de códigos, testes automatizados e integração contínua. - Objetivo do método é levar as boas práticas de desenvolvimento de software ao extremo. 3. EXISTEM OUTRO SMÉTODOS ÁGEIS - Feature Driven Development (FDD) - Microsoft Solutions Framework (MSF) - Dynamic System Development Model (DSDM) - Lean - Kanban - Scaled Agile Framework (SAFe) - Smart c) PROCESSOS EVOLUCIONÁRIO - Representa o desenvolvimento do software desde o protótipo inicial. - O cliente participa de todas as fases do desenvolvimento do software. Obs: VANTAGENS a) O executável final pode ser mostrado antes do término do projeto para o cliente; b) Neste modelo há uma melhor comunicação entre os desenvolvedores e usuários para melhor tratamento de erros, 1) ESPIRAL - Foi acrescentado a análise de riscos; - A prototipação é vista como um meio de redução de riscos; - Cada ciclo do modelo em espiral possui quatro atividades principais: - O modelo em espiral é um modelo que trabalha o tempo todo com riscos e dividi o projeto em outros menores. - O movimento em espiral possui uma estrutura que dá base para se tentar chegar ao fim do projeto com todos, ou quase todos, os riscos eliminados. - Procura sempre dar as bases para que todos os requisitos do projeto estejam bem definidos e entendidos por todos da equipe inclusive pelo cliente. Com essa estrutura o produto vai sendo desenvolvido e com o tempo surgem versões do software para averiguação e reconhecimento de problemas. Obs: VANTAGENS a) Atender a realidade dos projetos. Atender uma sequência mais real que o projeto segue, pois nem todo projeto segue o fluxo sequencial que o modelo em cascata propõe; b) Atender à necessidade que o cliente não tem noção no início do projeto de todos os requisitos para o desenvolvimento do mesmo. Esse modelo em espiral atende a flexibilidade de receber novos requisitos do cliente com o passar do tempo; c) Atender à necessidade do cliente de ver um protótipo de uma versão executável do software, mesmo que essa não esteja funcionando completamente. 2) INCREMENTAL - Alta flexibilidade, diferentemente do modelo em cascata. - Esse modelo é muito útil quando a empresa não possui mão de obra disponível no momento para uma implementação completa, dentro do prazo estipulado. - É interativo igual à prototipagem, mais diferente a prototipagem, o incremental tem como objetivo apresentar um produto operacional a cada incremento realizado. - Possui uma estrutura que permite que os documentos de uma fase possam ser mexidos para melhorias, mesmo se esses documentos estiverem em uma fase que foi completada, o que não acontece no modelo em cascata. - É formado por ciclos que por sua vez são formados por fases de análise, projeto, implementação e teste. - Nesse modelo os requisitos são divididos em grupos e esses são usados em cada clico. - O objetivo é minimizar os riscos do projeto e maximizar a importância nos requisitos. Modelo processo incremental 3) PROTOTIPAÇÃO - É um processo para desenvolver um produto mínimo viável (MVP), que é utilizado para simulações e testes de um produto ou um serviço antes do lançamento destes. - É uma versão funcional do sistema ou parte do sistema; e - É uma versão simulada do sistema ou amostra de um produto final. d) PROCESSO UNIFICADO DA RATIONAL (RUP- RATIONAL UNIFIED PROCESS) - Este método é fortemente documentado. - Criado para apoiar o desenvolvimento orientado a objetos utilizando o UML para ilustrar os processos - O software é desenvolvido de forma iterativa e utiliza em sua estrutura de desenvolvimento casos de uso. Os casos de uso servem para a aquisição dos requisitos que o usuário necessita para utilizar no software. - Esse modelo é formado por cinco elementos principais: papéis, atividades, artefatos, fluxos de trabalho e disciplinas. - O principal objetivo é atender as necessidades dos usuários garantindo uma produção de software de alta qualidade que cumpra um cronograma e um orçamento previsíveis - O gerenciamento de Riscos deve ser feito continuamente - O RUP organiza o desenvolvimento de software em quatro fases: Fase de Iniciação / Concepção: Esta fase do RUP abrange as tarefas de comunicação com o cliente e planejamento. É feito um plano de projeto avaliando os possíveis riscos, as estimativas de custo e prazos.. Fase de Elaboração: Abrange a Modelagem do modelo genérico do processo. O objetivo desta fase é analisar de forma mais detalhada a análise do domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto. Fase de Construção: Desenvolve ou Adquire os componentes de Software. O principal objetivo desta fase é a construção do sistema de software. Fase de Transição: Abrange a entrega do software ao usuário e a fase de testes. O objetivo desta fase é disponibilizar o sistema, tornando-o disponível e compreendido pelo usuário final. As atividades desta fase incluem o treinamento dos usuários finais e também a realização de testes da versão beta do sistema visando garantir que o mesmo possua o nível adequado de qualidade. d.1) CARACTERÍSTICAS DO RUP - Baseado em componentes - Usa UML - Framework para processos - Orientado a casos de uso - Iterativo e Incremental - Centrado na Arquitetura - Foco em Funcionalidades para o Cliente - Foco em Software Executável - Desenvolvimento Iterativo - Processo Iterativo, baseado no modelo Espiral x) MODELO DO PROCESSO EM V - É comparado com o modelo em cascata, mas os testes desses modelos são diferentes. - Os testes desses modelos são planejados e durante a execução da fase de implementação que esses testes são preparados, para que na fase de teste sejam executados, ao contrário do modelo em cascata onde são realizados na fase de análise. x) DESENVOLVIMENTO ORIENTADO A REUSO - É usado no desenvolvimentode projeto para incorporar elementos novos no produto. • Código; • Plano de teste; • Conhecimento geral; • Especificações de requisitos e projetos. II - QUESTIONÁRIOS 01) Processos de software podem ser compreendidos como as diversas fases necessárias para produzir e manter um software em funcionamento. Tais processos necessitam de organização lógica das atividades técnicas e gerenciais envolvendo usuários, desenvolvedores, modelos de processo e restrições que possibilitam disciplinar, sistematizar e organizar o desenvolvimento e manutenção dos softwares. Acerca dos processos de software, classifique V para as sentenças verdadeiras e F para as falsas: (V) A validação de software consiste em assegurar que o software está em conformidade com os requisitos previstos. (V) As atividades de processo de software podem ser implementadas com o auxílio de ferramentas CASE. (F) A fase de Engenharia de Requisitos é o processo pelo qual os requisitos de um produto de software são coletados, analisados, documentados e gerenciados, necessitando ser compreendido somente pela equipe de desenvolvimento. (V) No desenvolvimento de sistemas por meio de ciclo de vida iterativo, as necessidades dos usuários e os requisitos correspondentes não podem ser definidos no início do processo, já que são refinados em sucessivas iterações. (V) O processo de software tem como meta entregar um produto de software de maneira eficiente, previsível e que corresponda às necessidades de negócio, conforme os requisitos estabelecidos. Assinale a alternativa que apresenta a sequência CORRETA: F - V - V - F - F F - F - F - V - F V - F - V - F - V V - V - F - V - V 02) Requisito de software é uma documentação que diz o que o software deverá realizar quando se estabelece e mantém acordo entre o cliente e a equipe do projeto. Enfim, é um modelo sistemático para encontrar, documentar, organizar e rastrear os requisitos variáveis de um sistema. Sobre algumas dificuldades no processo de obtenção de requisitos apresentada por Carvalho e Chiossi (2001), analise as sentenças a seguir: I- Falta de conhecimento do usuário das suas reais necessidades e do que o produto de software pode lhe oferecer. II- Falta de conhecimento do cliente do domínio do problema e dificuldade em tomar decisões, dificuldades não encontradas no desenvolvedor por obter domínio técnico. III- Comunicação inadequada entre desenvolvedores e clientes. IV- Problemas de comportamento do coordenador de projeto, levando em conta que a equipe de desenvolvimento apresente comportamento exemplar. Agora, assinale a alternativa CORRETA: As sentenças I, III e IV estão corretas As sentenças I, II e III estão corretas As sentenças I e III estão corretas As sentenças II e IV estão corretas 03) No início da década de 70, o crescimento vertiginoso da produção de softwares deparou-se com um sério problema: a falta de técnicas predefinidas para o desenvolvimento de sistemas. Esta falta de conhecimento acarretou projetos de software de baixa qualidade, com códigos de difícil manutenção, com orçamentos e prazos que não condiziam com a realidade. Como esta situação relatada ficou conhecida? Crise de Software Crise de Projeto Crise da Engenharia do Software Crise Digital de 1970 04) Para melhorar a qualidade dos produtos de software e aumentar a produtividade no processo de desenvolvimento, surgiu a Engenharia de Software. A Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais. Sobre Engenharia de Software, analise as sentenças a seguir: I- É preciso muito mais do que os mais recentes computadores e as melhores ferramentas para se fazer um desenvolvimento de software de alta qualidade. II- Processo de Software abrange um conjunto de três elementos fundamentais: Métodos, Ferramentas e Procedimentos para projetar, construir e manter grandes sistemas de software de forma profissional. III- Para a Engenharia de Software, um processo é um conjunto de atividades e resultados associados, cujo objetivo é o desenvolvimento e a produção do software. IV- A Engenharia de Software surgiu para realizar o desenvolvimento de software, visando à construção de sistemas orientados a objetos e caracteriza-se por ser interativa e adaptativa, conseguindo produzir um porte como se fosse vários pequenos sistemas, o que diminui o risco do projeto. Agora, assinale a alternativa CORRETA: As sentenças I, II e III estão corretas As sentenças II, III e IV estão corretas As sentenças I e II estão corretas Somente a sentença III está correta 05) A evolução de software se preocupa principalmente com as mudanças do sistema em relação a diferentes versões ou releases. Para continuar útil, é crucial que sistemas de software possam ser facilmente adaptáveis a mudanças contínuas e flexíveis o suficiente para adição de novas funcionalidades. Sobre o que podemos considerar software, analise as sentenças a seguir: I- Programas de computadores que, quando executados, produzem a função e o desempenho desejado. II- Estruturas de dados que permitem a manipulação das informações; documentos que descrevem a operação e uso dos programas. III- Elemento de sistema físico e não lógico, consequentemente, o sucesso é medido pela qualidade de muitas entidades e não pela qualidade de poucas entidades manufaturadas. Agora, assinale a alternativa CORRETA: As sentenças I e III estão corretas As sentenças II e III estão corretas Somente a sentença III está correta As sentenças I e II estão corretas 06) A etapa de identificação e entendimento dos requisitos é fundamental para desenvolver um software com sucesso. Os requisitos são características ou regras de negócio específicas do projeto a ser desenvolvido. Entender estas particularidades reduz os riscos e os custos de desenvolvimento. Sobre os requisitos, classifique V para as sentenças verdadeiras e F para as falsas: (F) Existem apenas dois tipos de requisitos: funcionais e não funcionais (e Requisito inverso). (V) Requisito inverso é o terceiro tipo de requisito. (V) Requisito é uma importante documentação acerca do software que será desenvolvido e contempla regras específicas que deverão ser obedecidas na execução de cada atividade. (F) O sucesso dos projetos não depende do levantamento de requisitos. Assinale a alternativa que apresenta a sequência CORRETA: F - V - V - F F - F - F - V F - F - V - V V - V - V - F 07) A engenharia de software é composta por três elementos fundamentais: métodos, ferramentas e procedimentos. Estes elementos visam possibilitar ao gerente de projeto o controle do processo de desenvolvimento do software, bem como oferecer ao profissional uma base para a construção de um software de alta qualidade. Acerca dos elementos fundamentais da engenharia de software, classifique V para as sentenças verdadeiras e F para as falsas: (V) A definição de como serão estruturados os dados ou como será implementada uma funcionalidade do sistema são exemplos de atividades características dos métodos propostos pela engenharia de software. (V) As ferramentas CASE são programas que auxiliam o analista na construção do sistema, possibilitando prever como será sua estrutura, quais serão suas classes, entidades, seus fluxos internos e muitos outros detalhes. São elaborados vários diagramas que, em conjunto, constituem praticamente uma planta do sistema a ser desenvolvido. (F) Pode-se afirmar que há uma independência entre os elementos fundamentais; logo, a inobservância de algum não acarretará prejuízos aos demais. (V) Os procedimentos estabelecem a sequência em que os métodos serão executados, servindo como ponto de referência na administração do progresso do software. (V) Dentre os procedimentosa serem realizados em um projeto de software, pode-se citar o controle de qualidade e avaliação, procedimentos estes que antecedem a distribuição do software. Assinale a alternativa que apresenta a sequência CORRETA: V - F - V - F - V V - V - F - V - V F - V - V - F - V F - F - V - V - F 08) Segundo Sommerville (2007), para que um software seja desenvolvido de forma consistente, é preciso aliar boas práticas da engenharia de software com um robusto e eficiente processo de desenvolvimento. Diferentes tipos de sistemas necessitam de diferentes processos de desenvolvimento. Por exemplo, um software de tempo real de uma aeronave deve ser completamente especificado antes do início do desenvolvimento, enquanto que, em um sistema de comércio eletrônico, a especificação e o desenvolvimento do software podem ser conduzidos paralelamente. O uso de um processo de software inadequado pode reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido e/ou aumentar os custos de desenvolvimento. Este fato leva as organizações que produzem software a usar processos de desenvolvimento que sejam eficientes e que atendam plenamente às suas necessidades. Acerca dos processos de software a serem adotados, analise as sentenças a seguir: I- O processo de software pode ser definido como um complexo de atividades relacionadas que direcionam ao desenvolvimento de um produto de software. II- Dentre as atividades desenvolvidas no processo de software, destaca-se a definição das funcionalidades do software e as restrições a seu funcionamento. III- Independente do processo de software adotado, a atividade de validação deverá ser realizada, tendo por objetivo verificar a conformidade do artefato produzido com os requisitos previamente definidos. IV- Embora os processos de software sejam totalmente automatizados e complexos, é imprescindível a adoção de um processo de desenvolvimento de software previamente definido, o qual deverá ser seguido na sua integralidade. Assinale a alternativa CORRETA: As sentenças I e IV estão corretas As sentenças I, II e III estão corretas As sentenças I, III e IV estão corretas As sentenças II, III e IV estão corretas 09) Projetos são usados para se ter um adequado gerenciamento no desenvolvimento de novos produtos ou serviços, ou simplesmente para resolver problemas específicos em relação a estes. Delimitar o trabalho através do escopo do projeto é importante para os executores do projeto e principalmente para o cliente, pois, assim, ambas as partes estarão cientes das entregas que serão feitas. Um bom escopo é resultado da elaboração de uma detalhada lista de funcionalidades e regras de negócio elaboradas com o cliente. Esta lista pode ser entendida como o levantamento, reconhecimento e documentação dos requisitos necessários para o desenvolvimento do projeto. Sobre requisitos de software. Classifique V para as sentenças verdadeiras e F para as falsas: (V) Requisitos inversos especificam tudo aquilo que não será entregue ao usuário. (V) O gerenciamento de requisitos define a arquitetura do sistema, auxiliando nos testes e validações com o usuário final. (V) O sucesso de um projeto depende diretamente de um refinado levantamento de requisitos. (F) A falta de conhecimento do usuário com relação ao que ele realmente necessita não é considerado um problema na etapa de levantamento de requisitos. Assinale a alternativa que apresenta a sequência CORRETA: F - V - V - V V - V - F - F V - V - V - F V - F - V - F 10) O modelo de ciclo de vida de um artefato refere-se às inúmeras fases percorridas, desde o seu nascimento até a ocasião em que este não terá mais serventia. Num sistema computacional, os componentes possuem um ciclo de vida independente, mesmo quando estes se relacionam. Acerca do modelo de ciclo de vida de um software, classifique V para as sentenças verdadeiras e F para as falsas: (V) A fase de definição é o momento adequado para a especificação das atividades que deverão ser desempenhadas pelo software, bem como do levantamento de restrições de custo impostas pelos clientes. (F) Embora um ciclo de vida possa apresentar várias fases, as principais são: desenvolvimento e manutenção, sendo que esta última se divide em quatro categorias: iniciais, intermediárias, finais e conclusivas. (V) A fase de manutenção prevê a possibilidade de retificar os requisitos funcionais e não funcionais, buscando exatamente a melhoria no artefato produzido. (V) A fase de desenvolvimento pode variar conforme o método adotado, mas algumas são comuns a vários métodos. (F) As mudanças que ocorrerão em um software para deixá-lo mais completo, livre de erros, ou adaptado ao seu ambiente podem ser definidas como manutenção recursiva e incremental (Revisão). Assinale a alternativa que apresenta a sequência CORRETA: V - F - V - V - F V - F - F - V - F F - V - V - F - V F - V - F - F - V 11) (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, é Gestão de Configuração de Software Especificação de Requisitos Gestão de Riscos Medição Comunicação com o Cliente 12) (FCC -- 2014 - TRF - 32 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 software. III. Um SCV implementa ou está ligado a um banco de dados de projeto (repositório) que guarda os objetos de configuração relevantes. IV. 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: I e II III II e III I e III I 13) (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: Projeto e governança de portais corporativos Controle de workflows e Business Process Management (BPM) Controle e gerenciamento de versão Gerenciamento Eletrônico de Documentos (GED) de projetos Projetos de auditoria com base no PMBOK 5ª edição 14) (CEPS ‒ UFPA ‒ 2018). Um engenheiro de software está especificando os requisitos para um software que automatizea distribuição das turmas em salas de aula disponíveis em um campus de uma instituição de ensino superior. Durante o processo de levantamento e especificação de requisitos, o engenheiro de software identificou requisitos funcionais e requisitos não funcionais relacionados com o projeto que está sob reponsabilidade. Considere os requisitos relacionados a seguir: I- O sistema deve ser compatível com navegadores Web executando em smartphones. II - O sistema deve permitir o cadastro das salas de aula disponíveis para uso, sua localização e sua capacidade. III - O sistema deve permitir a emissão de relatórios contendo a alocação das salas e turmas. IV - O sistema deve ser desenvolvido com a linguagem Java. V - O sistema deve fornecer uma solução de interoperabilidade com os outros sistemas existentes na instituição. VI - Os relatórios gerenciais devem ser emitidos em no máximo dez segundos no contexto de mil usuários simultâneos. Dentre os itens relacionados de I a VI, são requisitos não funcionais: II, III, IV, V e VI, somente I, II e IV, somente II III e IV, somente I, IV, V e VI, somente V e VI, somente 15) A gestão de requisitos é um conjunto de atividades que tem como principal objetivo ajudar a equipe de projeto a: Negociar com os clientes os conflitos de prioridade de requisitos e identificar e analisar os riscos associados a cada requisito. Identificar, controlar e rastrear requisitos e modificações de requisitos em qualquer época, à medida que o projeto prossegue. Avaliar os requisitos quanto à qualidade, garantindo que ambiguidades, inconsistências, omissões e erros tenham sido detectados e corrigidos. Construir um modelo técnico refinado de funções, características e restrições do software. Utilizar ferramentas de engenharia de software para modelar os requisitos do sistema, através da UML. 16) (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: Testes e depuração Coleta de dados e métricas de avaliação Retrabalho necessárias para corrigir o erro Condução de revisões técnicas para os produtos de engenharia de software Gerência para planejar e coordenar todas as atividades de controle e garantia de qualidade 17) (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: Manutenibilidade e confiabilidade Confiabilidade e usabilidade Usabilidade e segurança Manutenibilidade e segurança Portabilidade e manutenibilidade 18) Os requisitos representam uma exigência, solicitação, desejo ou necessidade que o cliente tem com relação a um software. Os requisitos podem ser definidos conforme a funcionalidade que eles vão desempenhar nesse software e podem ser divididos em funcionais ou não funcionais. Sobre os requisitos funcionais, analise as sentenças a seguir: I- O sistema deve cadastrar funcionários. II- O sistema deve imprimir o relatório de clientes em até 5 segundos. III- O sistema deve emitir um relatório de clientes. IV- O cliente pode consultar seus dados no sistema. Agora, assinale a alternativa CORRETA: As sentenças I, III e IV estão corretas Somente a sentença III está correta As sentenças II, III e IV estão corretas As sentenças I, II e IV estão corretas 19) 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: alto desempenho e baixo tempo médio entre falhas alta disponibilidade e baixo tempo de resposta de usuário por evento uso conjunto de método ágil de sistemas e linguagem de programação orientada a objetos monitoramento de aeronaves cadastro de aeronaves 20) Sobre Versionamento e Gerenciamento de Versões, considere as afirmações abaixo. I- O gerenciamento de versões é o processo de acompanhamento de diferentes versões de componentes de software ou itens de configuração e dos sistemas em que esses componentes são usados. Refere-se também à garantia de que as mudanças feitas por diferentes desenvolvedores para essas versões não interfiram umas nas outras. II- Em um sistema de gerenciamento de versões com uma variedade de recursos, desenvolvedores diferentes não podem trabalhar, ao mesmo tempo, no mesmo componente, pois se o fizessem, as mudanças feitas por diferentes desenvolvedores poderiam interferir umas nas outras. III- Os sistemas de gerenciamento de versões fornecem, em geral, recursos de gerenciamento de armazenamento. Sua função é reduzir o espaço de armazenamento requerido pelas várias versões de componentes, que diferem apenas ligeiramente umas das outras. Em vez de manter uma cópia completa de cada versão, o sistema armazena uma lista de diferenças (deltas) entre uma versão e outra. Quais estão corretas? Apenas I e III Apenas II e III Apenas I e II Apenas II 21) Analise o seguinte cenário fictício: “Uma empresa de auditoria deseja controlar seus funcionários e os empregados terceirizados, bem como seus contratos com os clientes, através de um novo sistema”. Por ser uma empresa de auditoria, um ponto importante é a segurança, por isso a base de dados deve estar protegida e com acesso restrito aos usuários autorizados. O cliente também precisa de um forte gerenciamento de risco, prazo e custo, pois se o projeto não for entregue em seis meses ele não terá mais utilidade. Além disso, o sistema deve ser rápido, as consultas e os relatórios não devem demorar mais que 10 segundos. Outra solicitação é o calculo dos salários dos funcionários e terceirizados, todos os meses. “Além de indicar para qual cliente eles trabalharam”. Baseado no cenário identifique os requisitos não funcionais e classifique V para as sentenças verdadeiras e F para as falsas: (F) O sistema não pode demorar mais que seis meses e é necessário que o software calcule os salários dos terceirizados e mensalistas. (F) O sistema deve gerar relatórios mensalmente, separando por tipo de funcionário. (V) O tempo de resposta das consultas não deve superar os dez segundos. (F) Os relatórios por clientes indicam quem realizou os serviços. Assinale a alternativa que apresenta a sequência CORRETA: V - V - F - V V - V - F - F F - V - V - V F - F - V - F 22) Considere a lista de requisitos, a seguir, de um sistema que será desenvolvido. 1. O sistema deverá emitir relatórios de compras a cada 15 dias. 2. O sistema só irá permitir a visualização do campo "valor máximo" para gerentes. 3. O sistema deverá fornecer diariamente o relatório de despesas. 4. O sistema não poderá excluir um fornecedor do cadastro se o fornecedor estiver inadimplente. 5. O sistema não permitirá acesso aos registros de compras após as 17 horas. Em relação a esses requisitos, é correto afirmar que: 1 e 5 são requisitos funcionais e 2, 3 e 4 são requisitos não-funcionais Somente o requisito 5 é não-funcional São todos requisitos não-funcionais São todos requisitos funcionais 1 e 5 sãorequisitos não-funcionais e 2, 3 e 4 são requisitos funcionais 23) Os requisitos de um sistema são uma descrição de necessidades ou aspirações para um produto, os serviços que o sistema oferece ou não, além bem claras as restrições a seu funcionamento. Devido à complexidade dessa fase e, para que os problemas sejam minimizados, é muito importante requisitos sejam entendidos pelas partes interessadas, para que um requisito possa ser validado e aceito, e algumas verificações devem ser realizar. Sobre essas verificações, analise as sentenças a seguir: I- Ele deve ser documentado de maneira que seja de fácil compreensão por todos. II- Nem todos os requisitos podem ser testados após a entrega do sistema. III- A rastreabilidade dos requisitos a partir do problema de negócio. IV- A unicidade dos requisitos. Agora, assinale a alternativa CORRETA: Somente a sentença II está correta As sentenças I, II e III estão corretas As sentenças II, III e IV estão corretas As sentenças I, III e IV estão corretas 24) As falhas nos sistemas são decorrentes muitas vezes de problemas no levantamento de requisitos. Problemas de comunicação entre os analistas usuários, como os requisitos mal expressos, requisitos desnecessários para os clientes e a dificuldade para lidar com a constante alteração dos requisitos. Com relação aos requisitos funcionais e não funcionais, analise as sentenças a seguir: I- O sistema deverá emitir relatórios de vendas semanalmente, é um exemplo de requisito não funcional. II- O sistema permitirá a visualização do campo "salário" somente para o RH, é um requisito funcional. III- O relatório de despesas será gerado conforme a solicitação, é um requisito não funcional. Agora, assinale a alternativa CORRETA: As sentenças I e III estão corretas Somente a sentença II está correta As sentenças I e II estão corretas As sentenças II e III estão corretas 25) Os requisitos de usuário possuem como funcionalidade descrever os requisitos funcionais e não funcionais do software. Isso significa que precisa fáceis de utilizar pelo usuário do sistema. No levantamento dos requisitos, devem ser observados apenas requisitos externos, não possuir gírias, linguagem simples e de fácil compreensão pelo usuário. Podem ser encontrados, no levantamento dos requisitos do usuário, alguns problemas e linguagem natural. Assinale a alternativa CORRETA que apresenta esses problemas: Diminuição das aplicações, projeto e arquitetura Diminuição da velocidade, tamanho e dificuldade de uso Falta de confiabilidade, usabilidade e inconsistência Falta de clareza, confusão e fusão de requisitos 26) Identificar e especificar os requisitos funcionais e os não funcionais são atividades da Engenharia de Requisitos realizadas nos processos de: Planejamento de gerenciamento de requisitos e análise do problema Refinamento dos requisitos e aprovação dos requisitos Aprovação dos requisitos e planejamento de gerenciamento dos requisitos Definição dos sistemas e refinamento dos requisitos Análise do problema e definição dos sistemas 27) O Processo Unificado (RUP) reúne boas práticas de especificação e de projeto de sistemas, sendo um modelo genérico de processo organizado em fases que podem gerar um conjunto de produtos de trabalho. Considerando isso, assinale a opção que identifica a fase do RUP na qual devem estar incluídos o refinamento e a expansão dos casos de uso preliminares, dos requisitos não funcionais e da descrição da arquitetura do software. Concepção Produção Transição Elaboração Construção 28) Com relação à forma como o RUP trata a análise de requisitos, assinale a opção correta. A maior parte da análise de requisitos ocorre durante a fase de elaboração A análise de requisitos ocorre na fase de elaboração, em que são feitas entrevistas com usuários e definição do escopo do projeto A análise de requisitos deve acontecer antes da programação e testes do sistema, não podendo sofrer alterações a partir do momento que estejam definidos A análise de requisitos ocorre na fase de construção, quando são descritos todos os casos de uso, e em seguida modelados por meio de diagramas de casos de uso UML Por se tratar de um processo iterativo e evolutivo, a análise de requisitos ocorre na fase de construção juntamente com a programação, o que permite que os requisitos sejam revistos 29) Quais são as metodologias de desenvolvimento? F XP V Ágil F Scrum F RUP V Tradicional 30) Quais fases abaixo pertencem ao Processo Unificado (RUP)? Iniciação, Elaboração, Desenvolvimento e Transição. (DEIT) Negócios, Elaboração, Codificação e Instalação Iniciação, Modelagem, Desenvolvimento e Transição Iniciação, Elaboração, Desenvolvimento e Implantação Requisitos, Elaboração, Desenvolvimento e Testes 31) A ferramenta que possibilita apoiar as atividades de processo de software, como a análise de requisitos, a modelagem de sistema, a depuração e os testes é chamada de: RU UML XP CASE 32) Na Análise de Requisitos, quais são os princípios básicos que devem ser utilizados, em reuniões de levantamento de requisitos junto aos usuários? Fazer anotações e documentar as decisões Escutar, escutar e escutar Utilizar de desenhos se algo não estiver claro Todas as alternativas estão corretas 33) Analise as sentenças e marque a alternativa correta: são práticas condenáveis em engenharia de Software: I. a construção de softwares monolíticos, ou seja, com um único e grande módulo; II. A construção de software com excesso abusivo de módulos; III. a construção de softwares utilizando do bom senso na definição da quantidade de módulos I, II e II I e II I e III II e III 34) Podemos definir RELEASE de um sistema como sendo: A primeira versão lançada comercialmente A versão beta de um Sistema A versão que é efetivamente distribuída para os clientes A versão de teste antes de ser distribuída para o cliente 35) Quais são os atributos de um bom software? Facilidade de Manutenção e Facilidade de Uso Nível de Confiança e Facilidade de Uso Eficiência e Facilidade de Uso Todas as alternativas estão corretas 36) Quais seriam os paradigmas da Engenharia de Software: Processo, Métodos e Prototipação Processo, Métodos e Ferramentas Métodos, Ferramentas e Prototipação Processo, Ferramentas e Requisitos 37) Qual é a metodologia normalmente utilizada nas aplicações baseadas na web? Metodologia Estruturada Metodologia Orientada a Objetos Metodologia Desenvolvimento Ágil Nenhuma das Metodologias anteriores 38) Quais são os modelos de desenvolvimento de software mais referenciados? Workflow, incremental e Espiral Workflow, Cascata e Espiral Cascata, incremental e Espiral Workflow, Cascata e Incremental 39) Os objetivos do Gerenciamento de Riscos incluem aumentar a probabilidade e o impacto de eventos positivos (oportunidades) e diminuir a probabilidade e o impacto dos eventos adversos (ameaças). Neste contexto, avalie se as afirmativas a seguir são F ou V: I - As potenciais fontes de riscos para o projeto podem ser apresentadas dentro de uma Estrutura Analítica do Risco (EAR) hierárquica. II - A análise quantitativa permite priorizar os riscos que mereçam maior cuidado, a fim de identificar as piores ameaças e as melhores oportunidades. III - A análise qualitativa define para cada risco a sua probabilidade e impacto. V F V V V F V V V V F F F VV 40) Após atuar como programador em uma empresa de desenvolvimento de software por aproximadamente 10 anos, um funcionário que se destacou por nunca atrasar um cronograma foi nomeado gerente de projetos. Ao assumir o primeiro projeto, o funcionário foi informado que sua principal responsabilidade era a realização da entrega conforme o cronograma estabelecido no contrato. Para o gerenciamentode tempo, o gerente de projetos irá utilizar o PMBOK. Considerando essa situação, é correto afirmar que o gerente de projetos deverá coordenar processos de: Planejamento de compra e contratações, seleção de fornecedores e encerramento do contrato Estimativa de custos, realização do orçamento e controle de custos Definição e sequenciamento de atividades, estimativa de recursos e duração da atividade, desenvolvimento e controle do cronograma Planejamento, definição, verificação e controle do escopo Planejamento, garantia e controle da qualidade 41) Na etapa de projeto orientado a objetos, no contexto de um processo de desenvolvimento de software, são desenvolvidas as atividades de: Teste de integração do sistema e análise de requisitos do sistema Análise de requisitos do sistema e definição da arquitetura do sistema Definição da arquitetura do sistema e conversão das bases de dados do sistema Identificação dos objetos do sistema e definição da arquitetura do sistema Conversão das bases de dados do sistema e teste de integração do sistema 42) A avaliação do impacto de mudança de um requisito, muitas vezes, faz com que seja necessário retornar à sua fonte. Na validação dos requisitos, a equipe deve estar atenta, portanto, à: Adaptabilidade Facilidade de compreensão Qualidade Rastreabilidade Facilidade de verificação 43) É uma ferramenta que explicita a relação direta dos requisitos entre si ou com os outros componentes do projeto. Assim, caso alguma alteração seja feita no projeto, sabe-se quais requisitos serão afetados com tal mudança, estamos falando de? Resposta: Matriz de rastreabilidade de requisitos. Obs: permite cruzar os dados sendo rastreados e marcar os pontos de intersecção entre eles. 44) A gestão de requisitos é um conjunto de atividades que tem como principal objetivo ajudar a equipe de projeto a: Identificar, controlar e rastrear requisitos e modificações de requisitos em qualquer época, à medida que o projeto prossegue Utilizar ferramentas de engenharia de software para modelar os requisitos do sistema, através da UML Avaliar os requisitos quanto à qualidade, garantindo que ambiguidades, inconsistências, omissões e erros tenham sido detectados e corrigidos Construir um modelo técnico refinado de funções, características e restrições do software Negociar com os clientes os conflitos de prioridade de requisitos e identificar e analisar os riscos associados a cada requisito 45) O guia PMBOK 4° edição tem uma área dedicada ao Gerenciamento da Qualidade do Projeto − GQP. De acordo com o guia, é INCORRETO afirmar que: uma métrica da qualidade é uma definição operacional que descreve, em termos bem específicos, um atributo do projeto ou do produto e como o processo de controle da qualidade irá medi-lo o GQP engloba o gerenciamento do projeto e o produto do projeto, e é a única área do PMBOK que se aplica exclusivamente a projetos de software uma métrica relacionada com o objetivo de qualidade de ficar dentro do orçamento aprovado em \(\pm\) 10% poderia ser medir o custo de cada entrega e determinar a variação percentual do orçamento aprovado para essa entrega as métricas da qualidade são usadas nos processos de garantia da qualidade e de controle da qualidade. A tolerância define as variações aceitáveis nas métricas alguns exemplos de métricas da qualidade incluem desempenho dentro do prazo, controle do orçamento, frequência de defeitos, taxa de falha, disponibilidade, confiabilidade e cobertura de testes 45) Considere as informações abaixo em relação ao desenvolvimento de sistemas: I. executar um software com o objetivo de revelar falhas, mas que não prova a exatidão do software II. correta construção do produto III. construção do produto certo Correspondem corretamente a I, II e III, respectivamente: validação, verificação e teste teste, verificação e validação verificação, teste e validação validação, teste e verificação teste, validação e verificação 46) Preencha as lacunas e assinale a alternativa correta em relação ao gerenciamento de configuração e mudança O gerenciamento de configuração de software é um conjunto de ______________ que foi desenvolvido para administrar as mudanças em todo o ciclo de vida do software. Tais atividades são utilizadas para _____________ a mudança, controlar a mudança, garantir que a mudança esteja sendo adequadamente implementada e relatar a mudança a outras pessoas que possam ter interesse nela. atividades / conduzir rotinas / manter atividades / identificar etapas / corrigir ferramentas / agilizar 47) Considerando o uso do RUP (Rational Unifie d Process), deve-se considerar que, segundo essa técnica: A disciplina Requisitos apresenta menor atividade na fase de Concepção (Inception) A disciplina Modelagem de Negócio apresenta maior atividade na fase de Construção A disciplina de Teste não é executada na fase de Elaboração A disciplina Configuração e Gerenciamento de Mudanças não é executada na fase de Elaboração O número de iterações em cada uma de suas quatro fases é variável, conforme o projeto 48) Considerando as áreas de conhecimento do gerenciamento de projetos, avalie as seguintes afirmativas: __________________ é a área de conhecimento que permite identificar os pacotes de trabalho O sequenciamento das atividades, definido pelo diagrama de redes do projeto, é elaborado na área de conhecimento ______________________. O Termo de Abertura do Projeto é o documento que autoriza a alocação de recursos ao projeto, sendo elaborado na área de conhecimento ___________________. Assinale a alternativa que preenche as lacunas na sequência correta: Gerenciamento do Escopo do Projeto, Gerenciamento do Cronograma do Projeto, Gerenciamento da Integração do Projeto. Gerenciamento do Escopo do Projeto, Gerenciamento da Integração do Projeto, Gerenciamento do Cronograma do Projeto Gerenciamento da Integração do Projeto, Gerenciamento do Escopo do Projeto, Gerenciamento do Cronograma do Projeto Gerenciamento do Cronograma do Projeto, Gerenciamento da Integração do Projeto, Gerenciamento do Escopo do Projeto Gerenciamento do Cronograma do Projeto, Gerenciamento do Escopo do Projeto, Gerenciamento da Integração do Projeto 49) A Engenharia de Requisitos inclui as atividades de descobrir, analisar, documentar e verificar os serviços fornecidos pelo sistema e suas restrições operacionais. Considere as seguintes afirmativas relacionadas com essa engenharia: I- Na etapa de especificação ocorre a priorização e a resolução de conflitos entre os requisitos definidos nas etapas anteriores. II- Na etapa de elaboração os engenheiros de software realizam um estudo detalhado dos requisitos levantados e, a partir desse estudo, são construídos modelos para representar o sistema a ser construído. III- Na etapa de levantamento é gerada uma especificação de requisitos que serve como um contrato entre clientes e equipe de projeto, esclarecendo aos clientes o que será entregue como produto do trabalho da equipe de desenvolvimento. Assinale a alternativa CORRETA: Apenas a afirmativa I é verdadeira Apenas as afirmativas I e III são verdadeiras As afirmativas I, II e III são verdadeiras Apenas as afirmativas II e III são verdadeiras Apenas a afirmativa II é verdadeira 50) Considere que você trabalhe em uma empresa de desenvolvimento de software e que a empresa tenha decidido desenvolver um novo editor de texto para colocar no mercado. Esse editor deve ser um software que forneça recursos adicionais de apoio à autoria, embasado no estilo de escrita do usuário, o que o torna um software de funcionalidade mais complexa. Considere que a empresa deseje disponibilizar o produto no mercado em versões que agreguem esse suporte de forma gradativa, fazendo análise de riscopara avaliar a viabilidade de desenvolvimento de uma nova versão. Tendo de escolher um modelo de processo para desenvolver esse editor, e conhecendo as características dos modelos existentes, entre os modelos abaixo, qual é o modelo apropriado para esse caso? Cascata Cleanroom Prototipação RAD (rapid application development) Espiral 51) No que diz respeito aos processos e práticas ágeis, o desenvolvimento incremental: Enfoca a integração contínua como uma prática de desenvolvimento de software, incompatível com a XP (Extreme Programming) e o Scrum, que permite aos desenvolvedores agregarem alterações de código e realizarem testes. 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. É, assim como o test-driven development, uma prática da XP (Extreme Programming) que exige teste automatizado, domain-driven design, refactoring e integração contínua É, 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. Enfoca, assim como o acceptance test-driven development, a qualidade do código desenvolvido quanto a recursividade, declar ação das variáveis e clean code, de modo a torná-lo de fácil entendimento, modificação e testagem 52) A respeito de qualidade de software e suas métricas, assinale a opção correta. A métrica de complexidade ciclomática é uma medida que pode estar relacionada ao nível de compreensão do programa A medida do número de caracteres em um programa é uma métrica do tipo fog index A métrica de comprimento total faz referência ao número de linhas no código que se considera inversamente proporcional ao índice de erro que o código pode apresentar A métrica de profundidade de condições aninhadas é a que permite uma melhor compreensão do código O número de funções ou métodos que constam em um programa pode ser avaliado pela métrica de software fan-in/fan-out 53) 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: 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 como parte da entrega contínua, ele elabora smoke tests para garantir o funcionamento do sistema, antes de enviá-lo para produção como parte da entrega contínua, ele automatiza uma série de rotinas para que o sistema seja automaticamente posto em produção 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 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 54) Um software de gerência de configuração deve ser capaz de: atualizar automaticamente as versões do software instaladas nas máquinas clientes gerenciar a evolução do software durante o seu processo de desenvolvimento configurar automaticamente a instalação do software de acordo com o sistema operacional do servidor gerenciar que usuários podem ter acesso a certos tipos de funções do software configurar o software de acordo com as preferências do usuário 55) O conjunto de atividades destinadas a gerenciar as alterações de software, identificando os artefatos que precisam ser alterados, estabelecendo relações entre eles, definindo mecanismos para gerenciar diferentes versões desses artefatos, controlando as alterações impostas e relatando as alterações feitas, caracteriza a gestão de: processos de negócio recursos de produto recursos humanos configuração de software qualidade de software 56) Durante a codificação do software, podemos adotar a estratégia de teste em forma de espiral, sendo a mesma percorrida a partir do interior, aumentando o nível de abstração a cada volta. Considerando a referida estratégia, assinale a sequência correta de execução dos testes: Teste de Unidade, Teste de Integração, Teste de Sistema e Teste de Validação Teste de Unidade, Teste de Integração, Teste de Validação e Teste de Sistema (SUVI) Teste de Unidade, Teste de Validação, Teste de Integração e Teste de Sistema Teste de Integração, Teste de Validação, Teste de Unidade e Teste de Sistema Teste de Integração, Teste de Unidade, Teste de Validação e Teste de Sistema 57) Quanto à qualidade de software, assinale a alternativa que apresenta como a confiabilidade pode ser medida Considerando a facilidade de manutenção Considerando a habilidade de adaptar e estender o programa Através da velocidade de processamento Através da frequência e severidade das falhas Considerando fatores como estética, consistência e documentação 58) No contexto do gerenciamento de projetos, avalie a relação entre os conceitos e definições a seguir: [1] Grupos de processos de gerenciamento de projetos [A] Correspondem aos fluxos de processos ou ciclos de vida relacionados ao processo de software [2] Ciclo vida do projeto [B] Definida por seus requisitos de conhecimentos e descrita em termos dos processos que a compõem: suas práticas, entradas, saídas, ferramentas e técnicas [3] Área de conhecimento [C] relacionado com as etapas de gerenciamento do projeto Assinale a opção que corretamente relaciona os referidos conceitos e definições: [1][C] - [2][B] - [3][A] [1][B] - [2][C] - [3][A] [1][B] - [2][A] - [3][C] [1][A] - [2][B] - [3][C] [1][C] - [2][A] - [3][B] 59) Uma das principais práticas de XP (Extreme Programming) é o Iteration Planning Game. Entre as atividades realizadas em uma sessão de Iteration Planning, está a: Estimação, feita por cada programador, do tempo que será necessário para realizar cada tarefa sob sua responsabilidade Definição, pelos programadores, de quais story cards serão implementados em uma iteração Distimação da data de entrega de um release baseado na estimativa de esforço de cada story card Estimação do esforço que será necessário para implementar cada story card Designação, por parte do coach, dos programadores que irão realizar as tarefas contidas na lista de tarefas 60) O gerenciamento de riscos é o processo sistemático de identificação, análise e respostas a riscos de projetos. Considerando que a metodologia aplicada à referida área de conhecimento encadeia processos de acordo com a figura a seguir, assinale a sequência correta: Identificação de risco, análise quantitativa, análise qualitativa, planejamento de respostas a riscos Análise qualitativa, análise quantitativa, identificação de risco, planejamento de respostas a riscos Planejamento de respostas a riscos, identificação de risco, análise qualitativa, análise quantitativa Identificação de risco, análise qualitativa, análise quantitativa, planejamento de respostas a riscos Análise qualitativa, identificação de risco, análise quantitativa, planejamento de respostas a riscos 61) No contexto do processo de desenvolvimento de software, avalie a relação entre os conceitos e definições a seguir: [1] MVC [A] Determina arquitetura física do sistema. [2] Modelo de implantação [B] Um padrão de arquitetura. [3] Modelo de interação [C] Define aspectos dinâmicos do sistema. Assinale a opção que corretamente relaciona os referidos conceitos e definições: [1][C] - [2][B] - [3][A] [1][A] - [2][B] - [3][C] [1][C] - [2][A] - [3][B] [1][B] - [2][A] - [3][C] [1][C] - [2][A] - [3][B] 62)Considerando as etapas de implantação e manutenção do processo de desenvolvimento de software, avalie os conceitos a seguir: _________________: de forma simplificada, é um conjunto de tarefas que visam gerenciar as alterações durante o desenvolvimento do software, sendo a mesma aplicada em todas as etapas do processo de desenvolvimento de software. _________________: requer a avaliação do mérito técnico, efeitos colaterais em potencial, o impacto global em termos de configuração e funcionalidade e o custo de uma determinada alteração. _________________: gerencia as versões do software distribuído aos clientes. Assinale a alternativa que preenche as lacunas na sequência correta: Processo de controle de alterações, Gerenciamento de releases, Gestão de configuração Processo de controle de alterações, Gestão de configuração, Gerenciamento de releases Gestão de configuração, Gerenciamento de releases, Processo de controle de alterações Gestão de configuração, Processo de controle de alterações, Gerenciamento de releases Gestão de configuração, Processo de controle de alterações, Gerenciamento de release 63) Os projetos de software devem ter sua qualidade avaliada, e para tanto, selecionaram-se fatores indicados na norma ISO 9126, que identifica alguns atributos importantes da qualidade, dentre os quais, a: Funcionalidade, que representa a facilidade com que o software pode ser transferido entre ambientes computacionais. Eficiência, que representa a facilidade com que o software pode ser transferido entre ambientes computacionais. Confiabilidade, que representa o período de tempo em que o software esteja disponível para uso. Manutenibilidade, que representa o período de tempo em que o software esteja disponível para uso Usabilidade, que representa o nível em que o software se utiliza de recursos do sistema, de forma otimizada 64) Sobre os sistemas de controle de versão, é correto afirmar que: 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 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 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 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 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 65) Considere as informações em relação ao desenvolvimento de sistemas: I. executar um software com o objetivo de revelar falhas. II. correta construção do produto. III. garantir a qualidade do produto. Corresponde corretamente a I, II e III, respectivamente: validação, teste e verificação teste, validação e verificação verificação, teste e validação validação, verificação e teste teste, verificação e validação 66) Gerência de Configuração de Software é um conjunto de atividades de apoio, que permite a absorção controlada das mudanças, inerentes ao desenvolvimento de software, mantendo a estabilidade na evolução do projeto. Podemos dividir o Gerenciamento de Configuração de Software em três níveis: Tomando por base a figura anterior, assinale a alternativa que define, corretamente, cada nível do Gerenciamento de Configuração de Software. Controle de versão: identifica quais foram as mudanças, efetuadas na versão. Controle de mudanças: tem como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica em qual versão está o software e quais as características de cada versão. Controle de versão: identifica em qual versão está o software e quais as características de cada versão. Controle de mudanças: identifica quais foram as mudanças, efetuadas na versão. Integração contínua: tem como características testar as mudanças, assim que são realizadas. Controle de versão: identifica em qual versão está o software e quais as características de cada versão. Controle de mudanças: tem como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica quais foram as mudanças, efetuadas na versão. Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica em qual versão está o software e quais as características de cada versão. Controle de versão: identifica os usuários dos sistemas. Controle de mudanças: tem como característica testar as mudanças, assim que são realizadas. Integração contínua: identifica as aplicações do software. 67) Considere as seguintes afirmativas sobre Requisitos de Software: I - Requisitos Funcionais descrevem as funções que o software deverá executar. II - Requisitos Funcionais não são rastreáveis, ou seja, não é possível identificar o código fonte relacionado a um requisito funcional. III - Requisitos Não-Funcionais descrevem as ações realizadas para cada entrada do sistema, ou seja, é aquilo que descreve o que deve ser feito pelo sistema. Assinale a alternativa CORRETA: Apenas a afirmativa II é verdadeira Apenas a afirmativa I é verdadeira Apenas as afirmativas I e III são verdadeiras Apenas as afirmativas II e III são verdadeiras Todas as afirmativas são verdadeiras 68) 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: [1][C] - [2][B] - [3][A] [1][B] - [2][C] - [3][A] [1][B] - [2][A] - [3][C] [1][B] - [2][A] - [3][C] [1][C] - [2][A] - [3][B] 69) A ISO 9126 identifica seis atributos fundamentais de qualidade para o software. Avalie se as afirmativas a seguir são Falsas ou Verdadeiras: I - Confiabilidade, atributo associado ao tempo de disponibilidade do software. II - Eficiência, atributo relacionado com a otimização dos recursos do sistema. III - Portabilidade, atributo associado à satisfação dos requisitos funcionais V - V - V V - V - F V - F - F F - V - V V - F - V 70) Considere as seguintes afirmativas relacionadas com a etapa de projeto do processo de desenvolvimento de software: I - A partir do modelo de classes gerado na análise, aplica-se refinamentos que permitem reduzir o grau de abstração do referido modelo. II - Os aspectos dinâmicos, considerando que o paradigma dominante na indústria de software é a orientação a objetos, são definidos nos modelos de classes. III - A divisão lógica comumente aplicada no projeto de arquitetura, pode ser composta das seguintes camadas: apresentação, aplicação, domínio e serviços técnicos. Assinale a alternativa CORRETA: Apenas a afirmativa I é verdadeira Apenas as afirmativas I e III são verdadeiras As afirmativas I, II e III são verdadeiras Apenas a afirmativa II é verdadeira Apenas as afirmativas II e III são verdadeiras 71) No contexto da metodologia ágil Scrum,avalie a relação entre os papéis e definições a seguir: [1] Product Owner [A] Garante que as regras do método Scrum esteja sendo seguidas [2] Scrum Mester [B] Determina os requisitos e funcionalidades que deverão ser entregues [3] Scrum Team [C] Responsável pelas decisões técnicas Assinale a opção que corretamente relaciona os referidos conceitos e definições: [1][B] - [2][C] - [3][A] [1][C] - [2][A] - [3][B] [1][C] - [2][B] - [3][A] [1][B] - [2][A] - [3][C] [1][A] - [2][B] - [3][C] 72) Ao analisar a aplicação da prototipação em seus projetos de software, decidiu-se utilizar um processo que define 4 etapas para o desenvolvimento de protótipos, sendo essas etapas: I. Avaliar Protótipo. II. Estabelecer Objetivos do Protótipo. III. Desenvolver o Protótipo. IV. Definir a Funcionalidade do Protótipo. A ordem sequencial correta para a execução dessas quatro etapas é: I, IV, II e III IV, I, II e III III, II, IV e I IV, II, I e III II, IV, III e I 73) 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 se afirma em: II, apenas I e III, apenas III, apenas I, apenas I, II e III 74) 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: I, apenas II, apenas I, II, e III II e III, apenas III, apenas 75) A respeito do conceito de pullre quest no Git, assinale a alternativa correta. É uma solicitação que um usuário faz para ter permissão de acesso a arquivos de um outro repositório É uma solicitação que um usuário faz para contribuir com suas alterações de volta ao repositório original de um projeto É o envio de arquivos para o repositório remoto do usuário É o envio de arquivos para o repositório local do usuário É uma solicitação para baixar localmente os arquivos do repositório remoto do usuário 76) Qual das seguintes frases melhor explica a Engenharia de Software? A engenharia de software baseia-se em teorias, métodos e ferramentas para o desenvolvimento de software profissional A engenharia de software baseia-se em práticas, normas e aplicações para o desenvolvimento de software profissional A engenharia de software baseia-se em teorias, práticas e ferramentas 77) Os termos inovação e empreendedorismo dizem respeito à prática da gestão e à mudança criativa. A inovação preocupa-se, sobretudo, com o desenvolvimento de produtos. Já o empreendedorismo dedica-se mais à questão da criação de pequenas empresas. Nesse contexto, avalie as afirmações a seguir. I. Inovação e sustentabilidade são processos antagônicos, já que a inovação contribui de forma importante para a degradação do meio ambiente devido à sua associação com o aumento do crescimento econômico e do consumo. II. A exploração de um problema social transformado em uma oportunidade de negócio visando a geração de lucro ao empreendedor é um dos principais objetivos do empreendedorismo social. III. Nem todo resultado de um processo criativo está associado a uma inovação. É correto o que se afirma em I - apenas I - II e III II - apenas II e III - apenas I e III - apenas 78) Após atuar como programador em uma empresa de desenvolvimento de software por aproximadamente 10 anos, um funcionário que se destaco u por nunca atrasar um cronograma foi nomeado gerente de projetos. Ao assumir o primeiro projeto, o funcionário foi informado que sua principal responsabilidade era a realização da entrega conforme o cronograma estabelecido no contrato. Para o gerenciamento de tempo, o gerente de projetos irá utilizar o PMBOK. Considerando essa situ ação, é correto afirmar que o gerente de projetos deverá coordenar processos de: Estimativa de custos, realização do orça mento e controle de custos Planejamento de compra e contratações, seleção de fornecedores e encerramento do contrato Definição e sequenciamento de atividades, estimativa de recursos e duração da atividade, desenvolvimento e controle do cronograma Planejamento, garantia e controle da qualidade Planejamento, definição, verificação e controle do escopo 79) O MPS.BR (Melhoria de Processos do Software Brasileiro) é, ao mesmo tempo, um movimento para melhoria da qualidade e um modelo de qualidade de processo. Guia MPS.BR (SOFTEX) Com relação às suas características, o MPS.BR divide-se em 3 modelos: desenvolvimento, aquisição e serviços possui representação contínua e por estágios está em conformidade com as normas ISO/IEC 12207 e 15504 possui 5 níveis de maturidade considera 3 dimensões: pessoas, ferramentas e procedimentos 80) Após realizar uma análise de mercado em busca de soluções para aprimorar o seu negócio, uma empresa adquiriu um sistema de ERP (enterprise resource planning) contendo um conjunto de módulos que integra todos os departamentos existentes. Após um ano de utilização, houve uma mudança na legislação e, para atender as novas exigências, foi necessária uma manutenção no sistema ERP. Considerando essa situ ação hipotética, é correto afirmar que a empresa irá realizar uma manutenção aperfeiçoadora preventiva adaptativa perfectiva corretiva 81) A Norma ISO/IEC FDIS 14764 (2006) estabelece definições de vários tipos de manutenção e fornece um guia para gerenciar o processo de manutenção, que pode ser aplicado no planejamento, execução e controle, revisão e avaliação, e fechamento do processo de manutenção. Segundo essa Norma, solicitações de modificação são classificadas como corretiva, preventiva, adaptativa ou perfectiva. Os detalhes de como implementar ou realizar as atividades e tarefas de manutenção não são especificadas pela Norma, sendo de responsabilidade do mantenedor. SO/IEC FDIS 14764. Software Engineering - Software Life Cycle Processes - Maintenance. 2006. Considerando os tipos de manutenção e as atividades de implementação do processo, avalie as afirmações a seguir. É correto apenas o que se afirma em I. O mantenedor deve desenvolver, documentar e executar planos e procedimentos para realizar as atividades e tarefas do processo de manutenção II. O mantenedor deve alterar a configuração do sistema para corrigir erros identificados pelos usuários usando a manutenção perfectiva III. O mantenedor deve estabelecer procedimentos para receber, registrar e rastrear solicitações de modificação/registro de problemas dos usuários, e também prover realimentação para os usuários IV. O mantenedor deve documentar a estratégia a ser usada para melhorar a manutebilidade futura do sistema, usando a manutenção corretiva. II I e III III e I V I. II e IV 82) O gerenciamento de projetos de sistemas é essencial para a engenharia de software.
Compartilhar