Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO DISCIPLINA EES001 - Engenharia de Software APLICAÇÃO 06/10/2021 CÓDIGO DA PROVA P014/P015 QUESTÕES OBJETIVAS Questão 1.1 Métodos ágeis têm como objetivo apoiar o desenvolvimento, em um curto período de tempo, de softwares que agreguem valor à sociedade. Esses métodos definem abstrações de processos que são geradores de software com funcionalidades parciais (incrementos), e, a cada incremento, novas funcionalidades são incluídas. Nesse contexto, analise as afirmações abaixo e indique quais podem ser consideradas boas práticas para o método ágil XP: 1. Fazer planejamento incremental, colocando os requisitos em cartões de história que são incluídas em releases com prioridades relativas e tempo de desenvolvimento. 2. Analisar consistência, uma vez que diferentes requisitos não podem entrar em conflito. 3. Entregar pequenas releases, desenvolvendo um conjunto mínimo de funcionalidades útil para fornecer o valor do negócio. Releases do sistema são frequentemente e gradualmente adicionadas ao primeiro release. 4. Considerar testabilidade, uma vez que os requisitos devem poder ser validados sobre o sistema após ser implementado. 5. Desenvolver projetos simples para atender às necessidades atuais do usuário e nada mais. Estão corretas apenas: a) 1, 2 b) 2, 4, 5 c) 1, 3, 5 d) 1, 2, 3 e) 3, 4 RESOLUÇÃO A resposta correta é: 1, 3, 5 são boas práticas para o método ágil XP. JUSTIFICATIVA As boas práticas para o método ágil XP são: 1. planejamento incremental: colocar os requisitos em cartões de história que são incluídas em releases com prioridades relativa e tempo de desenvolvimento. 2. pequenas releases: desenvolver um conjunto mínimo de funcionalidades útil para fornecer o valor do negócio. Releases do sistema são frequentemente e gradualmente adicionadas ao primeiro release. 3. projeto simples: desenvolver cada projeto para atender às necessidades atuais do usuário e nada mais. 4. desenvolvimento test-first: fazer testes iniciais automatizados para escrever os testes para uma nova funcionalidade. 5. refatoração: refatorar o código continuamente para encontrar melhorias de código. Isso mantém o código simples e manutenível. 6. programação em pares: programar em dois para ter backup do código e ideias. 7. propriedade coletiva: trabalhar em grupos com ideias compartilhadas. 8. integração contínua: ao concluir o trabalho em uma tarefa, esse trabalho deve ser integrado ao sistema como um todo. 9. ritmo sustentável: trabalhar em ritmo saudável sem hora extra. 10. cliente no local: trazer o cliente para a equipe de desenvolvimento de modo que possa resolver dúvidas de requisitos Consistência e testabilidade são problemas que afetam a qualidade do produto de processo e final, porém não são listados em aula como prática de XP. Questão 1.2 Especificação de software, desenvolvimento de software, validação de software e evolução de software são as principais atividades de qualquer modelo de processo de engenharia de software. Considerando o contexto apresentado, qual atividade pretende garantir que o software é o produto (ou solução) que o cliente quer? a) Depuração de software. b) Manutenção de software. c) Validação de software. d) Evolução de software. e) Codificação de software. RESOLUÇÃO A resposta correta é: Validação de software. JUSTIFICATIVA • Depuração é uma subatividade de teste cujo objetivo é buscar um erro anunciado. • Codificação de software é a atividade em que os modelos de projeto são transformados em código. • Validação de software é a atividade em que o software é verificado para garantir que é o que o cliente quer. • Evolução ou manutenção de software são atividades de alteração do software para refletir a mudança de requisitos do cliente e do mercado. Questão 1.3 O primeiro modelo do processo de desenvolvimento de software a ser publicado foi derivado de processos mais gerais da engenharia de sistemas ou mesmo da engenharia de produtos manufaturados. Esse modelo é um exemplo de um processo dirigido a planos, e seus principais estágios refletem diretamente e sequencialmente as atividades principais do desenvolvimento de software. A descrição apresentada refere-se a qual modelo? Modelo em cascata. Modelo ágil. Modelo UML. Modelo Orientado a Reuso. Modelo de Sistemas. RESOLUÇÃO A resposta correta é: Modelo em cascata. JUSTIFICATIVA O primeiro modelo do processo de desenvolvimento de software a ser publicado foi derivado de processos mais gerais da engenharia de sistemas. Por causa do encadeamento entre uma fase e outra, esse modelo é conhecido como modelo em cascata, ou ciclo de vida de software. O modelo em cascata é um exemplo de um processo dirigido a planos. Questão 1.4 Segundo Sommerville, existem basicamente dois tipos de produtos de software, os Produtos Genéricos (PG) e os Produtos Sob Encomenda (PSE). Relacione o tipo de produto da coluna I com a respectiva situação, característica, contexto ou definição exemplificados na coluna II: COLUNA I COLUNA II 1. Produtos Genéricos (PG) 2. Produtos Sob Encomenda (PSE) [ ] vendidos no mercado para serem adquiridos por qualquer cliente. [ ] chamados também de softwares de prateleira. [ ] sistemas solicitados por um cliente considerando requisitos específicos. [ ] ferramentas de banco de dados. [ ] sistema de controle de saúde para uma empresa específica. [ ] sistemas antivírus. Assinale a alternativa que apresenta a sequência correta: a) 1 - 1 - 2 - 1 - 2 - 1 b) 1 - 2 - 2 - 1 - 1 - 2 c) 2 - 1 - 2 - 2 - 2 - 1 d) 1 - 1 - 2 - 1 - 2 - 2 e) 2 - 2 - 1 - 1 - 1 - 1 RESOLUÇÃO A resposta correta é: 1 – 1 – 2 – 1 – 2 - 1. JUSTIFICATIVA Produtos Genéricos (PG) são aqueles sistemas do tipo stand-alone, os quais são vendidos no mercado para serem adquiridos por qualquer cliente que tenha interesse nas funcionalidades que este fornece. Eles também são chamados também de softwares de prateleira, por exemplo, ferramentas de banco de dados, antivírus, processadores de texto, entre outros. Incluem também algumas aplicações para um propósito específico, mas apoiada por requisitos que praticamente não se modificam, como sistemas de contabilidade, entre outros. Produtos Sob Encomenda (PS) são aqueles sistemas solicitados por um cliente em particular, para serem desenvolvidos por uma empresa de software para uso exclusivo. Por exemplo, um sistema de controle de saúde para uma empresa específica. Questão 1.5 Modelagem de sistema é o processo de desenvolvimento de modelos abstratos de um sistema. Cada modelo apresenta uma visão ou perspectiva diferente do sistema. Os modelos são usados durante o processo de engenharia de requisitos para ajudar a extrair e analisar os requisitos do sistema. O uso de diagramas definidos em UML tornou-se uma linguagem de modelagem-padrão para modelagem orientada a objetos, a qual fornece diferentes tipos de diagramas para apoiar a criação de diferentes modelos de sistema. Considerando o contexto apresentado, qual é o diagrama que mostra as interações entre os atores e o sistema, e entre os componentes do sistema, considerando principalmente a ordem em que elas acontecem? a) Diagramas de atividade. b) Diagramas de casos de uso. c) Diagramas de sequência. d) Diagramas de classe. e) Diagramas de estado. RESOLUÇÃO A resposta correta é: Diagrama de sequência. JUSTIFICATIVA • Diagramas de atividade mostram as atividades envolvidas em um processo ou no processamento de dados. • Diagramas de casos de uso mostram as interações entre um sistema e seu ambiente. • Diagramas de sequência mostram as interações entre os atores e o sistema,e entre os componentes do sistema, considerando a ordem em que elas ocorrem. • Diagramas de classe mostram as classes de objeto no sistema e as associações entre elas. • Diagramas de estado mostram como o sistema reage aos eventos internos e externos. Questão 1.6 Uma empresa de tecnologia desenvolveu um sistema para manipulação e visualização de imagens médicas, radiologia, tomografia, ultrassom, entre outros. O sistema é usado por diversos hospitais e clínicas utilizando um padrão universal conhecido com DICOM (Digital Imaging and Communications in Medicine). Esse padrão permite que diferentes sistemas e ambientes compartilhem essas imagens. Analisando a descrição desse sistema, podemos afirmar que: a) o software para manipulação e visualização de imagens é um produto sob encomenda. b) o software para manipulação e visualização de imagens foi desenvolvido para uso exclusivo de um determinado cliente. c) o software para manipulação e visualização de imagens pode ser considerado um software genérico. d) o software para manipulação e visualização de imagens pode ser considerado um software embutido. e) DICOM, por ser um padrão, garante que o software desenvolvido seja considerado um software de prateleira. RESOLUÇÃO A resposta correta é: o software para manipulação e visualização de imagens pode ser considerado um software genérico. JUSTIFICATIVA No capítulo 1 do livro de Sommerville, das páginas 2 a 6, o autor divide em um primeiro momento o desenvolvimento de software em dois tipos: genéricos e sob encomenda. O sistema descrito no enunciado caracteriza um software genérico conforme a descrição a seguir. 1. Produtos genéricos. Existem sistemas stand-alone, produzidos por uma organização de desenvolvimento e vendidos no mercado para qualquer cliente que esteja interessado em comprá-los. Exemplos desse tipo de produto incluem softwares para PCs, como ferramentas de banco de dados, processadores de texto, pacotes gráficos e gerenciamento de projetos. Também incluem as chamadas aplicações verticais projetadas para um propósito específico, como sistemas de informação de bibliotecas, sistemas de contabilidade ou sistemas de manutenção de registros odontológicos. 2. Produtos sob encomenda. Estes são os sistemas encomendados por um cliente em particular. Uma empresa de software desenvolve o software especialmente para esse cliente. Exemplos desse tipo de software são sistemas de controle de dispositivos eletrônicos, sistemas escritos para apoiar um processo de negócio específico e sistemas de controle de tráfego aéreo. Questão 1.7 Um padrão de arquitetura é uma descrição abstrata de boas práticas experimentadas e testadas em diferentes sistemas e ambientes. Atualmente, padrões de arquitetura são amplamente utilizados como uma forma de apresentar, compartilhar e reusar o conhecimento sobre sistemas de software. Considerando o contexto apresentado, qual das arquiteturas é usada quando existem várias maneiras de visualizar e interagir com dados? a) Arquitetura MVC. b) Arquitetura em camadas. c) Arquitetura de repositório. d) Arquitetura cliente-servidor. e) Arquitetura duto e filtro. RESOLUÇÃO A resposta correta é: Arquitetura MVC. JUSTIFICATIVA • A arquitetura MVC separa a apresentação e a interação dos dados do sistema. O sistema é estruturado em três componentes lógicos que interagem entre si. Modelo, Visão e Controlador. Recomendada para usar quando existem várias maneiras de visualizar e interagir com dados. • A arquitetura em camadas organiza o sistema em camadas com a funcionalidade relacionada associada a cada camada. É usada na construção de novos recursos em cima de sistemas existentes; quando o desenvolvimento está espalhado por várias equipes, com a responsabilidade de cada equipe em uma camada de funcionalidade; quando há um requisito de proteção multinível. • Na arquitetura de repositório, todos os dados em um sistema são gerenciados em um repositório central, acessível a todos os componentes do sistema. A arquitetura de repositório é usada quando se tem um sistema no qual grandes volumes de informações são gerados e precisam ser armazenados por um longo tempo. • Em uma arquitetura cliente-servidor, a funcionalidade do sistema está organizada em serviços — cada serviço é prestado por um servidor. Os clientes são os usuários desses serviços e acessam os servidores para fazer uso deles. É usado quando os dados em um banco de dados compartilhado precisam ser acessados a partir de uma série de locais. • Na arquitetura duto e filtro, o processamento dos dados em um sistema está organizado de modo que cada componente de processamento (filtro) seja discreto e realize um tipo de transformação de dados. Os dados fluem (como em um duto) de um componente para outro para processamento. Esse tipo de arquitetura é usado em aplicações de processamento de dados (tanto as baseadas em lotes quanto as baseadas em transações) em que as entradas são processadas em etapas separadas para gerarem saídas relacionadas. QUESTÃO DISSERTATIVA Questão 2 Atualmente, sistemas distribuídos estão presentes para atender diferentes demandas. Defina o conceito de arquitetura orientada a serviços (SOA, do inglês Service-Oriented Architectures). Também cite e descreva os principais padrões SOA. RESOLUÇÃO As arquiteturas orientadas a serviços (SOA, do inglês Service-Oriented Architectures) são uma forma de desenvolvimento de sistemas distribuídos em que os componentes de sistema são serviços autônomos, executando em computadores geograficamente distribuídos. Usando um serviço web, as organizações que desejam disponibilizar suas informações para outros programas podem fazê-lo definindo e publicando uma interface de web services. Os principais padrões para SOA de web são: 1. SOAP. Esse é um padrão de trocas de mensagens que oferece suporte à comunicação entre os serviços. 2. WSDL. A linguagem de definição de web service (do inglês Web Service Definition Language) é um padrão para a definição de interface de serviço. 3. WS-BPEL. Esse é um padrão para uma linguagem de workflow. RUBRICAS | CRITÉRIOS DE CORREÇÃO Atribua 40% da nota para a descrição do SOA e 20% da nota para cada padrão citado e descrito corretamente.
Compartilhar