Flashcards
Questão AP3 APS
Flashcards do conjunto (14)
- 1Indique o estilo arquitetural mais indicado para cada situação a seguir: a) Um sistema operacional, que separe os serviços disponíveis ao usuário dos serviços intermediários, e os serviços intermediários dos serviços mais próximos ao hardware, onde cada tipo de serviço só pode se comunicar com os serviços diretamente inferiores. b) Um compilador, que tem módulos responsáveis por análise léxica, análise sintática, análise semântica, otimização e geração de código, onde cada um desses módulos é executado em sequência e o resultado de um é entrada para o seguinte.a -> Camadas;
b-> Pipes & Filters. - 2Relacione cada problema da coluna da esquerda com um e somente um padrão da coluna da direita que é o principal indicado para tratar o problema. (a) Quem deveria ser responsável por tratar um evento desistema? (b) Em um sistema com centenas de classes, como selecionamos quais responsabilidades devem estar em quais classes? (c) Como posso evitar o acoplamento direto? (d) Como tratar alternativas em função do tipo da classe? (e) A quem atribuir uma responsabilidade quando todas as opções ferem os princípios de acoplamento baixo e coesão alta? (f) Como assegurar que uma classe tenha uma e somente uma instância e fornecer um ponto global de acesso para ela? (1) Padrão Polymorphism (2) Padrão Creator (3) Padrão Information Expert (4) Padrão Low Coupling (5)Padrão Controller (6) Padrão High Cohesion (7) Padrão Pure Fabrication (8)Padrão Indirection (9) Nenhum dos padrões anterioresa)5;
b)3;
c)8
d)1
e)7
f)9 - 3Assinale verdadeiro ou falo às seguintes afirmativas, justificando. (a) Um filtro se comunica com um outro através de uma interface de software. (b) Uma camada pode se comunicar apenas com a(s) camada(s) que está ligada imediatamente abaixo. (c) Processos distribuídos se comunicam por mensagens. (d) Um sistema com processos distribuídos é restrito exclusivamente pela sincronização das mensagens. (e) Numa arquitetura orientada a objetos, a visão lógica e a visão de desenvolvimento devem tratar dos mesmos pacotes. (f) Numa arquitetura orientada a objetos, apesar de possuírem dados em comum, as visões são independentes. (g) Uma classe que agrupe as funcionalidades de um framework é desejada. (h) Frameworks caixa-preta facilitam a reutilização.(a) Falso. Filtros são unidades independentes que não se comunicam.
(b) FALSO. Esse tipo de restrição deve ser definida no projeto da arquitetura.
(c) VERDADEIRO. A definição de um componente é um processo que envia e recebe mensagens.
(d) FALSO. Há restrições topológicas e da corretude do roteamento.
(e) FALSO. A visão de desenvolvimento pode incluir novos pacotes para tratar funcionalidades de baixo nível.
(f) FALSO. A visão de cenários integra as outras visões e valida as demais de forma a garantir a corretude do modelo.
(g) FALSO. Classes devem ser coesas, evitando agrupar estruturas independentes.
(h)VERDADEIRO. É necessário conhecer apenas as interfaces para uso, sem
detalhes de implementação. - 4Dado que um compilador é organizado em “etapas de compilação” independentes, qual o estilo arquitetural mais adequado à sua implementação? Justifique.Como as etapas são independentes, o uso de filtros se mostra adequado, uma vez que ele pressupõe que unidades independentes processam uma entrada e o resultado é passado adiante para que a(s) próxima(s) unidade(s) efetue seu processamento.
- 5Relacione cada conceito da coluna da esquerda com uma e somente uma descrição na coluna da direita que melhor o representa. (1) Interfaces devem ser implementadas por classes não abstratas (2) O sistema deve ser decomposto em um conjunto altamente coeso e fracamente acoplado de objetos (3) Objetos herdam atributos e métodos de outros objetos (4) A representação computacional do objeto real deve se concentrar nas características que são relevantes para o problema (5) O objeto deve esconder seus dados e os detalhes de sua implementação (6) Classes são capazes de instanciar objetos (7) Objetos podem ter métodos redefinidos de outros objetos (8) Pacotes contêm classes (a) Encapsulamento (b) Abstração (c) Modularidade (d) Hierarquia (e) PolimorfismoResposta:
a – 5;
b – 4;
c – 2;
d – 3;
e – 7 - 6Relacione cada elemento da coluna da esquerda com um e somente um elemento da coluna da direita. (1) Explicita os processos de negócio do cliente. (2) Explicita as possibilidades de interação entre os usuários e o sistema. (3) Detalha o comportamento de um objeto no decorrer da sua vida. (4) Detalha uma determinada possibilidade de interação entre o usuário e o sistema. (5) Explicita a estrutura estática interna do sistema. (6) Detalha a interação entre diferentes objetos do sistema para atender a uma funcionalidade específica. (a) diagrama de classes (b) diagrama de casos de uso (c) diagrama de transição de estados (d) diagrama de sequencia (e) diagrama de atividadesResposta:
a - 5;
b - 2;
c - 3;
d - 6;
e - 1; - 7Sobre a arquitetura em camadas, julgue as afirmações a seguir como verdadeiras ou falsas, justificando em ambos os casos. (a) Pode otimizar o reuso de software. (b) Uma de suas desvantagens é a possibilidade de causar overhead no sistema, dado que chamadas de uma camada podem ter de atravessar várias camadas até invocar a operação. (c) Camadas se comunicam unidirecionalmente. (d) Cada camada se comunica exclusivamente com a interface do software. (e) Camadas mais internas têm acesso a todos os detalhes de implementação e as mais externas têm acesso a menos detalhes.(a) VERDADEIRO. Uma camada pode ser reutilizada se a interface for compatível, inclusive, uma camada autocontida também pode ser usada como um componente à parte.
(b) VERDADEIRO. Chamadas da interface, por exemplo, podem ter de ir até a camada mais distante, o que degrada o desempenho.
(c) FALSO. Camadas se comunicam bidirecionalmente com as camadas
imediatamente abaixo e/ou acima.
(d) FALSO. Cada camada se comunica com as camadas imediatamente abaixo
e/ou acima.
(e) FALSO. A arquitetura em camadas organiza o sistema de forma hierárquica,
com protocolos de comunicação. - 8Caracterize sistemas de informação, de tempo real e adaptativos inteligentes.Sistemas de informação tem como objetivo o gerenciamento da informação, com o seu armazenamento, recuperação e processamento; sistemas de tempo real devem responder a estímulos num intervalo estrito de tempo e apresentar redundância para tolerar falhas; sistemas inteligentes adaptativos são perceptivos, efetuam inferências e com elas definem ações.
- 9Julgue as afirmações a seguir como verdadeiras ou falsas, justificando. (a) Num framework, deve-se agrupar ao máximo métodos e classes em estruturas robustas. (b) Num framework, deve-se reduzir o acoplamento entre objetos. (c) A construção de um framework caixa-branca pressupõe que o usuário vai conhecer os detalhes de sua implementação. (d) A corretude da saída de um filtro não depende de sua ordem de execução. (e) A arquitetura de camadas organiza o sistema em subconjuntos (camadas) onde os mais internos tem acesso a todos os detalhes de implementação e os mais externos acesso a menos detalhes.(a) FALSO. Métodos que não se comunicam devem ser separados e classes muito grandes devem ser subdivididas.
(b) VERDADEIRO. Isso deve ser feito para aumentar a coesão e generalidade.
(c) VERDADEIRO. O usuário necessitará instanciar subclasses desse framework,
herdando as características e
incorporando as características específicas.
(d) VERDADEIRO. Como um filtro é uma unidade independente, a ordem de sua
execução não influenciará no seu resultado.
(e) FALSO. A arquitetura em camadas organiza o sistema de forma hierárquica, com protocolos de comunicação. - 10Quais são e qual o objetivo das três etapas da engenharia de domínio, utilizada para a construção de artefatos pensados no reuso?As três etapas são:
(i) análise de domínio, onde se estuda e formaliza o conhecimento acerca do domínio em um modelo de domínio,
(ii) projeto de domínio, onde se constroem as arquiteturas de software de forma a atender os requisitos e
(iii) implementação do domínio, onde os artefatos reutilizáveis são implementados, de forma a compor a arquitetura. - 11A respeito da arquitetura em camadas, julgue as seguintes afirmações como verdadeiras (V) ou falsas (F): a) Uma camada pode ser reutilizada se a interface for compatível. Uma camada autocontida também pode ser usada como um componente à parte. b) Dificulta a alteração das funções internas, pois apenas os objetos da camada de interface são visíveis. c) Pode degradar o desempenho de um sistema, pois as funções da interface muitas vezes precisam atravessar várias camadas para invocar uma operação em uma camada mais interna. d) Na arquitetura em camadas haverá uma violação do estilo se um módulo solicitar serviço a um módulo que não seja na camada imediatamente abaixo (salto entre camadas). e) Na arquitetura em camadas é comum que um módulo em uma camada mais baixa dependa, para que possa funcionar corretamente, de serviços providos por módulos de camadas mais altas.Resposta:
a - Verdadeiro;
b - Falso;
c - Verdadeiro;
d - Verdadeiro;
e - Falso. - 12Considerando uma aplicação com arquitetura em três camadas, responda com suas palavras: (a) Qual camada é responsável por receber a requisição do cliente e iniciar seu tratamento? Justifique sua respostaResposta: A camada responsável por receber a requisição do cliente é a camada de aplicação. Esta camada se preocupa com o tratamento das regras de negócio e é a porta de entrada das requisições à aplicação. Se necessário, ela acionará a camada de armazenamento para ler e escrever dados e a camada de apresentação, para construir uma resposta ao cliente.
- 13Cite duas técnicas de customização de componentes via adaptação, indicando um ponto positivo e um ponto negativo de cada técnica.Resposta:
técnica “copiar e colar”: gera resultados rapidamente, porém é difícil de manter; técnica “herança”: o código da adaptação fica separado do código do
componente, porém o componente precisa ser implementado usando OO; técnica “embrulho”: não exige um grande entendimento do componente, porém pode comprometer o desempenho. - 14Para cada uma das situações à seguir, informe o estilo arquitetural mais indicado. a) Um mecanismo de chamadas remotas de procedimentos que permite a execução independente de programas em computadores e a comunicação entre esses computadores por meio de troca de mensagens. b) Um sistema operacional, onde cada componente deve ser capaz de receber um conjunto de entradas e produzir um conjunto de saídas. Os componentes podem ter as suas saídas conectadas às entradas de outros componentes. c) Um protocolo de redes, onde componentes voltados para preocupações mais básicas (ex.: transporte) oferecem serviços para componentes voltados para preocupações de mais alto nível (ex.: sessão), que, por sua vez, oferecem serviços para componentes voltados para preocupações de ainda mais alto nível (ex. apresentação), sucessivamente.Resposta:
a - Processos Distribuídos;
b - Pipes & Filters;
c - Em Camadas.
Informações
- Descrição
- APS FlashCards sobre Questão AP3 APS, criado por João Marcos Mendes em 08-06-2018.
- Criado por
- João Marcos Mendes
- Visualizações
- 3
- Avaliação