Buscar

Introdução à arquitetura de sistemas

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 13 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 13 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 9, do total de 13 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

1- Introdução à arquitetura de sistemas
1. A arquitetura de um sistema é uma área importante da Engenharia de Software, responsável por definir um modelo para o sistema que será projetado. Entre as ações relacionadas com o projeto de arquitetura de sistemas, é possível citar:
C. determinar como a interface do sistema se comunicará com as outras camadas do sistema.
2. A escolha de uma arquitetura de sistemas pode minimizar a quantidade de erros e aumentar o sucesso de um sistema. Dentro desse contexto, está correto inferir que:
A. definir a arquitetura do sistema contribui para o reúso e para a manutenção do sistema.
3. Existem diversos estilos de arquitetura de sistemas​​​​​​​. A figura a seguir representa o modelo conceitual de um desses estilos.  ​​​​​​​
A. Um sistema de bibliotecas com diversos componentes que se comunicam com um repositório de dados. Arquitetura centralizada em dados.
4. Um determinado cliente elaborou a seguinte lista de requisitos para um sistema de atendimento ao público em um hospital:
a. A interface do sistema deve ser baseada em um avatar.
b. O sistema deve ser capaz de interagir com o usuário como se fosse um ser humano.
c. O sistema deve aprender e se ajustar a cada novo atendimento.
Baseando-se nessas informações, que gênero de arquitetura de sistemas poderá ser utilizado para o desenvolvimento desse sistema?
B. Inteligência Artificial.
5. Certa empresa de desenvolvimento de software necessita desenvolver um sistema para um banco com algumas funcionalidades, tais como: sacar, depositar, criar conta, investir, realizar pagamentos, entre outras.  Um requisito não funcional prioritário é que esse sistema possua alta manutenibilidade e que partes dele possam ser aproveitadas para os próximos módulos que serão desenvolvidos para esse banco. Sendo assim, qual é o melhor estilo de arquitetura para este sistema?
E. Arquitetura orientada a objetos e arquitetura em camadas.
2- Descrição de arquiteturas de sistemas
1. O arquiteto, ao desenvolver um projeto, considera um conjunto de requisitos que motivam e justificam suas decisões. Para que o sistema seja desenvolvido, há também metas de qualidade a serem levadas em conta, bem como cenários de uso, padrões de projeto e estilos arquiteturais existentes. Nesse contexto, ao criar um projeto de arquitetura, deve-se considerar as entidades externas relacionadas ao sistema-alvo.
O que define essas entidades externas?
C. As entidades externas são outros sistemas, dispositivos, pessoas, etc., que interagem com o sistema-alvo.
2. Um de contexto em UML representa o fluxo de informação para dentro e fora do sistema, a interfacedo usuário e o apoio de processamento relevante. Cada uma das entidades se comunica com o sistema-alvo por meio de uma interface.
Sendo assim, quais são os tipos de entidades e/ou componentes necessários durante a elaboração de uma representação do sistema, utilizando o diagrama de contexto arquitetural?
B. Sistemas superiores, sistemas subordinados, sistemas de mesmo nível e atores.
3. A arquitetura de software deve modelar a estrutura de um sistema e a maneira pela qual componentes de dados e procedimentos colaboram. À medida em que ela é refinada em componentes, a estrutura do sistema começa a ficar mais clara. No entanto, antes disso, é necessário entender que os componentes de uma arquitetura de software podem ser considerados como um módulo que encapsula uma implementação e que pode ser implementado ou substituído em um sistema.
Nesse sentido, o que um componente define em um sistema, exatamente?
A. Um comportamento.
4. Em modelagem UML, uma instância do componente é um elemento de modelo que representa uma instanciação ou uma ocorrência real de um componente e se baseia nos componentes existentes. Normalmente é aplicada a um problema específico para demonstrar que os componentes e estrutura definidos estão apropriados.
Nessa linha de pensamento, qual pode ser considerado o principal objetivo de uma instância?
E. Provar o funcionamento de um componente em um contexto real de utilização.
5. As ADLs fornecem uma sintaxe para representação estrutural dos elementos arquiteturais, suas restrições e interações, permitindo expressar modelos arquiteturais de sistemas. Essas linguagens, na sua essência, acabam oferecendo abstrações para a representação da arquitetura de um software.
Levando em consideração esse conceito, quais seriam essas abstrações/elementos básicos que compõem as ADLs?
A. Os componentes e os conectores.
3- Padrões de projeto de arquitetura de sistemas
1. Os padrões de projeto são divididos em três grupos: 
- CREATIONAL PATTERNS: padrões de criação, cujo objetivo é a abstração da instância de objetos. 
- STRUCTURAL PATTERNS: padrão estrutural, cujo objetivo é a organização e a estrutura das classes, bem como o relacionamento destas com os objetos. 
- BEHAVIORAL PATTERNS: padrão comportamental, cujo objetivo é delegar responsabilidade, definindo como os objetos devem se comportar e se comunicar.
Neste contexto, considere:
I. O objetivo do padrão de projeto Singleton, do grupo Padrão de Criação, é conter um único objeto na classe.
II. O padrão de projeto Proxy, do grupo de padrões estruturais, permite que o sistema utilize um objeto no lugar de outro. Ele é muito utilizado em processo de carregamento de imagens, por exemplo. 
III. O padrão de projeto Memento, do grupo de padrões estruturais, permite guardar e restaurar um estado do objeto, sendo muito utilizado para manipular históricos. 
Dentre as afirmações, quais são verdadeiras?
D. I e II.
2. Os padrões de projeto facilitam a reutilização de soluções e arquiteturas de softwares orientados a objetos de forma flexível e fácil, reduzindo a complexidade do projeto e resolvendo os problemas.
Considerando os padrões do livro Padrões de Projeto – Soluções reutilizáveis de software orientado a objetos, de Erich Gamma, é correto afirmar sobre GoF:
A. O GoF, composto por 23 padrões, tornou-se base para outros padrões. 
3. O objetivo do padrão de criação é a abstração da instância de objetos, sendo possível criar um objeto sem se preocupar com o todo envolvido na criação desse componente. Dessa forma, esse padrão abstrai ou adia o processo de criação, tornando o sistema independente de como seus objetos são criados.
Avalie as afirmações sobre o padrão de projeto Singleton, do grupo de projetos de criação:
I. O padrão Singleton pode ser usado para determinar uma quantidade fixa de instâncias de uma classe que podem ser criadas em uma aplicação.
II. A classe que implementa o padrão Singleton deve manter público seus construtores para facilitar a instância de classes.
III. O padrão Singleton é implementado por meio de atributos e métodos estáticos na classe em que é aplicado, o que permite uma instância da classe e um ponto global de acesso a ela.
Quais afirmações são verdadeiras?
C. I e III.
4. Os padrões de projeto facilitam a reutilização de soluções e arquiteturas bem-sucedidas na construção de um projeto com Paradigma Orientado a Objetos (POO), possibilitando trazer ao código organização e, ao programador, uma habilidade, experiência e um código limpo e padronizado. Como escolher o melhor padrão a ser utilizado?
D. A decisão em utilizar o padrão X ou Y depende da avaliação de alguns critérios como: intenção e objetivo do padrão, motivação, semelhanças dos padrões, estrutura do projeto e aplicabilidade.
5. Um projeto desenvolvido para uma agência bancária contém uma classe DataBank para armazenar dados relacionados às instruções do banco. Além da DataBank, ele apresenta mais três classes que exibem dados bancários: ViewText, ViewBarGraphic e ViewPieGraphic.
Cada interação no objeto da classe DataBank deve notificar e atualizar os objetos das demais classes.
Ao interagir com o objeto DataBank, fazendo uma transação bancária, o objeto da classe ViewText deve apresentar um texto descrevendo a transação, enquanto os objetos da classe ViewBarGraphic e da ViewPieGraphic precisam apresentar graficamente a transação realizada.​​​​​​​
Analisando o case do projeto,qual padrão seria adequado na implementação da atualização de classes, priorizando a organização e a melhoria do sistema proposto?
B. O padrão de projeto Observer, padrão comportamental, pois ele possibilita a dependência um-para-muitos entre objetos. Quando o objeto da classe DataBank muda, todos os objetos das demais classes são notificados e atualizados automaticamente.
4- Padrões arquiteturais MVC, MVP e MVVM
1. Os padrões de arquitetura têm o papel de facilitar implementação, resolvendo problemas por meio de soluções conhecidas, desenvolvidas e já testadas. Analisando o padrão de arquitetura MVC (Model-View-Controller), pode-se afirmar que:
B. a cada evento executado em uma interface, o Controller écomunicado e, por sua vez, faz a comunicação com a View e as regras de negócio. A função desse padrão de arquitetura é tornar possível a separação entre as camadas.
2. O Modelo-Visão-Controlador (do inglês Model-View-Controller), comumente conhecido como MVC, é um padrão arquitetural que pode ser usado para organização dos subsistemas de um sistema de software. Nesse contexto, leia as seguintes afirmativas:
I. O Controlador é como um gerenciador da interface do usuário e se comunica com o Modelo no padrão MVC para atualizar dados à Visão.
II. A Visão notifica o Controlador sobre mudanças no estado da aplicação. Isso é feito por meio dos eventos disparados pela interação do usuário na interface.
III. O padrão MVC foi inspirado no modelo MVP e surgiu na década de 1990.
É correto o que se afirma somente em:
D. I e II.
3. Padrão arquitetural que especifica que um determinado sistema deve ser desenvolvido em níveis e separa View e Model, tornando o código bem estruturado e permitindo uma resposta mais rápida às alterações de projeto e facilidade em utilização de testes.
Que padrão é esse?
D. Padrão de arquitetura MVVM.
4. MVP é o acrônimo para Model-View-Presenter, que é uma arquitetura que visa a separar a aplicação em camadas com funções específicas, de maneira a melhorar a testabilidade do sistema e a alteração de layouts. São funções do MVP: 
- Definir classes que representam os dados, ações e a validação lógica desses dados.
- Fazer pedido ao modelo das requisições impostas pela interface e, após o retorno, disparar essas atualizações à interface.
- Receber as interações do usuário pela interface. 
As camadas as quais essas funções estão relacionadas são, respectivamente:
B. Model - Presenter - View.
5. Considere as seguintes afirmações sobre os padrões arquiteturais:
I. O padrão MVC separa a apresentação e a interação dos dados do sistema, por meio de três componentes lógicos que interagem entre si: o componente Controlador, que gerencia os dados e as operações associadas a esses dados; o componente Modelo, que define e gerencia a forma como os dados são apresentados ao usuário; e o componente Visão, que gerencia a interação do usuário (teclas, cliques do mouse, por exemplo) e passa essas interações para o Controlador e o Modelo.
II. No padrão MVP, o Presenter é essencialmente o Controller do MVC, e tem como função atualizar a View quando o Model é alterado e sincronizar o Model em relação à View.
III. O padrão MVVM é um padrão altamente testável.
Qual(is) está(ão) correta(s)?
B. Apenas II e III.
5- Princípios de projeto e modelagem SOLID
1. Os princípios apresentados pelo SOLID têm como principal objetivo seguir boas práticas de programação, assim, reduzindo sua complexidade e o acoplamento entre classes, garantindo uma melhor manutenção futura ao sistema desenvolvido.
Analisando os cinco princípios existentes, pode-se afirmar que:
C. o princípio da responsabilidade única (SRP) tem como objetivo atingir as classes e suas responsabilidades dentro do sistema, visando tornar a classe com alta coesão. A alta coesão é favorável ao projeto.
2. O acrônimo SOLID nos traz cinco boas práticas a serem aplicadas à programação com paradigma orientado a objetos. O princípio de SRP (princípio da responsabilidade única) tem como objetivo atingir as classes e suas responsabilidades dentro do sistema.
Analise a classe Java a seguir: ​​​​​​​
Tendo como foco o uso do princípio SRP, é correto afirmar que:
D. a classe Turma apresenta uma quebra do SRP, uma vez que tem responsabilidades que deveriam ser de componentes distintos do software.
3. Com relação aos princípios SOLID, o princípio que defende que módulos de alto nível não devem depender de módulos de baixo nível e que ambos devem depender de abstrações é:
E. princípio DIP (dependency inversion principle).
4. SOLID é o acrônimo para single responsibility principle, open/closed principle, Liskov substitution principle, interface segregation principle e dependency inversion principle. Cada princípio traz um modelo, referência, base a seguir na programação orientada a objetos visando a um código mais coeso, limpo e de fácil manutenção.
São definições e conceitos:​​​​​​​
I. Classes derivadas devem ser substituíveis por suas classes base, uma subclasse deve sobrescrever os métodos da superclasse, sem alterar a funcionalidade da base.
II. Separar responsabilidades em diferentes classes, isso porque as alterações em uma responsabilidade podem prejudicar ou inibir a habilidade da classe em lidar com outras responsabilidades.
III. Classes devem ser abertas para extensão, ou seja, estender o comportamento delas e não alterar/modificar as mesmas.
Os princípios aos quais essas funções estão relacionadas são, respectivamente:
A. LSP, SRP e OCP.
5. Considere as seguintes afirmações sobre os princípios SOLID.
I - SOLID é um acrônimo para cinco princípios da programação orientada a objetos, destinados a facilitar a compreensão, o desenvolvimento e a manutenção de software.
II. Entre os princípios, o SRP (princípio da responsabilidade única) auxilia o uso de alta coesão na classe.
III. Quanto maior o número de responsabilidades em uma classe, mais simples será seu teste unitário, além de aumentar consideravelmente o número de testes de interação a serem executados.
É correto o que se afirmar somente em:
D. V, V, F.
6- Projeto dos componentes da arquitetura de sistemas
1. Tanto a composição quanto a implantação de um componente devem ser possíveis sem a necessidade de utilizar outros componentes específicos. Nas situações em que o componente necessita de serviços externos, estes devem ser explicitamente definidos em uma especificação de interface de nome requires.
​​​​​​​Esta descrição se refere a qual característica de um componente de software?
B. Independente.
2. A tarefa de elaborar todas as classes de projeto não obtidas como componentes reutilizáveis exige a descrição detalhada de todas as interfaces, atributos e operações essenciais à implementação de cada classe. 
Esta etapa do projeto de componentes se divide em 4 passos:
1. Elaborar atributos e definir os tipos de dados e as estruturas de dados necessárias para implementá-los.
2. Identificar interfaces adequadas para cada componente.
3. Especificar detalhes de mensagens quando classes ou componentes colaboram entre si.
​​​​​​​4. Descrever detalhadamente o fluxo de processamento contido em cada operação.
Assinale a alternativa que apresenta a ordem correta dos passos para elaboração de todas as classes de projeto não obtidas como componentes reutilizáveis.
D. 3, 2, 1 e 4.
3. A engenharia de software baseada em reúso é uma abordagem de desenvolvimento que tenta maximizar o reúso de um software já existente.
Em geral, as unidades de software reusadas podem ser de tamanhos diferentes, sendo categorizadas em:
E. Reúso do sistema de aplicação, de componentes e de objetos e funções.
4. Os padrões para a implementação, a documentação e a implantação de componentes destinam-se também aos fornecedores de infraestruturas de execução de componentes que oferecem middleware para apoiar a operação de componentes.
Qual é a melhor definição para middleware?
A. Conjunto de componentes de infraestrutura que possibilita aos componentes do domínio do problema se comunicarem entre si por meio de uma rede ou de um sistema complexo.7- Reúso de software
1. O objetivo do reúso de software é o aumento da produtividade e a redução no esforço de desenvolvimento de novos sistemas por parte dos analistas e desenvolvedores. Porém, a falta de conhecimento de técnicas de reúso, a falta de ferramentas ou a infraestrutura do software podem trazer problemas na implementação.
Nesse contexto, analise as seguintes afirmativas:
I. O uso de padrão de projeto é uma forma de fazer reúso. Os padrões de projetos ou Design Patterns, comumente conhecidos, são modelos, referências aplicadas ao projeto, trazendo soluções para problemas específicos do desenvolvimento do projeto de software orientado a objetos. 
II. O sistema ERP é uma estrutura de códigos e é gerado a partir de modelos de domínio e modelos de implementação de sistemas legados.
III. Frameworks de aplicações é um tipo de reúso através de abstração, que une códigos comuns entre vários projetos de software, incorporando funcionalidades genéricas ao sistema.
Verifica-se que é(são) verdadeira(s):
C. somente a I e a III.
2. Com a ascensão do desenvolvimento de sistemas, é comum que muitos projetos possuam funções ou partes do código semelhantes, isso beneficia os processos de criação de software com foco no reúso. Acerca desse assunto, é correto afirmar que:
A. reutilizar softwares existentes não é uma ideia inovadora, ela surgiu em 1968 quando o matemático e informático Doug McIlroy demonstrou interesse em integrar circuitos para produção em massa; porém, o reúso só ganhou ênfase em 1980, com o surgimento da primeira pesquisa sobre o assunto.
3. Os frameworks são como caixas de ferramentas que possibilitam à equipe de desenvolvimento trabalhar com uma coleção de classes concretas e abstratas aplicadas a uma linguagem orientada a objetos. São basicamente um template com diversas funções que podem ser usadas pelo desenvolvedor.
Sabendo disso, leia as afirmativas a seguir.
I. Entre as características de um framework estão: a linguagem padronizada e documentada, a estrutura fixa para facilitar o uso e impedir que a linguagem seja corrompida ou danificada, além de ser de fácil entendimento.
II. Uma das desvantagens em utilizar o framework é a dependência da ferramenta para seguimento do projeto. Caso a ferramenta não receba atualizações ou seja descontinuada, prejudicará a manutenção do sistema desenvolvido com o apoio dela.
III. Para que o desenvolvedor trabalhe com um framework é necessário obter conhecimento técnico acerca da ferramenta, aplicando a cada fase do projeto a estrutura disponibilizada pelo mesmo. A maioria dos frameworks não disponibiliza documentação e apoio técnico, sendo esta uma das desvantagens em seu uso.
Qual(is) está(ão) correta(s)?
D. Apenas a II.
4. A engenharia de software baseada em componentes é uma abordagem ao desenvolvimento de software baseado no reúso,através de um bloco construído para definir uma parte da aplicação, uma representação de algo a ser implantado, conforme as especificações construídas no ciclo de vida de um projeto.
Sobre as características do software baseado em componentes, assinale a alternativa correta.
A. Os componentes precisam ser documentados para avaliar se atendem às necessidades da aplicação. Eles são testados, executados e utilizados. Assim, o nível de segurança é mais alto, e qualquer falha já é avisada e corrigida.
5. Tratando-se da construção de sistemas desenvolvedores experientes, é comum se pensar em reúso de software, ou seja, reaproveitar algo que já foi desenvolvido, testado e aprovado, o que oferece inúmeras vantagens. No entanto, tal processo também pode trazer problemas ou obstáculos. Que problemas são esses?
A. O ambiente de desenvolvimento normalmente não é padronizado e preparado para o reúso, não possui conformidade com padrões de escrita e muitas vezes falta conhecimento técnico para aplicar o reúso da forma correta.
8- Modelagem ágil
1. Os métodos ágeis são alternativas à gestão tradicional de projetos, com práticas eficazes que se destinam a permitir a entrega rápida e de alta qualidade do produto. Esses métodos vêm ajudando muitas equipes a encarar a imprevisibilidade dentro de um projeto, por meio de entregas incrementais e ciclos iterativos. Quais dos seguintes métodos são caracterizados por serem métodos ágeis?
D. XP, Scrum, Kanban.
2. Os princípios da modelagem ágil são de grande importância para sua implementação, pois eles são os regentes das práticas da modelagem ágil. O princípio de viajar leve é um desses princípios. Qual das seguintes frases se refere a ele? ​​​​​​​
C. Logo, ao longo do desenvolvimento da engenharia de software, conserve apenas aqueles modelos que terão valor no longo prazo e despache o restante.
3. As práticas da modelagem ágil são consideradas o núcleo dessa metodologia, práticas essas que são regidas pelos seus princípios. Em relação a esse conjunto de práticas, qual se caracteriza por modelar um pouco, codificar um pouco, testar um pouco e depois entregar um pouco?
E. Iterativa e incremental.
4. Com o surgimento e a progressiva adoção de métodos ágeis em processos de desenvolvimento de softwares, foram surgindo ferramentas para auxiliar em seu desenvolvimento. Qual dos métodos a seguir era conhecido como uma ferramenta que apenas continha cartões em quadros visuais utilizados em processos ágeis?
B. Kanban.
5. Dentre as práticas de modelagem ágil, tem-se a prática prove com código. Qual a finalidade dessa prática?
D. Saber se a solução da modelagem é implementável em código.
9- Domain-Driven Design
1. Padrões de modelagem de software propocionam vários benefícios para aplicação desenvolvida. Atualmente, Domain-Driven Design emerge como um dos padrões de modelagem de domínio mais consistente. Assinale a alternativa que apresenta corretamente os principais benefícios promovidos pelo uso do DDD.
A. Comunicação da equipe, extensibilidade, testabilidade.
2. Cada um dos blocos de construção no desenvolvimento de software guiado pelo Domain-Driven Design tem uma responsabilidade bem definida. O bloco voltado para a interface do usuário é responsável:
B. pela exibição de informações do sistema ao usuário e também por interpretar comandos do usuário.
3. O desenvolvimento de software baseado no modelo DDD é um conceito atual com a utilização de velhas práticas de desenvolvimento. Assinale a alternativa a seguir que melhor define esse modelo.
C. ​​​​​​​É uma abordagem de modelagem de software com objetivo de facilitar a implementação de regras de negócio baseado em um domínio.
4. DDD é uma abordagem de modelagem de software que carrega em sua essência a orientação a objeto (OO). Assinale a alternativa a seguir que contém características que são intrínsecas a OO.
D. Alinhamento do código com o negócio, favorecer reutilização, mínimo de acoplamento, independência da tecnologia.
5. Quando se utiliza um padrão de modelagem de domínio como DDD, vários aspectos importantes precisam ser trabalhados no momento da modelagem do software. Assinale a alternativa que apresenta corretamente o conceito do aspecto comunicacional promovido pelo DDD.
A. A modelagem de aspectos comportamentais de uma aplicação deve ser efetuada utilizando-se uma linguagem ubíqua para facilitar a comunicação em equipe.
10- Projeto da interface de uma arquitetura de sistemas
1. O processo de análise e projeto de uma interface pode utilizar um modelo espiral em seu desenvolvimento. Nesse sentido, qual importante atividade é proporcionada por esse modelo?
E. A capacidade de iteração.
2. A usabilidade aborda principalmente a capacidade cognitiva, perceptiva e motora dos usuários empregada durante a interação com o sistema. Das alternativas a seguir, assinale a que representa um fator de usabilidade.
C. Facilidade de aprendizado.
3. Identificar os usuários é uma das principais fontes de informação para o desenvolvimento de uma interface. Isso se deve ao fato de os usuários estarem intimamente ligados à interface do sistema, visto que eles vão operá-la. Diante disso, um processo utilizado na identificação e classificação dos usuáriospode ser representado pela ação de:
B. conversar com a equipe de usuários da empresa que comprou o sistema.
4. Em muitos casos, o engenheiro de software pode se deparar com ambientes capazes de injetar dificuldades no desenvolvimento de interface. O chão de fábrica é um exemplo clássico, de modo que a temperatura e ausência de mesas de escritório podem influenciar em diversos fatores. Refletindo sobre isso, que elemento pode ser uma boa solução em ambientes restritivos?
A. Monitores sensíveis ao toque.
5. Uma vez não definidos no início do projeto, os requisitos não funcionais incidem em iterações desnecessárias para corrigi-los no decorrer do processo. Exemplo de requisito não funcional que deve ser planejado inicialmente é o padrão de mensagens de erro, visto que, em tal etapa, os erros podem ser simplórios ou até mesmo inexistentes. À medida que o projeto avança e se torna mais complexo, os erros surgem e a sua definição tardia pode gerar iterações para implementá-los em interfaces já concluídas para que todas apresentem o mesmo padrão de mensagens de erro. Nesse contexto, que característica é desejável em uma mensagem de erro?
D. Linguagem adequada ao usuário na descrição do erro.
11- Arquitetura de softwares distribuídos
1. Quando se trabalha com sistemas distribuídos, é preciso prestar uma atenção especial em alguns pontos chave do projeto, como transparência, abertura e escalabilidade. Qual é o objetivo da escalabilidade em um sistema distribuído?​​​​​​​
C. Que seja possível aumentar a capacidade computacional.
2. Sistemas distribuídos apresentam algumas características que os tornam mais complexos, se comparados com sistemas centralizados. Qual das alternativas abaixo corresponde a características de sistemas distribuídos que aumentam sua complexidade?
B. A interação entre os componentes e suas estruturas não é uma tarefa trivial.
3. Os processos podem ser gerenciados de diversas formas em sistemas distribuídos, de acordo com suas finalidades. Um sistema que utiliza a arquitetura mestre-escravo é muito utilizado em sistemas de tempo real, por exemplo. Em relação ao gerenciamento dos processos em arquitetura mestre-escravo, pode-se afirmar que usualmente:
C. Pode ter apenas um processo mestre e diversos escravos.
4. Em arquiteturas cliente-servidor em duas camadas, a base de dados fica no servidor, enquanto as regras e a lógica da aplicação ficam no cliente. Quanto ao processamento, existem basicamente dois modelos: cliente gordo e cliente magro. Em uma abordagem cliente gordo:
D. Todo o processamento, ou parte dele, é feita no cliente.
5. Uma empresa trabalha com venda online de ingressos para eventos, e quando tem shows internacionais, por exemplo, a empresa já chegou a esgotar em menos de três horas os ingressos para lotar um estádio de futebol. Qual seria a a arquitetura mais apropriada para esta empresa?
C. Cliente servidor multi-camadas.
12- Arquitetura orientada a serviços
1. O projeto de uma Arquitetura Orientada a Serviço baseia-se em um barramento de serviços, que é formalmente conhecido como ESB (Enterprise Service Bus). Qual das opções abaixo melhor contextualiza a razão pela qual se pressupõe a criação de um barramento de serviço na Arquitetura Orientada a Serviço?
B. O barramento de serviço representa o local onde os serviços estão interconectados, como um repositório para consumo.
2. Na implementação de uma Arquitetura Orientada a Serviço, temos três interfaces fundamentais para publicação, comunicação e descoberta dos serviços. Marque a alternativa que melhor representa a designação destas três interfaces: WSDL, UDDI e SOAP. 
D. O WSDL é a interface que representa os serviços, o UDDI é responsável pelo descobrimento que define as informações sobre os serviços e o SOAP é responsável pela comunicação e troca de dados.​​​​​​​
3. Após execução dos comandos REST, quais são os retornos equivalentes utilizados no desenvolvimento de web services por meio do protocolo HTTP?
A. POST - CREATE 
 GET - READER
 PUT - UPDATE 
 DELETE - DELETE
4. A Arquitetura Orientada a Serviço modela serviços fracamente acoplados, que têm como principal característica:
C. baixo nível lógico de dependência entre serviços.
5. Na Arquitetura Orientada a Serviço, qual é a linguagem de comunicação utilizada na modelagem BPM de serviços e como ela pode ser utilizada via REST?
E. BPEL e via REST para modelar a execução dos processos antes da inserção no barramento. 
13- Projeto de serviços web
1. O projeto de serviços web envolve duas camadas fundamentais: a camada web e a camada de negócio, que, em conjunto, implementam as requisições de consumo aos serviços web.
Todavia, é preciso de interfaces de comunicação em mais duas camadas –​​​​​​​ uma que se comunica diretamente com a camada web e  outra que se comunica diretamente com a camada de negócio. Quais são essas camadas e qual a sua função?
B. Camada cliente: cria uma interface para interação com o consumidor do serviço (front-end). Camada EIS: cria uma interface com serviços corporativos.
2. O UDDI apresenta as especificações técnicas para a descoberta dos serviços disponíveis e se subdivide em páginas brancas, verdes e amarelas, que representam, respectivamente:
D. informações gerais sobre os serviços, informações técnicas e informações sobre a categorização e a classificação de serviços por taxonomia.
3. Um pacote encapsulado em SOAP é constituído por três elementos: envelope, header e body, que servem para, respectivamente:
C. definir a representação dos dados em XML, o cabeçalho que inicializa as informações contidas no envelope e os dados que estão encapsulados.
4. Ao enviar uma requisição a um serviço via mensagem, o cliente deve buscar a descrição que está armazenada em um repositório em determinado formato.
Em qual repositório a descrição dos serviços é armazenada e em que formato ela está?
A. UDDI e WSDL.
5. As chamada RPCs são utilizadas na comunicação entre web services por sua flexibilidade, exatamente por encapsular:
E.      XML sob HTTP.
14- Arquitetura de softwares embutidos
1. Por definição, um software embutido é caracterizado pelo uso no controle de sistemas que reagem a eventos externos em seu ambiente. Dessa forma, dentro da Engenharia de Software, pode-se afirmar que o software embutido é importante devido ao fato de:
B. o seu sistema apresentar uma capacidade de resposta full time superior a outros sistemas.
2. Conceitualmente, dentro do processo de projeto para sistemas embutidos, os projetistas de software devem levar em conta dois aspectos: o detalhamento do projeto e o comportamento do hardware de sistema. Com isso, é possível considerar que um ponto crucial para muitos sistemas de tempo real consiste em:
A. analisar os custos e o consumo de energia do hardware.
3. Os softwares embutidos caracterizam-se pela capacidade de um dispositivo exercer controle em uma quantidade extensa de sistemas. Dentro desse contexto, existem padrões de arquitetura distintos utilizados pelos sistemas embutidos. Sendo assim, que padrão de arquitetura de tempo real é usado com frequência e qual a sua finalidade?​​​​​​​
C. Controle de ambiente, usado quando um sistema acrescenta sensores que apresentam informações referentes ao ambiente e atuadores capazes de transformá-lo.
4. A correção de um sistema embutido não está relacionada apenas com as saídas, mas também com o instante em que elas foram produzidas. Assim, pode-se afirmar que uma das tarefas mais relevantes ligadas ao processo de desenvolvimento de software é a análise de timing, sendo característico desse tipo de análise:​​​​​​​
D. calcular com que frequência cada processo do sistema deve ser realizado para assegurar o processamento de todas as entradas e a produção de todas as respostas do sistema no tempo correto.
5. A plataforma de execução é, dentre outros aspectos, um sistema operacional que gerencia recursos compartilhados. Porém, a extensa funcionalidade pertinente a um sistema operacional convencional toma muito espaço e atrasa o desempenho dos programas. Diante dessasituação, pode-se inferir que:​​​​​​​
E. sistemas operacionais padrão geralmente são descartados como plataforma de execução para sistemas de tempo real.
15- Família ATMega
1. Existe uma diferença marcante entre os microcontroladores AVR ATMega e os microcontroladores concorrentes. Essa diferença está intimamente relacionada com o seu desempenho superior e diz respeito:
C. à arquitetura de comandos reduzida.
2. Existe um recurso encontrado nos microcontroladores ATMega que os diferencia claramente dos microcontroladores que não pertencem a essa família. Qual é esse recurso?
A. Grande capacidade de memória
3. Os microcontroladores ATMega, dentre os vários recursos de hardware disponíveis, contam ainda com vários protocolos de comunicação, dentre os quais os mais significativos são UART, USART, SPI e I2C.
A respeito desses protocolos de comunicação, sabe-se que, com algumas exceções, há somente 1 canal disponível para o protocolo SPI e outro para o protocolo I2C, enquanto existem de 2 a 4 canais para os protocolos UART/USART.
Essa abordagem por parte dos fabricantes está fundamentada no fato de que:
B. não é necessário mais de um canal para protocolos SPI e I2C, pois os componentes que usam esses protocolos podem ser montados em paralelo.
4. Para a programação dos microcontroladores ATMega, é necessário que, após o desenvolvimento do programa, o usuário faça a programação deste, isto é, transfira o programa já codificado para a memória interna do microcontrolador para que ele possa executar o programa.
Para essa operação, é necessário ainda que o usuário disponha de:
E. um sistema de conversão USB – SPI.
5. O processador dos microcontroladores ATMega é baseado na arquitetura de conjunto reduzido de comandos – RISC. Isso significa que o processador reconhece poucos comandos se comparado com um processador de arquitetura CISC. Essa abordagem, porém, proporciona alguns benefícios, mesmo trazendo um limite teórico máximo de memória com que o microcontrolador consegue trabalhar.
Assinale a alternativa que expressa as vantagens que essa decisão trouxe ao microcontroladores da família ATMega.
E. A abordagem RISC permite que o processador seja mais rápido e mais eficiente em termos energéticos do que os processadores CISC.
16- Projeto de software WebApps
1. Uma característica essencial de uma aplicação web é seu dinamismo. As necessidades de uma aplicação web podem mudar em pouquíssimo tempo, levando à necessidade de projetos que tomem cada vez menos tempo e aplicações cada vez mais adaptáveis às necessidades atuais de seus usuários. Sendo assim, qual das opções abaixo representa a melhor decisão ao se iniciar um projeto de WebApp?
B. Adaptar modelos tradicionais, realizando todas as etapas previstas no processo de desenvolvimento, e, sempre que possível, realizar atividades em paralelo.
2. A entrada de um usuário em um WebApp pode ocorrer a partir de diversas origens, sendo um dos maiores desafios em projetos de WebApp. Em qual das atividades a seguir esse tipo de problema deve ser tratado?
D. Projeto de interface.
3. Um projeto de arquitetura permite definir quais serão as regras de navegação em um WebApp, ou seja, por quais caminhos o usuário poderá seguir uma vez que estiver dentro da aplicação web. O modelo de arquitetura que permite o agrupamento de dois ou mais objetos por categoria e que é altamente aplicado em modelos de e-commerce é conhecido como:
E. modelo em grade.
4. Todo projeto de WebApp deve levar em consideração alguns requisitos que, mesmo não especificados pelo usuário, são necessários. O principal grupo de requisitos a ser observado em um projeto de WebApp são os requisitos de qualidade, que devem estar presentes em qualquer projeto. Assim sendo, a descrição a seguir é referente a qual requisito de qualidade? “Capacidade de busca e recuperação de dados, facilidade de navegação e leitura das informações, características relacionadas ao domínio da aplicação, etc.”
A. Funcionalidade.
5. O desenvolvimento de um projeto de WebApp deve atender a uma série de objetivos que, muitas vezes, não são especificados pelo usuário durante o processo de coleta de requisitos, mas que são observados em inúmeros projetos web, uma vez que, quando não aplicados, elevam as chances de fracasso do projeto. Observe a afirmação a seguir e responda a qual objetivo se refere: “O usuário espera que o conteúdo seja relevante às suas expectativas. A falta ou insuficiência de elementos pode levar ao fracasso do WebApp”.
E. Robustez.

Outros materiais