Questões de Concurso Sobre arquitetura de software
Foram encontradas 7.361 questões
O Angular é uma grande plataforma de desenvolvimento para aplicações. Com ele podemos desenvolver aplicações web e também aplicações mobile. Ela conta com templates, componentes, módulos, serviços e diversas ferramentas de infraestrutura. Tudo isso foi criado para tomar o desenvolvimento de aplicações mais simples e rápido. A partir da sua versão 9 o Angular passou a contar, por padrão, com um novo compilador. Ele é responsável pela renderização de conteúdo e sua chegada trouxe mais performance para o ambiente de desenvolvimento Angular. Marque a alternativa que indica, corretamente, o nome deste compilador.
XQuery é o nome da linguagem de consulta projetada com o intuito de realizar consulta sobre coleções de dados representadas no formato Extensible Markup Language (XML). Essa linguagem permite a criação de expressões de consultas onde podemos definir, por exemplo, critérios de filtro, ordenação e projeção. Considere os códigos apresentados abaixo que representam, respectivamente, o conteúdo do arquivo XML que será consultado e a expressão de consulta que será realizada. Marque a alternativa que indica, corretamente, o nome dado para esse tipo de expressão de consulta.
-
Arquivo ufs.xml.
-
<?xml version="1.0" encoding="UTF-8"?>
<ufs>
<uf regiao="NORDESTE">
<nome>Ceara</nome>
<populacao> 1000000</populacao>
</uf>
<uf regiao="NORDESTE">
<nome>Bahia</nome>
<populacao> 1200000</populacao>
</uf>
<uf regiao="NORTE">
<nome>Acre</nome>
<populacao> 300000</populacao>
</uf>
<uf regiao="SUL">
<nome>Parana</nome>
<populacao>850000</populacao>
</uf>
</ufs>
-
Expressão de consulta.
-
for $x in doc("ufs.xml")/ufs/uf
where $x/ população>850000
order by $x/nome
return $x/nome
O sistema operacional Windows 10 Pro da empresa Microsoft permite acesso à tela de prompt de comando através do aplicativo CMD. Ao acessarmos essa tela nos deparamos com uma interface em modo texto onde podemos realizar diversas operações através da digitação de comandos. Marque a alternativa que indica, corretamente, o nome do cornando que permite ao usuário do Windows 10 Pro visualizar na tela de prompt de comando o conteúdo de um arquivo de texto.
A Interação Humano-Computador (IHC) é uma área de estudo da ciência da computação interdisciplinar por considerar conceitos presentes em áreas de design, ergonomia e psicologia. O usuário de sistemas informatizados tem a necessidade de interagir com tais sistemas através de operações de entrada e saída. Ao longo do tempo, essa forma de interação evoluiu sempre com o intuito de maximizar as habilidades de uso destes sistemas, tornando-as mais intuitivas, simples e seguras. A respeito de conceitos que envolvem IHC, analise as afirmativas abaixo e marque alternativa correta.
-
I. Graphical User Interface (GUI) é o nome dado para Interfaces que se comunicam com o usuário através do uso de elementos gráficos. Podem ser consideradas uma evolução em relação as interfaces de linha de comando, um tipo de interface em que o homem e o computador se comunicam através de texto.
lI. Adaptabilidade, clareza e consistência são exemplos de características presentes em uma boa interface gráfica de usuário. As duas últimas, por exemplo, ajudam a tomar a interface mais intuitiva, o que acaba tornando o processo de aprendizagem de uso do sistema mais simples.
lII. VUI é o acrônimo utilizado para descrevermos Interfaces de comunicação entre homem e computador através do uso da voz. VUI é considera um exemplo de Natural User Interface (NUI) pois se aproxima da forma como humanos interagem, dispensando a presença de elementos fisicos intermediários, como por exemplo teclados e mouses. Um bom exemplo de VUI são as inteligências artificiais, que se comunicam com o usuário através da voz, por meio de assistentes virtuais.
Facade é o nome de um padrão de projeto comportamental. Esse tipo de padrão é caracterizado por facilitar processos de delegação de responsabilidade entre objetos. Marque a alternativa que indica, corretamente, onde se aplica este tipo de padrão.
Em computação muitos problemas são recorrentes e boas soluções para eles já foram devidamente catalogadas pois são consideras soluções consagradas. Com o intuito de definir uma nomenclatura universal no mundo do desenvolvimento de software, foram estabelecidos os padrões de projeto. A respeito dos nomes e conceitos que envolvem os diversos padrões de projeto atualmente existentes, analise as afirmativas abaixo e marque alternativa correta.
-
I. Singleton e lterator são exemplos de padrões de projeto comportamentais.
II. Command e Prototype são exemplos de padrões de projeto de criação.
III. Adapter é o nome do padrão de projeto que se propõe a ser um intermediador entre uma classe não adaptável e uma interface esperada. Pode ser útil, por exemplo, para tomar "plugável" a interface de comunicação entre um sistema e módulos fornecidos por terceiros, facilitando a troca de fornecedor destes módulos se necessário.
A respeito dos diagramas comportamentais presentes na Unified Modeling Language (UML), analise as afirmativas abaixo e marque alternativa correta.
-
I. São exemplos deste tipo de diagrama, o diagrama de objeto e o diagrama de componentes. O segundo é complementar ao primeiro pois apresenta detalhes do comportamento dos métodos dos objetos.
II.O diagrama de transição de estados é uma representação da situação que um objeto pode se encontrar no decorrer da execução de processos em um sistema. São exemplos de conceitos relacionados a este tipo de diagrama: Estado, Transição, Estereótipo e Perfil.
III.O diagrama de tempo tem aplicabilidade mais clara em sistemas de tempo real onde, por exemplo, a concorrência e a velocidade de acesso são fatores críticos.
Unified Modelíng Language (UML) é muito utilizada em modelagem para sistemas desenvolvidos em linguagens orientadas a objeto. Ela possui um grande conjunto de diagramas, cada um deles com características e objetivos específicos. A respeito dos diagramas da linguagem UML, marque a alternativa correta.
Marque a alternativa que Indica, corretamente, o nome dos conceitos usados na modelagem de entidades que auxiliam o analista de projetos orientados a objetos na tarefa de categorização e hierarquização destas entidades. Tais conceitos estão Intimamente relacionados com o processo de identificação das relações de herança entre as entidades.
Object-Oriented Analysis (OOA) é a disciplina na área da computação que busca identificar o que precisa ser feito em um projeto de desenvolvimento de software orientado a objeto. Nela observamos um problema ou sistema com o intuito de identificar os objetos presentes mas também, as relações que existem entre eles. Essa disciplina envolve o entendimento de muitos conceitos. A respeito destes, analise as afirmativas abaixo e marque alternativa correta.
-
I. A composição é uma relação entre duas classes onde a existência de uma delas depende da existência da outra.
II. O encapsulamento é o processo de abstração que define quais classes em nosso projeto serão criadas.
III. A agregação é uma relação onde uma classe pode ser compartilhada com outra e a existência de delas independe uma da outra.
A Cifra de Feistel é uma estrutura simétrica usada na construção de cifras de bloco. Criada em 1973 por Horst Feitsel, muitos algoritmos de criptografia simétrica fazem uso dessa estrutura. Uma de suas vantagens é o fato dos recursos computacionais necessário para sua implementação serem menores do que os necessários em outras abordagens pois os algoritmos de cifragem e decifragem são os mesmos. Marque a alternativa que indica, corretamente, apenas nomes de algoritmos criptográficos que possuem relação com a Cifra de Feistel.
Continuous lntegration (CI) e Continuous Delivery (CD) são práticas complementares adotadas em equipes de desenvolvimento de software e geralmente implementadas por profissionais DevOps. O objetivo dessas práticas é o de otimizar o ciclo de desenvolvimento de software através da automação de tarefas. A respeito dos conceitos presentes nas práticas de CI e de CE, analise as afirmativas abaixo e marque alternativa correta.
-
I. Dentre os beneficias que podemos obter ao adotar CI e CD, podemos citar: rapidez na identificação de problemas e agilidade na entrega de atualizações do software para o cliente.
II. Um pipeline onde CI e CD foram Implementados deve ser capaz de automatizar tarefas como: integração, compilação, testes da aplicação.
III. Para conseguirmos um processo eficaz de Integração contínua, é importante que entrega contínua jà esteja ~ incorporada ao pipeline de desenvolvimento.
Git é atualmente o principal sistema de controle de versões utilizado pela comunidade de desenvolvimento de software. Criado por Linus Torvalds, o Git rapidamente ganhou espaço graças aos recursos que possui e pelo fato de ser um software livre. A respeito das características deste importante sistema de controle de versões, analise as afirmativas abaixo e marque alternativa correta.
-
I. Git é bastante utilizado através do protocolo HTTP. Entretanto este não é o único protocolo suportado. É possfvel, por exemplo, acessarmos um servidor Git através do File Transfer Protocol (FTP).
II. Git é considerado veloz apesar de não realizar cópia local do histórico do código no ambiente de cada desenvolvedor envolvido no projeto. Essa performance ocorre graças à forma como esse histórico é armazenado no servidor Git, que é a fonte centralizadora e única do histórico completo.
III. Dois dos conceitos mais importantes que precisam serem assimilados quando utilizamos Git são os branches e o merge. O primeiro representa ramos que podemos criar para o nosso código fonte quando temos a necessidade de trabalhar com desenvolvimento não linear. O segundo é a operação de mesclagem que permite incorporar alterações de um ramo qualquer em um outro ramo.
Quando monitoramos as alterações de arquivos presentes em uma pasta através do sistema de controle de versões Gil. é muito comum querermos definir alguns critérios a respeito de quais arquivos devem ser monitorados ou não. No Git este tipo de configuração é feita em um arquivo. Este arquivo armazena algumas regras que podem ser alteradas pelo usuário do sistema. Marque a alternativa que indica, corretamente, o nome deste arquivo.
Lançado em 2007, o RabbitMQ é um servidor concebido para lidar com o tráfego de mensagens de forma confiável e eficiente. Esse tipo de servidor é bastante útil para sistemas que precisam gerenciar o processamento de um grande volume de mensagens. Em situações desse tipo, o processamento assíncrono é interessante pois diminui o acoplamento entre as aplicações do sistema mas demanda um controle de filas em segundo plano. O RabbitMQ atende perfeitamente essa demanda. Marque a alternativa que Indica, corretamente, o nome do protocolo de mensagens para o qual o RabbitMQ foi projetado para suportar.
Webhooks são serviços web que possibilitam o recebimento da notificação de ocorrência de uma determinada ação em um outro sistema. Termo criado em 2007 por Jeff Lindsay, os Webhooks são muito utilizados quando o requisito de integração de dados em tempo real está presente em um projeto. A respeito das características dos Webhooks, analise as afirmativas abaixo e marque alternativa correta.
-
I. Webhook é uma alternativa às técnicas de Polling. Ele adota uma outra estratégia de comunicação, evitando assim a realização consultas periódicas como ocorre nestas técnicas.
II. Também são conhecidos pelos nome Reverse API, Callbacks ou Overload Message.
III. São utilizados em comunicações, server-to-server, ou seja, não envolvem diretamente o front-end das aplicações que estão se comunicando.
Quando falamos em segurança da informação, o princípio da confidencialidade é sempre lembrando pois a privacidade das informações está atrelada a ele. Anos de experiências, práticas e muitas horas ele estudo ele grupos de trabalho levaram ao amadurecimento de conceitos e o desenvolvimento de frameworks focados na questão da proteção dos dados. Um bom exemplo disso é a RFC 67 49. Ela descreve o OAuth 2, um padrão amplamente adotado em todo o mundo. OAuth 2 tem características importantes como: interoperabilidade e fácil Implementação, questões que auxiliaram na sua popularização. A respeito do OAuth 2, analise as afirmativas abaixo e marque alternativa correta.
-
I. OAuth 2 suporta os conceitos de Identificação, Autenticação e Autorização. O primeiro serve para identificar quem é você, o segundo confirma sua identidade e o terceiro lhe concede o acesso aos recursos permitidos após o sucesso da autenticação.
lI. Access Token é o nome dado ao dispositivo que garante o conceito de Autorização em OAuth 2. A RFC 6749 determina que ele deve possuir tamanho de pelo menos 64 bytes, por questões de segurança.
IlI. Authorization Server é o nome dado para o servidor que gera o Access Token. Esse servidor é responsável por um dos quatro papeis presentes no OAuth 2. Os outros três são: Resource Owner, Resource Server e Client.
O PostgreSQL é um sistema de gerenciamento de banco de dados (SGBD) gratuito e com suporte à linguagem SQL. Ele possui um recurso de linha ele comandos que permite a execução de alguns comandos especiais como por exemplo listar bancos de dados e listar usuários. Nesta linha de comandos é possível também executar comandos SQL. Considere um SGBD PostgreSQL que possua um banco de dados chamado PAISES e que este possua uma tabela chamada BRASIL. Marque a alternativa que indica, respectivamente, os comandos que devem ser executados para que o usuário conecte no banco de dados citado, em seguida liste todas as tabelas deste banco e em seguida liste a estrutura da tabela BRASIL.
No desenvolvimento de projetos orientados a objeto é muito comum a necessidade realizarmos a persistência de dados em bancos de dados relacionais. Entretanto esses dois paradigmas possuem conceitos específicos e para aproximá-los, tornando o desenvolvimento de projetos mais simples, é comum o uso de ferramentas do tipo Object-Relational Mapping (ORM). O Hibernate é uma dessas ferramentas. Ele é capaz de estabelecer um mapeamento entre objetos e tabelas em um banco de dados, tomando a tarefa de persistência mais simples. Além disso ele possui uma linguagem de consulta própria que referencia diretamente os objetos. A respeito dessa linguagem, analise as afirmativas abaixo e marque alternativa correta.
-
I. HQL é o nome da linguagem de consulta orientada a objetos provida pelo Hibemate. Uma das vantagens de usarmos HQL ao invés de SQL é o fato do Hibemate garantir a portabilidade do código SQL, que será gerado a partir do código HQL, para qualquer dos Sistemas Gerenciadores de Banco de Dados (SGBD) suportados por ele.
lI. Em uma instrução de inclusão de dados em HQL, a clausula "at'' é usada para identificarmos o nome da entidade envolvida na operação de inclusão.
III. HQL suporta agrupamento e ordenação através, respectivamente, das cláusulas "group by" e "order by" assim como no SQL. Suporta também funções de agregação como: soma, média, mínimo e máximo.
Java Persistence API (JPA) é uma API que define uma interface que serve de padrão para frameworks de persistência de dados, como por exemplo o Hibemate e o Eclipsellnk. Por estar relacionada à linguagem Java, JPA possibilita o mapeamento objeto-relacional para Plain Old Java Objects (POJO). Em JPA utilizamos anotações para definir características que possibilitem o mapeamento objeto relacional. Marque a alternativa que indica, respectivamente, o nome da anotação JPA que determina que um dado atributo da entidade representa um tipo de objeto de grande volume e o nome da anotação JPA que determina que um dado atributo da entidade não deve ser persistido.