O Projeto Orientado a Serviços (SOA) tem como objetivo facilitar a
integração entre diferentes serviços.
Sobre o emprego de SOA, assinale a afirmativa correta.
Multithreading é um conceito fundamental para o melhor
aproveitamento de recursos por um sistema operacional.
Para o emprego eficaz desse conceito, é fundamental a existência de
mecanismos de sincronização eficientes.
Nesse contexto, analise as afirmativas a seguir.
I. Por definição, semáforos possuem um contador, cujos valores
podem ser 0,1 ou 2.
II. Mutexes são projetados para garantir que apenas uma thread
possa acessar um recurso compartilhado por vez.
III. Mutexes podem ser considerados uma generalização de
semáforos, por conta da maior flexibilidade do contador de um
mutex.
Considere um computador com processador de 32 bits cuja memória
está organizada de acordo com o endereçamento de byte, com o
método big-endian.
Suponha que as palavras, com tamanho de 4 bytes, 25 38 94 67H
(identificada por P1) e 18 31 72 46H (identificada por P2) estão
armazenadas a partir dos endereços 0010H e 002CH,
respectivamente.
Nesse contexto, analise as afirmativas a seguir.
I. A leitura do endereço 0014H retorna o byte 38H da palavra P1.
II. A leitura do endereço 002FH retorna o byte 46H da palavra P2.
III. Entre as palavras P1 e P2 podem ser armazenadas doze palavras.
Relacione os módulos essenciais do Qt às suas respectivas definições
ou funcionalidades.
1. Qt Core
2. Qt Quick
3. Qt QML
4. Qt D-Bus
( ) É uma linguagem de marcação declarativa e multiparadigma
usada para criar interfaces de usuário de forma rápida e
eficiente.
( ) Permite a troca de mensagens entre processos a nível de sistema
e processos comuns dos usuários.
( ) Adiciona recursos ao C++ como comunicação contínua de
objetos e árvores hierárquicas que organizam as propriedades
de objetos de maneira natural com ponteiros protegidos.
( ) Disponibiliza tipos para receber os inputs dos usuários, construir
componentes visuais, criar modelos de dados e instanciação
atrasada de objetos.
Assinale a opção que indica a relação correta, segundo a ordem
apresentada.
Um processo é considerado um conceito chave em qualquer Sistema
Operacional, pois representa uma abstração de um programa em
execução. Um processo pode passar por alguns estados durante o
seu ciclo de vida. Sendo assim, um processo pode estar nos estados:
(a) bloqueado, (b) pronto ou (c) em execução.
Nesse contexto, analise os itens a seguir.
I. Para implementar o modelo de processos, o sistema operacional
mantém uma tabela de processos, com uma entrada para cada
um deles. Cada entrada, também conhecida como bloco de
controle de processo (PCB – Process Control Block), contém
informações relevantes sobre o processo. Um exemplo de
informação contida no PCB é o estado do processo.
II. Considerando um diagrama de estado do processo, não há
transição a partir do estado “em execução”, para o estado
“bloqueado”. Quando o sistema operacional descobre que o
processo não pode continuar em execução, ele vai para o estado
de “pronto”.
III. O processo no estado “bloqueado”, não faz uso da CPU (Unidade
Central de Processamento), mas está apto para ser executado
(isto é, pronto para transitar ao estado “em execução”),
aguardando para isso que o escalonador selecione-o para
execução.
Considerando o endereçamento de byte em arquitetura de
computadores, e, os métodos big-endian e little-endian de ligação
do processador à memória do computador, analise as afirmativas a
seguir.
I. No método big-endian, o endereçamento inicia pelo byte menos
significativo.
II. O acesso aos bytes de palavras armazenadas na memória
independe do método de ligação (big-endian ou little-endian)
para processadores de menos de 32 bits.
III. Em ambos os métodos de ligação (big-endian e little-endian), os
bits menos significativos do barramento de dados estão ligados
aos bits menos significativos da palavra armazenada na
memória.
Os comandos SQL do tipo DML (Data Manipulation Language) são
utilizados para manipular os dados no banco de dados.
Esses comandos permitem aos usuários interagirem com o banco de
dados para executar operações.
Assinale a opção que apresenta apenas exemplos de comandos do
tipo DML.
O Visual Studio é um ambiente integrado de desenvolvimento (IDE)
desenvolvido pela Microsoft que suporta diversas linguagens de
programação, tais como C#, Visual Basic, C++, F#, JavaScript,
TypeScript, Python e outras. Um de seus aspectos mais relevantes é
o robusto suporte para a construção, execução e depuração de
testes unitários. Considere as seguintes afirmações sobre alguns
recursos para testes unitários presentes no Visual Studio:
I. IntelliTest permite gerar valores de entrada e saída para suas
funções como pequenos blocos de testes, expandindo-os
automaticamente quando seu código for incrementado, o que
reduz o esforço para criação de testes unitários.
II. Live Unit Test produz comentários sobre como as alterações de
código afetam os testes existentes e se o novo código gerado é
coberto por testes já criados.
III. CodeLens permite a inspeção, execução, depuração e navegação
direta para os testes unitários a partir do próprio editor de
código.
Em relação a Bancos de Dados Relacionais, analise as afirmativas a
seguir.
I. As tabelas são os componentes fundamentais de um banco de
dados relacional e são usadas para organizar e armazenar dados
de forma estruturada.
II. A chave primária é uma coluna (ou conjunto de colunas) com
valor único para cada linha de uma tabela e é usada para
identificar registros de forma única.
III. Os relacionamentos em um banco de dados relacionais são
conexões lógicas entre diferentes tabelas que permitem
combinar dados e estão restritos a relacionamentos um-para-um
entre tabelas.
IV. A sigla ACID está relacionada à manipulação de dados em bancos
de dados relacionais onde o “I” da sigla refere-se à inserção
(Insert) de registros em uma tabela e o “D” à deleção (Delete) de
registros em uma tabela.
V. As tabelas podem estar relacionadas entre si por meio de chaves
estrangeiras.
Para que um programa de computador possa ser executado, diversas
etapas compõem seu desenvolvimento. Com relação ao ciclo de
desenvolvimento de um programa, analise as afirmativas a seguir.
I. A etapa de compilação é responsável por gerar o arquivo
executável do programa.
II. Na etapa de link-edição, módulos pré-compilados são ligados
entre si.
III. Um programa compilado não causa erros de execução.
A integração de módulos e sistemas é uma etapa crucial no
desenvolvimento de software, em que a abordagem de integração a
ser tomada depende do cenário concreto.
Assinale a opção que apresenta o cenário para o qual a abordagem
Big Bang é a mais adequada.
Relacione as terminologias referentes ao Git, listadas a seguir, às
suas respectivas definições.
1. Fetch
2. Branch
3. Issue 4. Commit
( ) Permite adicionar alterações do repositório remoto à sua
ramificação de trabalho local, sem confirmá-las.
( ) Está contido no repositório, mas é uma versão paralela do
mesmo, não afetando a ramificação principal e permitindo
trabalhar livremente sem interromper a versão "live".
( ) É uma alteração individual em um ou mais arquivos. Quando
usado para salvar um trabalho, o Git gera um ID único que
permite registrar as alterações confirmadas assim como quem as
fez e quando.
( ) É uma sugestão de melhoria, tarefa ou dúvida relacionada ao
repositório. Pode ser criado por qualquer pessoa (em
repositórios públicos), bem como ser categorizado com rótulos
e atribuído a colaboradores.
Assinale a opção que indica a relação correta, segundo a ordem
apresentada.
Ao se escolher a arquitetura de software para um projeto, é
fundamental considerar os requisitos a serem priorizados.
A arquitetura de microsserviços, que uma evolução do estilo de
arquitetura orientada a serviços (SOA), é mais indicada do que a
arquitetura monolítica, quando a prioridade é otimizar
Com relação ao processo de depuração de um programa de
computador, analise as afirmativas a seguir.
I. Por meio da depuração, é possível investigar a ocorrência de
erros no programa.
II. A depuração é realizada antes da compilação.
III. A depuração pode ser executada por meio de pontos de parada
(breakpoints).
Em um projeto de desenvolvimento de software, uma equipe está
focada em diferentes aspectos do sistema.
Assinale a opção que indica o diagrama UML mais adequado para se
entender como os objetos do sistema interagem entre si ao longo do
tempo.
As variáveis são elementos essenciais para o desenvolvimento de
programas. A respeito dos diferentes tipos de variáveis que podem ser usadas
em um programa escrito em linguagem C, é correto afirmar que
Um desenvolvedor de sistemas para operação de satélites necessita
de conhecimentos de ferramentas e frameworks das mais variadas
áreas, como gerenciamento de projetos, arquitetura de software,
banco de dados, versionamento de código-fonte etc. Nesse
contexto, uma ferramenta importante se destaca por interligar
especificações de requisitos de alto nível com modelos de análise,
projeto, implementação e testes de sistemas usando UML, SysML,
BPMN e outros padrões abertos utilizados no mercado.
Assinale a opção que corresponde à ferramenta descrita no texto
O desenvolvimento orientado a testes (TDD) engloba um conjunto
de práticas que visam garantir a detecção de erros e a qualidade do
código gerado.
No escopo do TDD, assinale a opção que apresenta a característica
do teste unitário.