Buscar

ESII 2017 - Prova 1 - gabarito

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 
Instruções: 
→ A prova é individual e sem consulta. Questões discursivas e de múltipla escolha devem ser 
respondidas à caneta. 
→ Responda com clareza e objetividade as questões discursivas. Cuidado com a ortografia e 
caligrafia, bem como a utilização da notação UML, quando for o caso. Se necessário utilize o 
verso. 
→ Leia atentamente as questões. Coloque o nome em todas as folhas. O grampo pode ser 
retirado. 
Boa Prova!!! 
 
I) Questões de Múltipla Escolha - Para cada questão existem 5 alternativas e apenas uma alternativa é 
correta. (Vale 0,25 ponto cada questão). 
Dica: Quando terminar passe as respostas à caneta e verifique se todas foram respondidas!
 
1.1) Sobre os padrões de projeto para distribuição de responsabilidades, GRASP (General Responsability 
Assignment Software Patterns), analise as afirmativas. 
I. Polimorfismo (Polymorphism) – Problema: Como tratar alternativas com base em tipo? Solução: 
Quando alternativas ou comportamentos relacionados variam segundo o tipo (classe), atribua a 
responsabilidade pelo comportamento aos tipos para os quais o comportamento varia, usando 
operações polimórficas. 
II. Especialista de Informação (Information Expert) – Problema: qual é o princípio geral de atribuição 
de responsabilidade a objetos? Solução: Atribua a responsabilidade ao especialista na informação, 
à classe que tem a informação necessária para satisfazer a responsabilidade. 
III. Controlador (Controller) – Problema: qual é o primeiro objeto, além da camada de IU (interface de 
usuário), que recebe e coordena uma operação do sistema? Solução: Atribua a responsabilidade a 
uma classe que represente uma das seguintes escolhas: 1) o sistema global, um objeto raiz ou um 
dispositivo dentro do qual o software está sendo processado; 2) um cenário de um caso de uso 
dentro do qual ocorre o evento do sistema. 
Está correto o que se afirma em: 
(A) I e III, apenas. 
(B) I, II e III. 
(C) II e III, apenas. 
(D) I e II, apenas. 
(E) II, apenas. 
 
1.2) Suponha que em uma organização existe um conjunto de cargos e para cada cargo existem regras de 
cálculo da taxa de produtividade, cujo valor é determinado por uma porcentagem do salário base do 
funcionário. Este valor é acrescido ao salário do funcionário como um bônus. Um desenvolvedor deve criar 
uma solução que utilize um design pattern (padrão de projeto) cuja intenção é: “definir uma família de 
algoritmos, encapsular cada uma delas e torná-las intercambiáveis. O padrão de projeto permite que o 
algoritmo varie independentemente dos clientes que o utilizam”. Ou seja, o padrão sugere que algoritmos 
parecidos (métodos de cálculo da taxa de produtividade) sejam separados de quem os utiliza (funcionário). 
O padrão, além de encapsular os algoritmos da mesma família, também permite a reutilização do código. 
Nesta situação, caso a regra para cálculo da taxa de produtividade de dois tipos de funcionários, como 
Desenvolvedor e DBA, seja a mesma, não é necessário escrever código extra. Caso seja necessário incluir 
um novo cargo, basta implementar sua estratégia de cálculo da taxa ou reutilizar outra similar. Nenhuma 
outra parte do código precisa ser alterada. 
 
O design pattern mencionado na situação apresentada é: 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 
(A) Abstract Method. 
(B) Builder. 
(C) Prototype. 
(D) Strategy. 
(E) Singleton. 
 
Justifique sua resposta (Vale 1,0 ponto). Desenhe abaixo o Diagrama de Classes representando a situação 
descrita e a aplicação do padrão. 
R.: 
 
<<< Avaliado individualmente >>> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.3) Julgue os itens a seguir, a respeito de padrões de projetos. 
I. O padrão command tem como definição passar uma requisição entre uma lista ou objetos 
encadeados para a execução de uma ação ou o acionamento de um evento em um momento 
posterior. 
II. O isolamento dos códigos de construção e representação é um dos objetivos do padrão builder. 
III. No padrão GRASP, a alta coesão (high cohesion) serve para mensurar quão fortemente uma classe 
está conectada a outras classes. O padrão de projeto estrutural bridge fornece um objeto substituto, 
que faz referência a outro objeto. 
 
(A) E-C-E. 
(B) C-C-C. 
(C) E-C-E. 
(D) C-E-C. 
(E) E-E-C. 
 
1.4) Assinale a alternativa correta. Os três grupos distintos em que é organizado o padrão GoF são: 
(A) Método, classe e mensagens. 
(B) Classe, objeto e método. 
(C) Comportamentais, estado e classe. 
(D) Operacionais, organizacionais e arquiteturais. 
(E) Criacionais, estruturais e comportamentais. 
 
1.5) Padrões de projeto nomeiam, explicam e avaliam um aspecto de projeto importante e recorrente em 
sistemas orientados a objetos. Avalie as características atribuídas a um padrão de projeto. 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 I. Usado quando uma classe é usuária de uma certa hierarquia/ família de algoritmos, como 
um algoritmo de busca ou ordenação. 
II. Esse padrão define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. 
III. Como existem diversos algoritmos em uma mesma família, não é desejável que se codifique todos 
eles em uma mesma classe. 
IV. Permite que um algoritmo varie, independentemente dos clientes que o utilizam. 
V. Fornece uma maneira de configurar uma classe com um dentre muitos comportamentos. 
VI. Pode ser usado para evitar a exposição das estruturas de dados específicas de um algoritmo, que 
se deseja ocultar. 
Essas características são do padrão de projeto: 
(A) Strategy. 
(B) Adapter. 
(C) Decorator. 
(D) Abstract Factory. 
(E) Template Method. 
 
1.6) Sobre padrões de projeto, analise as afirmativas abaixo: 
I. É uma descrição de um problema e o cerne de sua solução, de forma que tal solução possa ser 
adaptada para resolver novos problemas. 
II. Lidam com relacionamentos entre objetos que podem ser mudados, apenas, em tempo de 
compilação. 
III. Um antipadrão tem como um de seus propósitos descrever uma solução ruim para um problema que 
resultou em uma situação ruim. 
Está correto o que se afirma, apenas, em: 
(A) I. 
(B) II. 
(C) III. 
(D) I e II. 
(E) I e III. 
 
1.7) O diagrama abaixo ilustra um dos padrões de projeto propostos pela Gang of Four. 
 
 
Esse padrão de projeto denomina-se: 
(A) Factory method. 
(B) Abstract factory. 
(C) Template method. 
(D) Prototype. 
(E) Builder. 
 
1.8) Os padrões arquiteturais descrevem a arquitetura, explicam quando elas podem ser usadas e discutem 
suas vantagens e desvantagens. Associe as colunas, relacionando os padrões arquiteturais aos cenários 
em que são geralmente utilizados. 
 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 Padrões 
 
1- Client-server 
 
2- Pipe and filter 
 
3- Layers 
 
4- Model-View Controller 
 
5- Repository 
 
Cenários 
 
( ) Quando há necessidade de manter uma gerência 
centralizada de todos os dados, de modo que este 
seja acessível a todos os componentes do sistema, 
possibilitando uma interação indireta entre eles. 
 
( ) Em aplicações de processamento de dados, em 
que as entradas são processadas em etapas 
separadas, nasquais os dados fluem de um 
componente para outro para processamento. 
( ) Quando há possibilidade de incorporar novos 
requisitos não funcionais, como distribuição, 
segurança, persistência, entre outros, de modo a 
minimizar modificações no restante do sistema em 
razão da integração desse novo requisito. 
( ) Quando há necessidade de que os dados sejam 
mantidos de maneira independente de sua 
apresentação, de modo que possam existir diversas 
maneiras de visualizar e interagir com os dados. 
( ) Quando os dados compartilhados precisam ser 
acessados a partir de uma série de locais, podendo 
ser usados, também, quando a carga em um sistema 
é variável. 
 
A sequência correta dessa associação é: 
(A) 1, 3, 4, 2, 5. 
(B) 2, 4, 1, 5, 3. 
(C) 3, 1, 2, 5, 4. 
(D) 4, 5, 3, 1, 2. 
(E) 5, 2, 3, 4, 1. 
 
1.9) Em um projeto de sistemas deve-se considerar que mudanças podem ser necessárias ao longo de sua 
utilização. Padrões de projeto ajudam a evitar esses possíveis problemas, pois garantem que o sistema 
pode mudar segundo maneiras específicas. Em diversas causas comuns de reformulação de projetos, 
alguns padrões podem ajudar a tratar esses problemas. Um deles pode ser a dependência da plataforma 
de hardware e software. Assinale a alternativa que apresenta os padrões de projeto que tratam desse 
problema. 
(A) Abstract Factory; Bridge. 
(B) Builder; Iterator; Strategy. 
(C) Composite; Decorator; Observer. 
(D) Chain of Responsibility; Command. 
(E) Expert; Cohesion; Hierarchical. 
 
1.10) Os padrões de projetos tornam mais fáceis reutilizar soluções e arquiteturas bem sucedidas para 
construir softwares orientados a objetos de forma flexível e fácil de manter. Em padrões de projeto, 
delegação é uma maneira de tornar a composição tão poderosa para fins de reutilização quanto à herança, 
sendo que dois objetos são envolvidos no tratamento de uma solicitação. É uma boa escolha de projeto 
somente quando ela simplifica mais do que complica. Ao definir quais padrões deverão ser utilizados no 
projeto, considerando que diversos padrões de projeto usam delegação, mas três padrões dependem dela. 
Assinale-os. 
(A) State, Strategy e Visitor. 
(B) Builder, Prototype e Singleton. 
(C) Factory Method, Interpreter e Template Method. 
(D) Façade, Command e Decorator. 
(E) Adapter, Bridge e Composite. 
 
1.11) O modelo de três camadas físicas (3-tier), especificado nas alternativas, divide um aplicativo de modo 
que a lógica de negócio resida no meio das três camadas, foi adaptado como uma arquitetura para as 
aplicações Web em todas as linguagens de programação maiores. Muitos frameworks de aplicação 
comerciais e não comerciais foram criados tendo como base a arquitetura de três camadas, como: 
(A) MVC (Model-View-Controller). 
(B) MDB (Model-Data-Business). 
(C) UDC (User-Data-Controller). 
(D) MDC (Model-Data-Controller). 
(E) UVB (User-View-Business). 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 
1.12) Acerca de um dos padrões de projeto, analise a seguinte afirmativa: “fornecer uma alternativa 
flexível ao uso de subclasses para extensão de funcionalidade e, dinamicamente, agregar 
responsabilidades adicionais a um objeto”. Trata-se do padrão: 
(A) Proxy. 
(B) Visitor. 
(C) Iterator. 
(D) Decorator. 
(E) Mediator. 
 
Justifique e exemplifique sua resposta (Vale 1,0 ponto). Desenhe abaixo o Diagrama de Classes 
exemplificando a aplicação do padrão. 
R.: 
 
 
<<< Avaliado individualmente >>> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.13) Considere que é necessário fazer um programa que vá funcionar em várias plataformas, como 
Windows, Linux, Mac OS etc. O programa fará uso de diversas abstrações de janelas gráficas, por 
exemplo, janela de diálogo, janela de aviso, janela de erro etc. Um Analista sugeriu o uso de um 
padrão de projeto GoF estrutural que fornece um nível de abstração maior que o Adapter, pois são 
separadas as implementações e as abstrações, permitindo que cada uma varie independentemente. 
O padrão sugerido pelo Analista é o: 
(A) Prototype, pois especifica os tipos de plataformas a serem criadas usando uma instância protótipo e 
cria novas interfaces pela cópia desse protótipo. 
(B) Bridge e as implementações seriam as classes de janela das plataformas. 
(C) MVC, de forma que a camada Model fique responsável por acionar as janelas, a camada Controller 
exiba os dados do Model ao usuário e a camada View armazene as classes que fazem a comunicação 
com o Banco de Dados. 
(D) Visitor e as interfaces seriam executadas nos elementos de cada plataforma. 
(E) State, que permite a uma plataforma alterar o comportamento de sua interface. 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 
Justifique e exemplifique sua resposta (Vale 1,0 ponto). Desenhe abaixo o Diagrama de Classes 
exemplificando a aplicação do padrão. 
R.: 
 
 
<<< Avaliado individualmente >>> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.14) Sobre o padrão de projeto Composite, analise as afirmativas abaixo: 
I. Define hierarquias de classe que consistem de objetos primitivos e objetos compostos. 
II. Útil para representar hierarquias partes-todo de objetos. 
III. Torna mais fácil acrescentar novas espécies de componentes. 
Está correto o que se afirma em: 
(A) I, apenas. 
(B) II, apenas. 
(C) I e II, apenas. 
(D) I e III, apenas. 
(E) I, II e III. 
 
1.15) Relacione adequadamente as colunas acerca do escopo de alguns dos padrões de projeto: 
 
1. Classe. 
2. Objeto. 
 
( ) Bridge. 
( ) Façade. 
( ) Adapter. 
( ) Observer. 
( ) Interpreter. 
 
A sequência está correta em: 
(A) 2, 1, 1, 2, 1. 
(B) 1, 2, 2, 1, 2. 
 
 
Universidade Federal de Sergipe – Campus São Cristóvão 
Avaliação 1 – Engenharia de Software para SI II 
Nome: _______________________________________________ 
Curso: Sistemas de Informação Data: 13/12/2017 
Professora Dra. Adicinéia A. de Oliveira 
 (C) 2, 2, 1, 2, 1. 
(D) 1, 2, 2, 2, 2. 
(E) 1, 2, 1, 2, 1. 
 
1.16) “Sua intenção é separar a construção de um objeto complexo da sua representação de modo que o 
mesmo processo de construção possa criar diferentes representações.” Trata-se do padrão: 
(A) State. 
(B) Bridge. 
(C) Façade. 
(D) Builder. 
(E) Adapter. 
 
Justifique e exemplifique sua resposta (Vale 1,0 ponto). Desenhe abaixo o Diagrama de Classes 
exemplificando a aplicação do padrão. 
R.: 
 
 
<<< Avaliado individualmente >>> 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.1) Segundo Sommerville (2016), o processo de projeto, na maioria das disciplinas de engenharia, baseia-
se no reuso de sistemas existentes ou componentes. Em Engenharia de Software, diversos benefícios e 
problemas no reuso de software são apontados por Sommerville e outros pesquisadores. Como discutidos 
em aula, quais são os problemas e os benefícios com o reuso? Quais são as abordagens que apoiam o 
reuso de software. Suscintamente explique cada uma delas e a sua importância para o projeto de software. 
(Vale 2,0 ponto). 
R.: 
 
 
 
<<< Avaliado individualmente >>>

Continue navegando