Questões de Concurso Público BANRISUL 2018 para Desenvolvimento de Sistemas
Foram encontradas 75 questões
Considere as seguintes afirmações sobre Princípios de Engenharia de Software.
I - São utilizadas diferentes técnicas de engenharia de software para cada tipo de sistema, porque cada software tem características bastante diversas.
II - Uma característica fundamental de um sistema de software é a eficiência, pois o software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. Eficiência inclui capacidade de resposta, tempo de processamento, uso da memória, etc.
III - Engenheiros de software não devem preocupar-se apenas com questões técnicas, devendo se comportar de forma ética e moralmente responsável, pois têm responsabilidades com a profissão de engenharia e com a sociedade.
Quais estão corretas?
Considere as seguintes afirmações sobre processos de software.
I - Um processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de software.
II - Os processos ágeis são uma categoria de processo de software em que o planejamento não é gradativo e, por isso, torna-se mais difícil alterar o processo de maneira que reflita as necessidades de mudança dos clientes.
III - Em organizações nas quais a diversidade de processos de software é reduzida, os processos de software podem ser melhorados pela padronização. Isso possibilita uma melhor comunicação, além de redução no período de treinamento, e torna mais econômico o apoio ao processo automatizado.
Quais estão corretas?
___________ se preocupa com todos os aspectos do desenvolvimento de sistemas computacionais, incluindo engenharia de hardware, software e processo; e _________ é uma disciplina da engenharia que se preocupa com todos aspectos da produção de software, desde os estágios iniciais da especificação do sistema até sua manutenção, quando o sistema já está sendo usado.
Assinale a alternativa que completa, correta e respectivamente, as lacunas do texto acima.
Considere as seguintes afirmações sobre prototipação.
I - A prototipação é comumente utilizada como uma técnica que auxilia os interessados, quando os requisitos estão obscuros, a compreender melhor o que está para ser construído, embora possa também ser utilizada como um modelo de processo isolado.
II - Um protótipo é uma versão inicial de um sistema de software, usado para demonstrar conceitos, experimentar opções de projeto e descobrir mais sobre o problema e suas possíveis soluções.
III - Protótipos devem ser executáveis para serem úteis. Deve-se evitar o desenvolvimento de maquetes em papel de interface de usuário, embora sejam baratas e possam ser construídas em poucos dias.
Quais estão corretas?
Há vários modelos de processo de software, sendo que cada um define um fluxo de processo que invoca cada atividade do desenvolvimento de forma diversa. O modelo ____________, algumas vezes chamado ciclo de vida clássico, é um exemplo de processo dirigido a planos, pois deve-se planejar todas as atividades (estágios) do processo antes de começar a trabalhar nelas. Em princípio, o estágio seguinte não deve ser iniciado até que o estágio anterior seja concluído, mas na prática este processo não é um modelo linear simples, envolvendo o feedback de um estágio a outro. Assim os documentos e artefatos produzidos em cada estágio podem ser modificados para refletirem as alterações em cada um deles. Este modelo é consistente com outros modelos de processo de engenharia, e a documentação é produzida em cada estágio do ciclo. Desta forma, o processo torna-se visível e os gerentes podem monitorar o progresso de acordo com o plano de desenvolvimento. Seu maior problema é a divisão inflexível do projeto em estágios distintos e, por isso, deve ser usado apenas quando os requisitos são bem compreendidos e pouco provavelmente venham a ser radicalmente alterados durante o desenvolvimento.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
Considere os itens abaixo.
I - Compartilhamento de recursos de hardware e software.
II - Concorrência, pois vários processos podem operar simultaneamente em computadores separados, na rede.
III - Tolerância a defeitos, devido à disponibilidade de vários computadores e ao potencial para replicar as informações.
Quais são vantagens da utilização de sistemas distribuídos?
Considere as seguintes afirmações sobre sistemas cliente/servidor.
I - Em uma arquitetura cliente-servidor, uma aplicação é modelada como um conjunto de serviços que são fornecidos por servidores. Os clientes podem acessar esses serviços e apresentar os resultados para os usuários finais.
II - Clientes e servidores não são processos separados.
III - É normal que vários processos-clientes sejam executados
em um único processador. Por exemplo,
em um PC, pode ser executado um cliente de
correio que transfere mensagens de um servidor
de correio remoto. Pode também ser executado
um browser de web que interage com um servidor
web remoto e um cliente de impressão que envia
documentos para uma impressora remota.
Quais estão corretas?
Considere as seguintes afirmações sobre o padrão Model-View-Controller (MVC)
I - O padrão MVC separa a apresentação e a interação dos dados do sistema, através de três componentes lógicos que interagem entre si: o componente Controlador gerencia os dados e as operações associadas a estes dados; o componente Modelo define e gerencia a forma como os dados são apresentados ao usuário; o componente Visão gerencia a interação do usuário (teclas, cliques do mouse, por exemplo) e passa estas interações para o Controlador e o Modelo.
II - O padrão MVC é usado quando existem várias maneiras de se visualizar e interagir com dados. Também quando são desconhecidos os futuros requisitos de interação e apresentação dos dados.
III - Embora o padrão MVC permita que os dados sejam alterados de forma independente de sua representação e vice-versa, pode envolver código adicional e mais complexidade de código mesmo quando o modelo de dados e as interações são simples.
Quais estão corretas?
_____________ são declarações de serviços que o sistema deve fornecer, ou seja, como o sistema deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações. Em alguns casos, também podem explicitar o que o sistema não deve fazer.
Assinale a alternativa que completa corretamente a lacuna do texto acima.
Considere as seguintes afirmações sobre Manutenção de Software.
I - Manutenção de software é o processo geral de mudança em um sistema depois de liberado para uso.
II - As pesquisas concordam que a manutenção de software ocupa uma proporção menor dos orçamentos de TI do que o desenvolvimento e, portanto, os esforços durante o desenvolvimento do sistema para produção de um sistema manutenível não reduzem os custos gerais durante a vida útil do sistema.
III - Existem três diferentes tipos de manutenção de software: (1) correção de defeitos; (2) adaptação ambiental (quando algum aspecto do ambiente – tal como hardware, plataforma do sistema operacional ou outro software de apoio – sofre uma mudança); e (3) adição de funcionalidade.
Quais estão corretas?
As definições de atributos de qualidade abaixo representam uma meta para todo projeto de software.
_____________ é um atributo de qualidade avaliado levando-se em conta fatores humanos, estética, consistência e documentação como um todo.
_____________ é um atributo de qualidade avaliado medindo-se a frequência e a severidade das falhas, a precisão dos resultados gerados, o tempo médio entre defeitos, a capacidade de se recuperar de uma falha e a previsibilidade do programa.
_____________ é um atributo de qualidade medido considerando a velocidade de processamento, o tempo de resposta, o consumo de recursos, vazão (throughput) e eficiência.
Assinale a alternativa que completa correta e respectivamente as lacunas do texto acima.
Observe as tabelas FUNCIONARIOS, PROJETOS e PARTICIPACOES definidas abaixo, usando SQL, que representam funcionários e a participação destes em projetos.
create table PROJETOS
(codp char(2) not null primary key,
cliente varchar(100) not null,
orcamento numeric(15,2) not null,
pais char(2) not null);
create table FUNCIONARIOS
(matr char(2) not null primary key,
nomef varchar(100) not null,
salario numeric(8,2) not null,
pais char(2) not null);
create table PARTICIPACOES
(codp char(2) not null,
matr char(2) not null,
horas integer not null,
primary key (codp, matr),
foreign key (codp) references PROJETOS,
foreign key (matr) references FUNCIONARIOS);
Observe as instâncias destas tabelas.
Considere a consulta SQL abaixo, que segue o padrão SQL2.
SELECT cliente
FROM projetos natural left join participacoes natural join funcionarios
GROUP BY codp, cliente
HAVING count(*) > 1;
A consulta SQL acima recuperará
Oberve as tabelas MEDICOS, PACIENTES e CONSULTAS definidas abaixo, usando SQL, que representam médicos, pacientes e as consultas entre estes.
create table ESPECIALIDADES
(code integer not null primary key,
nome varchar(60) not null);
Create table MEDICOS
(codm char(5) not null primary key,
nome varchar(100) not null,
code integer not null,
salario numeric(8,2) not null,
foreign key (code) references ESPECIALIDADES);
Create table CONSULTAS
(codm char(5) not null,
dataHora date not null,
paciente char(5) not null,
primary key (codm, dataHora),
foreign key (codm) references MEDICOS);
Considere as consultas abaixo, formuladas utilizando subconsultas.
I
Quais consultas poderiam ser reescritas usando apenas as cláusulas SELECT-FROM-WHERE, sem usar subconsulta
em nenhuma porção da instrução?
Observe as tabelas FUNCIONARIOS, PROJETOS e PARTICIPACOES definidas abaixo, usando SQL, que representam funcionários e a participação destes em projetos.
Create table PROJETOS
(codp char(2) not null primary key,
cliente varchar(100) not null,
orcamento numeric(15,2) not null,
pais char(2) not null);
create table FUNCIONARIOS
(matr char(2) not null primary key,
nomef varchar(100) not null,
salario numeric(8,2) not null,
pais char(2) not null);
create table PARTICIPACOES
(codp char(2) not null,
matr char(2) not null,
horas integer not null,
primary key (codp, matr),
foreign key (codp) references PROJETOS,
foreign key (matr) references FUNCIONARIOS);
Considere a consulta SQL abaixo.
O que essa consulta SQL recupera?
Considere as afirmações abaixo sobre as vantagens de procedimentos armazenados (stored procedures) em Sistemas de Gerência de Banco de Dados (SGBDs).
I - Desempenho: a maioria dos SGBDs compilam os procedimentos armazenados, gerando uma representação interna que pode ser executada de forma bastante eficiente no SGBD, com desempenho bem melhor do que o de comandos equivalentes invocados a partir de um programa de aplicação, por exemplo, através de uma API (Application Programing Interface).
II - Reusabilidade: um procedimento armazenado definido para uma função específica pode ser invocado de múltiplas formas, por exemplo, por diferentes aplicações, procedimentos armazenados ou gatilhos.
III - Segurança: um procedimento armazenado precisa ser testado e homologado pelo DBA (administrador do banco de dados), garantindo assim que não irá gerar erros de execução.
IV - Redução do tráfego de rede: em uma configuração cliente/servidor, invocar um procedimento armazenado a partir de uma aplicação no cliente, recebendo os resultados, gera bem menos tráfego do que invocar um conjunto equivalente de comandos SQL a partir de uma lógica controlada em um programa de aplicação.
Quais estão corretas?
Observe a tabela PRODUTOS definida em SQL. Considere que existe uma tabela PARTES e que a tabela PRODUTOS possui 50 instâncias.
CREATE TABLE PRODUTOS
(CODP INTEGER NOT NULL,
NOMEP VARCHAR(60) NOT NULL,
PRECO NUMERIC(5,2),
TIPO INTEGER NOT NULL,
PROD_PK PRIMARY KEY(CODP),
FOREIGN KEY (TIPO) REFERENCES PARTES);
Considere que o projetista deseja fazer as seguintes modificações nesta tabela.
I - Remover a chave estrangeira definida sobre o atributo TIPO.
II - Adicionar um novo atributo QT_MIN INTEGER com valor obrigatório (NOT NULL).
III - Remover a chave primária.
IV - Adicionar uma restrição de nome VERIFICA_PRECO, que verifica se o preço é nulo ou maior que 0.
Quais destas alterações podem ser realizadas através de um comando ALTER TABLE aplicado sobre a tabela PRODUTOS?
Observe as tabelas abaixo definidas em SQL.
create table EMPREGADOS
(matr integer not null primary key,
nome varchar(120) not null,
salario numeric(7,2) not null,
funcao varchar(35) not null,
feriasAVencer date);
create table AFASTAMENTOS
(code integer not null primary key,
nome varchar(120) not null,
salario numeric,
funcao varchar(35) not null,
tempo integer);
Considere abaixo a atuação dos comandos SQL de inserção.
I - INSERT INTO AFASTAMENTOS VALUES (1, 'joao', 'gerente');
II - INSERT INTO AFASTAMENTOS (code, nome, tempo, funcao) VALUES (2, 'pedro', 4, 'contador');
III - INSERT INTO AFASTAMENTOS
SELECT matr, nome, salario, funcao
FROM EMPREGADOS
WHERE funcao = 'indefinido';
IV - INSERT INTO AFASTAMENTOS VALUES (3, 'maria',
3000, 'gerente', 1), (4, 'carla', 1500, 'auxiliar', 2).
Quais comandos executam sem falhas?
Observe a tabela PRODUTOS abaixo.
create table PRODUTOS
(codp integer not null primary key,
nome varchar(120) not null,
preco numeric(5,2) not null,
desconto integer,
precoDoConcorrente numeric(5,2));
Considere as visões definidas abaixo usando SQL. Assuma que não existem gatilhos definidos sobre a tabela, nem para estas visões.
I - CREATE VIEW V1 AS
SELECT DISTINCT CODP, NOME, PRECO
FROM PRODUTOS
WHERE DESCONTO >0;
II - CREATE VIEW V2 AS
SELECT PRECO
FROM PRODUTOS
GROUP BY PRECO
HAVING COUNT(*) > 3;
III - CREATE VIEW V3 AS
SELECT CODP, NOME, PRECO
FROM PRODUTOS
WHERE PRECODOCONCORRENTE - PRECO >0;
Através de quais visões é possível inserir uma tupla na tabela PRODUTOS, usando um comando INSERT compatível com o respectivo esquema da visão?