Você está na página 1de 8

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: 15/02/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) O padrão de projeto que permite, sem violar o encapsulamento, capturar e externalizar um estado interno
de um objeto de maneira que o objeto possa ser restaurado para esse estado mais tarde é:
(A) Composite.
(B) Memento.
(C) Bridge.
(D) Builder.
(E) Strategy.

Justifique e exemplifique sua resposta (Vale 1,0 ponto). Desenhe abaixo o Diagrama de Classes de maneira
a facilitar o entendimento do exemplo de aplicação do padrão.
R.:
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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
1.2) Acerca da arquitetura cliente/servidor, assinale a alternativa que apresenta as principais
características da arquitetura.
(A) Na arquitetura cliente/servidor, cada instância de software instalado no computador cliente deve aguardar a
finalização de uma requisição enviada ao servidor por outro software para que uma nova comunicação possa
ser estabelecida.
(B) Na arquitetura cliente/servidor, os computadores clientes nem sempre iniciam as sessões de comunicação
com os servidores. A comunicação pode partir dos servidores, onde o cliente desenvolve o papel de servidor
e vice-versa.
(C) Uma das principais características da arquitetura cliente/servidor é o fato de um cliente, mesmo solicitando
serviços ou recursos em um servidor, não estar apto a compartilhar seus recursos computacionais.
(D) Uma das principais desvantagens da arquitetura cliente/servidor é a impossibilidade de acrescentar clientes
no ambiente sem haver a interferência no funcionamento da rede.
(E) Na arquitetura cliente/servidor o processo da informação é dividido em 2 processos: Processo cliente,
responsável pela manutenção da informação, e processo servidor, responsável pela obtenção dos dados.

1.3) A essência do projeto de software é tomar decisões sobre a organização lógica do software. Para Bass
(2003), as vantagens em projetar e documentar são:
I. Comunicação de stakeholders.
II. Proteção e segurança.
III. Modelo repositório.
IV. Análise de sistema.
V. Reuso em larga escala.
Avalie e marque a alternativa correta sobre as afirmações acima.
(A) C-C-C-C-C.
(B) C-E-E-C-C.
(C) C-E-E-E-C.
(D) E-C-C-E-C.
(E) E-E-E-E-E.

1.4) O processo de software consiste em uma série de atividades, práticas, eventos, ferramentas e métodos que
garantem, técnica e administrativamente que o software pode ser desenvolvido com qualidade e:
I. de forma ágil.
II. de maneira organizada, disciplinada e previsível.
III. com uma gerência eficiente e controle eficaz.
IV. políticas adequadas às tecnologias adotadas.
Marque a alternativa correta sobre as afirmações:
(A) C-C-C-E.
(B) C-E-E-E.
(C) C-C-C-C.
(D) E-C-E-E.
(E) E-E-E-E.

1.5) Um Analista de Sistemas necessita utilizar alguns padrões de projeto para solucionar determinados
problemas. De acordo com as Categorias de Padrões do Gang of Four− GoF, ele vai utilizar um padrão
de cada uma das três categorias, pela ordem, a saber:
I. Padrões de Criação.
II. Padrões Estruturais.
III. Padrões Comportamentais.
Em relação a essas três categorias, os padrões são, respectivamente:
(A) Strategy, Template Method e Decorator.
(B) Bridge, Prototype e Composite.
(C) Abstract Factory, Singleton e Observer.
(D) Façade, Proxy e Iterator.
(E) Factory Method, Flyweight e Memento.

1.6) Avalie as afirmações considerando verdadeiras com (V) e as alternativas falsas com (F) relativas a
Arquitetura de Software.
I. Os Modelos de Arquiteturas de Software são um facilitador para a comunicação entre todas as
partes interessadas no desenvolvimento de um Sistema Computacional.
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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
II. A Arquitetura de um sistema de software é definida pelas propriedades internas de
seus componentes e pelos estados internos que estes componentes podem atingir d urante a
execução do mesmo.
III. É o software operacional sendo mostrado nos seus detalhes sintáticos e semânticos
representativos de seu comportamento interno.
IV. As propriedades de seus componentes são as suas características capazes de descrever como
os componentes interagem com outros componentes.
V. Os modelos tubos e filtros, orientado a objetos e arquitetura em camadas são exemplo s de
estilos arquiteturais.
Assinale a alternativa que contem a sequência de marcação correta dos itens acima, de cima para baixo.
(A) V, F, F, V, V.
(B) F, V, V, F, V.
(C) F, F, F, V, F.
(D) V, F, V, V, V.
(E) V, V, V, F, V.

1.7) O catálogo denominado Padrões GoF (‘Gang of Four’) define soluções reutilizáveis para problemas
frequentes em projetos de sistemas de software. Essas soluções estão organizadas em três famílias
conforme o propósito de cada solução. Os padrões de projetos denominados Interpreter, Prototype e
Flyweight que fazem parte desse catálogo, pertencem, respectivamente, às seguintes famílias:
(A) padrão estrutural, padrão comportamental e padrão de criação.
(B) padrão comportamental, padrão estrutural e padrão de criação.
(C) padrão comportamental, padrão de criação e padrão estrutural.
(D) padrão estrutural, padrão de criação e padrão comportamental.
(E) padrão de criação, padrão comportamental e padrão estrutural.

1.8) Na área de desenvolvimento de sistemas, o desenvolvimento de software orientado a aspectos é


baseado na ideia de separação de assuntos, porém em módulos de sistema separados. A separação
de assuntos é um princípio fundamental do projeto e da implementação de software. Diversos termos
são utilizados no desenvolvimento de software orientado a aspectos. Um desses termos tem a seguinte
definição, segundo Sommerville (2007), “...abstração de programa que define um assunto transversal.
Inclui a definição de um ponto de corte e a recomendação associada a esse assunto.”. A definição
apresentada trata-se de:
(A) Composição.
(B) Recomendação.
(C) Ponto de junção.
(D) Refatoração.
(E) Aspecto.

1.9) O catálogo denominado Padrões GoF (‘Gang of Four’) define soluções reutilizáveis para problemas
frequentes em projetos de sistemas de software. Essas soluções estão organizadas em três famílias
conforme o propósito de cada solução. Os padrões de projetos denominados Interpreter, Prototype e
Flyweight que fazem parte desse catálogo, pertencem, respectivamente, às seguintes famílias:
(A) padrão estrutural, padrão de criação e padrão comportamental.
(B) padrão comportamental, padrão de criação e padrão estrutural.
(C) padrão estrutural, padrão comportamental e padrão de criação.
(D) padrão comportamental, padrão estrutural e padrão de criação.
(E) padrão de criação, padrão comportamental e padrão estrutural.

1.10) Na engenharia de software existem diversos padrões de projeto que são soluções gerais para
serem reutilizadas em problemas semelhantes. No sistema SISPESSOAL o arquiteto decidiu criar
somente um objeto para conexão com o banco de dados, visando à economia de recursos
computacionais. Quando o objeto for chamado, em qualquer parte do código, sempre será retornada
a mesma instância do objeto. Para que isto ocorra será utilizado o padrão de projeto:
(A) Adapter.
(B) Singleton.
(C) Bridge.
(D) Command.
(E) Strategy.
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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
1.11) Um dos conceitos fortes da Engenharia de Software é o reuso de software. Sabendo
disso, assinale a alternativa que apresenta corretamente o conceito de engenharia de software baseada
em reuso.
(A) É um atalho para economizar tempo e custo por meio da reutilização de linhas de componentes.
(B) É um repositório de componentes de software que podem ser utilizados a qualquer instante do
desenvolvimento.
(C) É um processo de preparação de equipes para que o software seja todo desenvolvido com componentes
comuns.
(D) É uma estratégia em que o processo de desenvolvimento é voltado para a reutilização do software existente.
(E) É o compartilhamento de conhecimento nas equipes de desenvolvimento para evitar o esforço duplicado.

1.12) O sistema de registro de ponto da CASAN está passando por melhorias e será necessário usar
uma biblioteca externa que fornece outras classes e métodos para registrar o funcionário. A equipe
de desenvolvimento decidiu, então, criar uma nova classe com um método de registro do funcionário
com a assinatura idêntica ao método antigo. Esse método encapsulará a chamada ao método da
biblioteca externa, reduzindo assim o impacto da alteração no sistema. Qual dos padrões de projetos
a seguir se enquadra nesse tipo de solução?
(A) Adapter.
(B) Observer.
(C) Prototype.
(D) Decorator.
(E) Singleton.

Desenhe abaixo o Diagrama de Classes de Projeto mostrando como o padrão será util izado na solução
deste problema (Vale 1.0 ponto).

<<< Avaliado individualmente >>>


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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
1.13) "Classes devem estar abertas para extensão e fechadas para modificação" é um
princípio de projeto de modelos orientados a objetos. Tal princípio pode ser aplicado através do padrão
de projeto:
(A) Prototype.
(B) Builder.
(C) Flyweight.
(D) Singleton.
(E) Decorator.

1.14) Em muitas situações uma "aplicação cliente" precisa criar objetos cuja construção efetiva só é
definida em tempo de execução. A "aplicação cliente" não deve se preocupar com a criação dos
objetos. Trata-se da motivação do padrão de projeto:
(A) Singleton.
(B) Builder.
(C) Factory Method.
(D) Abstract Factory.
(E) Proxy.

1.15) O framework MVC (Model-View-Controller) tem como objetivo separar lógica de negócios (Model),
interface do usuário (View) e o fluxo da aplicação (Control). O padrão MVC usa em sua arquitetura
diversos outros padrões de projeto para atingir seu objetivo. Em MVC, as classes do Model não devem
conhecer nada sobre as camadas de interface que exibem suas informações. O padrão de projeto
utilizado pelo padrão arquitetural MVC que é responsável por fazer com que o Model informe mudanças
em seu estado para as interfaces, sem conhecê-las, é o:
(A) Façade.
(B) Observer.
(C) Singleton.
(D) Factory Method.
(E) Composite.

Desenhe o Diagrama de Classes de Projeto mostrando como o padrão será utilizado na solução deste
problema (Vale 1.0 ponto).

<<< Avaliado individualmente >>>


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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira

1.16) Considere os seguintes requisitos funcionais de um software de frente de caixa de uma sorveteria:
I. ao selecionar um tipo qualquer de sorvete, pode-se adicionar vários condimentos a esse sorvete
(tais como coberturas de diferentes sabores, granulados etc.) e o sistema deve calcular o valor
total (sorvete + condimentos) dinamicamente ao fechar o pedido;
II. ao fechar o pedido, o sistema deve permitir adaptar o tipo de pagamento (cartão de crédito ou
débito com desconto);
III. ao concluir o pedido, o sistema deve permitir que o valor total e a descrição do pedido sejam
enviados a outros objetos (ou módulos) do sistema que estejam interessados nesses dados.
Com base nos requisitos funcionais detalhados acima, qual dos padrões de projetos abaixo são adequados
para resolver cada requisito funcional, respectivamente?
(A) Composite, Adapter e Observer.
(B) Composite, Strategy e Command.
(C) Composite, Singleton e Command.
(D) Decorator, Strategy e Observer.
(E) Decorator, Adapter e Observer.

1.17) Um Analista precisa construir uma aplicação que possui uma função da qual se conhece somente
o algoritmo de execução, sendo que o trabalho de codificação para realização da operação desta
função tem que ser postergado. Ele optou pelo uso do padrão de projeto comportamental:
(A) Template Method, que permite implementar as partes invariantes de um algoritmo e deixar para
subclasses a implementação da parte variante.
(B) Adapter, que cria classes reutilizáveis que cooperam com classes não relacionadas ou não previstas.
(C) Singleton, que possibilita o uso de uma instância estendida sem alterar o seu código.
(D) Abstract Factory, que permite criar uma biblioteca de classes de produtos e revelar somente suas
interfaces, não suas implementações.
(E) Factory Method, que define uma interface para criar objetos, mas deixa que as subclasses decidam que
classe instanciar.

1.18) Observe as afirmativas abaixo:


I. Com frequência, equipes de desenvolvimento de software escrevem classes que proveem
funcionalidades similares às de outras classes já existentes. Esse padrão se aplica a qualquer
contexto em que se deseja implementar funcionalidades já implementadas em outra classe, mas
com interface diferente da classe já implementada. Esse padrão define uma nova classe de
maneira que ela contenha uma instância da classe velha como um atributo privado, e implemente
cada método da nova classe usando métodos da classe antiga.
II. Fornece uma interface unificada para um conjunto de interfaces em um subsistema. Define uma
interface de nível mais alto que torna o subsistema mais fácil de ser usado.
III. Define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as
subclasses. Permite que subclasses redefinam certos passos de um algoritmo sem mudar a
estrutura do mesmo. Esse padrão pode ser usado para implementar as partes invariantes do
algoritmo uma só vez e deixar para as subclasses a implementação do comportamento que pode
variar.
IV. Evita o acoplamento do remetente de uma solicitação ao seu receptor ao dar a mais de um objeto
a oportunidade de tratar a solicitação. Encadeia os objetos receptores, passando a solicitação
ao longo da cadeia até que um objeto a trate. Esse padrão é utilizado quando mais de um objeto
pode tratar uma solicitação e o objeto que a tratará não é conhecido a priori. O objeto que trata
a solicitação é escolhido automaticamente.
V. Você começou a trabalhar em um projeto que utiliza tecnologia Java RMI. Nesse projeto, é
implementado um padrão de projeto que provê um ponto através do qual um objeto controla o
acesso a outro. No projeto em questão, um objeto remoto que contém a implementação real é
acessado através de um outro objeto local, de forma que o objeto local controla o acesso ao
remoto. Para isso, ambos possuem a mesma interface.
As afirmativas acima descrevem, respectivamente, os seguintes padrões de projeto:
(A) Adapter, Facade, Template Method, Chain of Responsibility e Proxy.
(B) Facade, Adapter Template Method, Chain of Responsibility e Decorator.
(C) Adapter, Facade, Decorator, Command e Adapter.
(D) Adapter, Facade, Template Method, Command e Interpreter.
(E) Memento, Strategy, Chain of Responsibility, Template Method e Memento.
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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
1.19) Avalie as afirmativas abaixo sobre o projeto de interface com usuário.
I. Deixar o usuário no comando, reduzir a carga de memória do usuário e tornar a interface
consistente são regras de ouro para o projeto de uma boa interface de usuário.
II. O projeto de uma interface consistente implica manter as informações visuais
organizadas, de acordo com as regras de projeto, ao longo de todas as exibições de
telas.
III. O projeto de uma interface de usuário deve maximizar a utilização de recursos gráficos.
IV. Manter a consistência de interface ao longo de uma família de aplicações leva à adoção
de padrões já previamente aceitos e incorporados pelo usuário.
V. O layout visual da interface deve se basear em uma metáfora do mundo real.
Assinale a alternativa que apresenta todas as afirmativas acima que estão corretas.
(A) I, II, III, IV.
(B) I, III, V.
(C) I, II, IV, V.
(D) II, III, IV, V.
(E) III, IV, V.

Mandel (1997) apud Pressman e Maxim (2016), cunha três regras de ouro (princípios) para o projeto de
interfaces do usuário. Quais são essas regras? Suscintamente explique cada uma delas e a sua importância
para o projeto de software. (Vale 1,5 ponto).
R.: As três regras de ouro são:
1. Deixar o usuário no comando - <<<explicar >>>
2. Reduzir a carga de memória do usuário - <<<explicar >>>
3. Tornar a interface consistente - <<<explicar >>>

<<< Avaliado individualmente >>>


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: 15/02/2017
Professora Dra. Adicinéia A. de Oliveira
1.20) Na hierarquia dos componentes visuais da biblioteca Java AWT (do
inglês, Abstract Window Toolkit), há containers e componentes. Containers, tais como os representados
pelas classes Frame, Panel, Dialog e Applet agregam outros componentes, tais como os representados
pelas classes Button e Label. Um container pode também conter sub-containers. Logo,
um container pode conter containers ou componentes.

Fonte: Oracle, 2016. Disponível em: <http://docs.oracle.com/javase/8/docs /technotes/guides/awt/>. Acesso em:


30 jul. 2016.

Na figura, é ilustrado, de forma resumida, o diagrama de classes dos componentes visuais AWT. Qual o
padrão de projeto que representa a estrutura de relacionamento entre as classes? Justifique sua resposta
(Vale 1,0).
R.: Composite - <<<<<justificar>>>>

<<< Avaliado individualmente >>>

1.21) Considere a seguinte situação: Uma grande empresa possui uma rede de representação de seus
produtos constituída por escritórios de venda em diversas cidades. Cada escritório possui um conjunto de
vendedores que vão até os varejistas oferecer os produtos. Varejistas podem estar em áreas populosas,
como supermercados, ou em áreas remotas, como comércios de bairros rurais. Ao chegar no varejista, o
vendedor utiliza um sistema fornecido pela empresa para registrar os pedidos de produtos. Na situação
descrita, o objetivo é registrar os pedidos na base de dados da central de distribuição da empresa. Porém,
por problemas de comunicação com a central, o computador portátil do varejista pode não conseguir
conectar com a base central para registrar os pedidos. Se isso ocorrer, o sistema deve tentar salvá-los na
base de dados do escritório. Quando a base do escritório também não estiver acessível, os pedidos deverão
ser salvos na base de dados local, no próprio computador portátil do vendedor.

Para estruturar a solução para o problema da empresa, o Analista de Sistemas utilizou um padrão de
projeto que tem a intenção de evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao
dar a mais de um objeto a oportunidade de tratar a solicitação e encadear os objetos receptores, passando
a solicitação ao longo da cadeia até que um objeto a trate. Qual é padrão de projeto dos padrões da GoF
(Gang of Four) utilizado? (Vale 0,5 ponto).
Chain of Responsibility.

R.: ____________________________________________________________________

Desenhe o Diagrama de Classes de Projeto mostrando como o padrão será util izado na solução deste
problema (Vale 1,0 ponto).

<<< Avaliado individualmente >>>

Você também pode gostar